计算机操作系统读书笔记-进程管理

进程管理包括进程的创建,销毁,进程状态转换。


引起进程创建的事件:

  • 用户登录
  • 作业调度
  • 提供服务
  • 应用请求

进程创建

  • 申请空白PCB。为进程申请一个唯一的数字标识符,并从PCB集合中申请一个空白的PCB
  • 为新进程分配资源。为新进程的程序和数据以及用户栈分配必要的内存空间
  • 初始化进程控制块。PCB的初始化包括:1)初始化标识信息,将系统分配的标识符和父进程标识符填入新PCB 中; 2) 初始化处理机状态信息,使程序计数器指向程序的入口地址,使栈指针指向栈顶; 3) 初始化处理机控制信息,将进程的状态设置为就绪状态或静止就绪状态,对于优先级,通常是将它设置为最低优先级,除非用户以显式方式提出高优先级要求。
  • 将新进程插入到就绪队列

引起进程终止的事件:

  • 正常结束
  • 异常结束
  • 外界干预
    进程终止过程:
  • 根据被终止进程的PID,从PCB集合中知道到被终止进程的PCB
  • 若进程处于运行状态,应立即终止进程,将进程的调度状态改为True, 表示应重新调度
  • 杀死改进程所有的子孙进程
  • 将进程所拥有的资源还给父进程或者系统
  • 将进程的PCB从PCB集合中的移除,等待其他程序来收集信息

进程的阻塞和唤醒
引起进程阻塞或者唤醒的事件:
- 请求系统服务。 如请求打印机
- 启动某种操作。 如I/O操作
- 新数据尚未到达
- 无新工作可做

进程阻塞过程:
进程调用阻塞原语block将自己阻塞,改变PCB中的执行状态为阻塞状态,并将PCB插入到阻塞对列

进程唤醒过程:
当进程期待的某事件发生之后,由相关进程调用唤醒原语weakup,将等待该事件的进程唤醒。唤醒原语执行过程:将进程的PCB从阻塞队列中移除,然后把PCB中的进程状态由阻塞改为就绪

猜你喜欢

转载自blog.csdn.net/python_tty/article/details/79611779
今日推荐