操作系统【OS】进程的控制【进程的创建、终止、阻塞、唤醒】

 

定义和过程

对应事件

创建

  • 允许一个进程创建另一个进程
  • 允许子进程继承父进程所拥有的资源
  • 创建进程的过程如下:
    • 申请一个空白的 PCB,并向 PCB 中填写一些控制和管理进程的信息,比如进程的唯一标识等;
    • 为该进程分配运行时所必需的资源,比如内存资源;
    • 将 PCB 插入到就绪队列,等待被调度运行;

Ps:设备分配不需要创建进程【通过在系统中设置相应的数据结构实现】

  • 登陆系统【系统为此创建一个用户管理的进程,包括用户桌面、环境等,所有用户进程都会在该进程下创建和管理】
  • 作业调度
  • 系统提供服务
  • 用户程序的应用请求

终止

  • 当子进程被终止时,其在父进程处继承的资源应当还给父进程
  • 终止进程的过程如下:
    • 查找需要终止的进程的 PCB,读取该进程的状态;
    • 如果处于执行状态,则立即终止该进程的执行,然后将 CPU 资源分配给其他进程;
    • 如果其还有子进程,则应将该进程的子进程终止;
    • 将该进程所拥有的全部资源都归还给操作系统;
    • 将其从 PCB 所在队列中删除;
  • 正常结束
  • 异常结束
    • 存储越界
    • 保护错
    • 非法指令
    • 特权指令错
    • 运行超时
    • 算术运算错
    • I/O故障
  • 外界干预

阻塞

  • 当进程需要等待某一事件完成时,它可以调用阻塞语句把自己阻塞等待(主动
  • 一旦被阻塞等待,只能由另一个进程唤醒(被动
  • 阻塞进程的过程如下:
    • 找到将要被阻塞进程标识号对应的 PCB;
    • 如果该进程为运行状态,则保护其现场,将其状态转为阻塞状态,停止运行;
    • 将该 PCB 插入到阻塞队列中去;
  • 请求系统资源失败
  • 等待某种操作的完成
  • 新数据尚未到达或无新任务可做

唤醒

  • 唤醒进程的过程如下:
    • 在该事件的阻塞队列中找到相应进程的 PCB;
    • 将其从阻塞队列中移出,并置其状态为就绪状态;
    • 把该 PCB 插入到就绪队列中,等待调度程序调度;
  • 释放该I/O设备的进程
  • 提供数据的进程

进程转换

  • 先有资源的调度,再有进程的切换
  • 决定资源分配给哪个进程是决策行为
  • 实际分配的行为是执行行为

你可能感兴趣的:(操作系统,考研,操作系统,408)