进程控制(进程控制原语6种)

进程控制(进程控制原语6种)进程控制是进程管理中最基本的功能 它用于创建和撤消进程 并对进程在整个生命周期中各种状态之间的转换进行有效控制 进程控制是由操作系统的内核通过原语来实现的 原语 系统状态下执行的某些具有特定功能的程序段称为原语 原语的执行具有原子性 执行时不可分割 进程的控制主要包括 创建进程 阻塞进程 唤醒进程 挂起进程 激活进程 终止进程 撤销进程等

大家好,我是讯享网,很高兴认识大家。



​ 进程控制是进程管理中最基本的功能,它用于创建和撤消进程,并对进程在整个生命周期中各种状态之间的转换进行有效控制。
​ 进程控制是由操作系统的内核通过原语来实现的。
​ 原语:系统状态下执行的某些具有特定功能的程序段称为原语。 (原语的执行具有原子性,执行时不可分割)。

用于描述一个进程的家族关系的有向树。

Snipaste_2020-09-26_14-46-30
讯享网

  • 子进程可以继承父进程的所有资源,当子进程被撤消时,应将从父进程那里获得的资源归还给父进程。
  • 撤消父进程时也必须同时撤消其所有的子进程。

1) 用户登陆

2)作业调度

3)提供服务:由系统内核创建新进程

4)应用请求:由请求的应用程序自行创建新进程

1)申请空白PCB

2)为新进程分配资源

3)初始化进程控制块

4)将新进程插入就绪队列

Snipaste_2020-09-26_14-53-00

  • 终止事由:
    • 正常结束
    • 异常结束

      如Protect error、overtime等

    • 外界的干预
      • 系统员kill进程;
      • 父进程终止
      • 父进程请求
  • 终止流程

    OS通过调用进程终止原语完成进程的终止。

    1. 第一步:根据被终止进程的标识符,从PCB集合中查找对应进程控制块并读出该进程的状态;
    2. 第二步:若进程还有子孙进程,应将其所有子孙进程终止,以防它们成为不可控制的。
    3. 第三步:将进程所占有的全部资源释放(还给父进程或系统),释放进程控制块(若该进程为执行态,要进行进程调度)。
    4. 第四步:将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其他程序来收集相关信息。
    5. 第五步:若被终止进程正处于执行状态,则终止该进程的执行,并设置调度标志为真,用于指示该进程被终止后应重新进行调度,选择一新进程,把处理机分配给它。

    进程终止的具体原因

    • 正常结束
    • 超时终止,终止时间超过预计时间
    • 内存不足,无法为进程分配所需的内存空间
    • 越界访问
    • 企图使用未允许使用的数据,或操作方式错
    • 计算错,如除零,或企图存储硬件允许的最大数
    • 超时等待某事件发生。
    • I/O失败,如找不到文件或多次重试仍无法读写文件,或无效操作。
    • 无效指令,企图执行不存在的指令。
    • 特权指令,企图执行特权指令
    • 数据类型不符,或未初始化。
    • 操作员或OS干预,如发生死锁的时候
    • 父进程终止
    • 父进程请求

进程的终止过程:

  1. 查找对应的PCB
  2. 终止该进程及子孙进程
  3. 释放资源
  4. 释放PCB

终止原语流程图

Snipaste_2020-09-26_15-09-23

通过进程终止原语来终止进程。
终止进程的实质是收回 PCB。

引发的事件

  • 请求系统服务得不到满足时:如问系统请求打印。
  • 启动某种操作而需同步时:如该操作和请求该操作的进程需同步运行(即非异步操作)。
  • 新数据尚未到达:如进程A写,进程B读,则A未写完,B不能读。
  • 无新工作可做

阻塞具体的操作过程:

(1)停止进程的执行
(2)将其状态改为阻塞状态
(3)把它的 PCB 插入相应的阻塞(等待)队列
(4)转调度程序进行重新调度。

阻塞原语流程图

Snipaste_2020-09-26_15-12-39

​ 当阻塞进程所等待的事件完成时,应调用唤醒原语将该进程的状态从阻塞状态转换成就绪状态。通过唤醒原语wakeup()来完成。

​ 处于阻塞状态的进程是绝不可能叫醒自己的,必须由它的合作进程用唤醒原语唤醒它。

唤醒具体的操作过程:

1)在等待队列中移出该进程的PCB

2)将其置成就绪状态

3)把它插入就绪队列

Snipaste_2020-09-26_15-19-11

挂起具体的执行过程:

​ 当发生激活事件后,系统利用激活原语Active( )将指定进程激活。
​ 激活具体的操作过程是:
​ (1)若进程处于静止阻塞状态,则将它转换成活动阻塞状态,否则将它转换成活动就绪状态。
​ (2)若进程转换成活动就绪状态,而系统又采用抢占调度策略,则应检查该进程是否有权抢占 CPU,若有则应进行进程调度。

  • 时钟中断
  • I/O中断
  • 内存访问出错
  • 陷阱

步骤:

  • 保护进程A的现场
  • 恢复进程B的现场

小讯
上一篇 2025-06-10 18:11
下一篇 2025-05-30 20:36

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/160887.html