首页 > 代码库 > Modern Operating Systems(Ⅰ)——2014.12.15

Modern Operating Systems(Ⅰ)——2014.12.15

进程

     进程模型

     进程就是一个正在执行的程序的实例

     值得注意的是,若一个程序运行了两遍,则算作两个进程

     创建进程

      在通用系统中,有四种主要事件导致进程的创建

      ①系统的初始化

      ②执行了 正在运行的进程 所调用的 进城创建系统调用

      ③用户请求创建一个新进程

      ④一个批处理作业的初始化

      进程的状态

      运行态(该时刻进程实际占用CPU)

      就绪态(可运行,但因为其他进程正在运行而暂时停止)

      阻塞态(除非某种外部事件发生,否则进程不能运行)

      在Operating Systems Concept中还提到了new,terminated两种状态

      ※进程的实现(PCB)

      

           PCB(进程控制块)
Process staterunning,waiting
Program counter指示该进程将要执行的下一条指令的地址
CPU registers累加器(accumulators)、索引寄存器(index registers)、栈指针(stack pointers)、通用寄存器(general-purpose registers)等等
CPU scheduling information
进程优先级(priority)、调度队列指针及其他调度参数
Memory-management information
base and limit registers的值, 页表或段表(page tables, or segment)
Accounting information
CPU used, clock time elapsed since start, time limits
I/O status information
the list of I/O devices allocated to this process, a list of open files, and so on 

 

 

 

线程

     线程的使用

       为什么在进程之下使用线程?

       因为有了进程的抽象概念 我们得以不必考虑中断 定时器 上下文切换  类似的 正因为有了线程的抽象概念 我们得以加入了一个新的元素 并行实体共享同一个地址空间和所有可用数据的能力 而这是多进程模型(它们具有不同地址空间)所无法表达的

 

Modern Operating Systems(Ⅰ)——2014.12.15