ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

二--3.进程控制

2022-09-11 10:30:59  阅读:182  来源: 互联网

标签:控制 -- 创建 PCB 原语 进程 就绪 终止


进程控制是进程管理中最基本的功能,包括:

  创建新进程

  终止已完成的进程

  将因发生异常情况而无法继续运行的进程置于阻塞状态

  负责进程运行中的状态转换等功能

进程控制一般由OS的内核中的原语实现

1.操作系统内核

  通常将与硬件密切相关的模块(如中断处理模块)、各种常用设备的驱动程序、运行频率较高的模块(如时钟管理、进程调度和许多模块所公用的一些基本操作),安排在紧靠硬件的软件层次,将他们常驻内存,即通常被称为的OS内核。

  将处理机的执行状态分为系统态和用户态

  (1)系统态:又称为管态、内核态。具有较高特权,能执行一切指令,访问所有寄存器和存储区,传统OS都在系统态运行。

  (2)用户态:又称为目态,执行规定指令,访问指定寄存器和存储区。应用程序只能在用户态运行,防止对OS的破坏。

  1.1OS内核功能:

  (1)中断管理

  (2)时钟管理

  (3)原语操作。原语(primitive)就是由若干条指令组成的,用于完成一定功能的一个过程。它们是原子操作(Action Operation),即一个操作中的所有动作要么全做,要么不做。执行过程中不允许被打断。原子操作在系统态执行,常驻内存。

  1.2资源管理功能:

  (1)进程管理

  (2)存储器管理

  (3)设备管理

2.进程的创建

  2.1进程的层次结构

    OS中允许一个进程创建另一个进程

      把创建进程的进程称为父进程,被创建的进程称为子进程,子进程可创建更多的孙进程。

    子进程可继承父进程所拥有的资源,子进程撤销时,归还从父进程获得的资源,父进程撤销时,必须同时撤销子进程,PCB中设置了家族关系表项,以标明自己的父进程和所有的子进程。

    进程不能拒绝其子进程的继承权。

    但windows不存在任何进程层次结构,即所有进程地位相同。

    一个进程创建另一个进程时获得一个句柄,其作用相当于令牌,用来控制创建的进程。

    句柄可传递,有了句柄就能控制进程的权力。

    进程之间不再是层次关系,而是获得句柄与否,控制与被控制的关系。

  2.2进程图(Process Graph)

    用于描述进程关系的一棵有向树

    创建父进程的进程称为祖先进程,树的根节点作为进程家族的祖先(ancestor)

  2.3引起进程创建的事件

    (1)用户登录:分时系统中,用户登陆成功,为其建立进程,插入就绪队列

    (2)作业调度:多道批处理系统中,作业调度程序调度到某些作业,将他们装入内存,为他们创建进程,插入就绪队列

    (3)提供服务:运行中的用户程序提出请求,创建进程供用户服务,如打印。

    (4)应用请求:上面三类都是系统创建进程,这类事件由用户进程自己创建新进程,以便新进程以同创建者进程并发运行的方式完成特定任务。

  2.4进程的创建(Creation of Process)

    在系统中出现了创建新进程的请求后,OS便调用进程创建原语Creat按下列步骤创建新进程

    (1)申请空白PCB,为新进程申请获得唯一的数字标识符,并从PCB集合中索取一个空白PCB。

    (2)为新进程分配其运行所需的资源,包括各种物理和逻辑资源,如内存、文件、I/O设备和CPU时间等。这些资源或从操作系统或仅从其父进程获得。

    (3)初始化PCB

      ①初始化标识信息

      ②初始化处理机状态信息

      ③初始化处理机控制信息

    (4)如果进程就绪队列能接纳新进程,便将新进程插入就绪队列。

3.进程的终止

  3.1引起进程终止(Termination of Process)的事件

    (1)正常结束

    (2)异常结束

      ①越界错

      ②保护错

      ③非法指令

      ④特权指令错

      ⑤运行超时

      ⑥等待超时

      ⑦算术运算错

      ⑧I/O故障

    (3)外界干预

      ①操作员或操作系统干预

      ②父进程请求

      ③因父进程终止

  3.2进程的终止过程

    调用终止原语,按下列过程终止

    (1)根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态

    (2)若被终止进程处于执行状态,立即终止执行,并置调度标志为真,指示该进程被终止后应重新进行调度

    (3)若该进程还有子孙进程,将所有子孙进程终止,防止他们成为不可控的进程

    (4)将被终止进程所拥有的全部资源或者归还给其父进程,或系统

    (5)将被终止进程PCB从所在队列(或链表)中移出,等待其他程序来搜集信息

4.进程的阻塞与唤醒

  4.1引起进程阻塞和唤醒的事件

    (1)请求共享资源失败/共享资源得到释放

    (2)等待某种操作的完成/操作完成

    (3)新数据尚未到达/新数据到达

    (4)等待新任务到达/新任务到达

  4.2进程阻塞过程(Block原语)

    立即停止执行,把PCB中的现行状态由执行改为阻塞,并将PCB插入阻塞队列

    转调度程序重新调度

  4.3进程唤醒过程

    从阻塞队列移出,将PCB先行状态改为就绪

    插入就绪队列

5.进程的挂起和激活

  5.1进程的挂起(Suspend原语)

    检查状态

      活动就绪->静止就绪

      活动阻塞->静止阻塞

      执行态->静止就绪

    为方便用户或父进程考察该进程的运行情况,复制PCB到指定区域

    若被挂起的进程正在执行,重新调度

  5.2进程的激活过程(Activate原语)

    将进程从外存调入内存

    检查状态

      静止就绪->活动就绪

      静止阻塞->活动阻塞

    若采用抢占调度策略,则比较被激活进程与当前进程优先级

      被激活进程优先级低,不调度,否则,剥夺当前进程的运行并切换

标签:控制,--,创建,PCB,原语,进程,就绪,终止
来源: https://www.cnblogs.com/cangshiqian/p/16667440.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有