进程控制的概念(八)

本文详细介绍了操作系统中进程控制的关键概念,包括进程的创建、撤销、阻塞和唤醒。在创建进程中,涉及PCB的初始化、进程标识分配及资源分配。撤销进程时,会终止进程并释放其占用的资源。阻塞和唤醒涉及到进程状态的转换,如当进程等待系统服务时会进入阻塞状态,而当条件满足时则会被唤醒继续执行。这些概念构成了操作系统调度的基础。

进程控制的概念

  • 在进程生存全期间,对其全部行为的控制
  • 四个典型的控制行为
    • 创建
      1. 功能: 创建一个具有指定标识(id)的进程
      2. 参数: 进程标识、优先级、进程起始地址、CPU初始状态,资源清单
      3. 创建进程的过程:
        - 创建一个空白PCB
        - 获得并赋予进程标识符ID
        - 为进程分配空间
        - 初始化PCB
        - 插入相应的进程队列
伪代码:
Create(Si, Mi, Pi) //CPU的状态,内存,优先级
{
p = Get_New_PCB( );   //分配新的PCB
pid = Get_New_PID( );  // 分配进程的PID
p->ID = pid;                    //设置进程的PID
p->CPU_State = Si;       //CPU的状态
p->Memory = Mi;           //内存
p->Priority = Pi;             // 优先级
p->Status.type = "Ready"; //进程状态
p->Status.List = RL;     //进程队列RL: Ready List
Insert(RL, P);               // 将进程p插入就绪队列
Scheduler( )                //调度程序
}
  • 撤销

    1. 在PCB队列中检索出该进程PCB
    2. 获取进程的状态
    3. 若该程序处在运行太,立即终止该进程(递归撤销,先撤销子进程)
    4. 释放进程占有的资源
    5. 将进程从PCB队列中移除
  • 阻塞
    停止进程的执行,变为阻塞
    阻塞的时机/事件

    1. 请求系统服务
    2. 启动某种操作
    3. 新数据尚未到达
    4. 无新工作可作

    参数

    • 阻塞原因
      不同原因构件有不同的阻塞队列

    阻塞的实现过程

    • 停止运行
    • 将PCB从运行态改为阻塞态
    • 插入相应原因的阻塞队列
    • 转调度程序
  • 进程唤醒
    唤醒处于阻塞队列中的某个进程

    • 引起唤醒的时机/事件
      1. 系统服务由不满足到满足
      2. I/O完成
      3. 新数据到达
      4. 进程提出新请求
    • 参数
      被唤醒进程的标识符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值