操作系统进程控制

操作系统进程控制


操作系统内核

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

OS内核的优点: 便于对OS内核中的这些软件进行保护,防止遭受其他程序的破坏;可以提高OS的运行效率。

OS内核的功能:支撑功能;资源管理功能。

  • 支撑功能:为OS其他模块提共基本功能,以便支撑这些模块工作。最基本的支撑功能包括中断处理,时钟管理和原语操作。
  • 资源管理功能:(1)进程管理(2)存储器管理(3)设备管理

进程的创建

进程的层次结构

  • OS中允许一个进程去创建另一个进程,通常把创建进程的进程叫做父进程,被创建的进程叫做子进程,子进程可以继续创建更多孙进程。
  • 子进程可以继承父进程所拥有的资源,如父进程打开的文件,父进程所分配到的缓冲区等。
  • 子进程被撤销时,将从父进程继承的资源归还给父进程。撤销父进程时,也必须同时撤销其所有子进程。进程不能拒绝其子进程的继承。
  • windows中不存在进程层次结构的概念,进程间只是控制与被控制的简单关系。

进程的创建过程

  • 1)申请空白PCB:为新进程获取唯一的数字标识符,并从PCB集合中索取一个空白PCB
  • 2)为新进程分配其运行所需要的资源:包括各种物理资源和逻辑资源,如内存,文件,IO设备和CPU时间等。这些资源可以从操作系统或父进程中获得。
  • 3)初始化进程控制块PCB:PCB的初始化包括
    ①初始化标识信息 :将系统分配的标识符和父进程标识符填入新PCB
    ②初始化处理机状态信息 :使程序计数器指向程序入口地址,使栈指针指向栈顶
    ③初始化处理机控制信息:将程序计数器状态设置为就绪状态或静止就绪状态,优先级默认设置为最低优先级
  • 4)将新进程插入就绪队列

进程的终止

进程终止的过程:

  • 1)根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态
  • 2)若被终止的进程正处于执行状态,应立即终止该进程的执行,并置调度标志位真,用于只是该进程被终止后应重新进行调度。
  • 3)若该进程还有子孙进程,还应将其所有子孙进程也都予以终止,以防它们成为不可控的进程。
  • 4)将被终止进程所拥有的全部资源或者归还给其父进程,或者归还给系统。
  • 5)将被终止进程(PCB)从所在队列(或链表)中移出,等待其他程序来搜集信息。

进程的阻塞和唤醒

引起进程阻塞的事件:①向系统请求共享资源失败 ②等待某种操作的完成 ③新数据尚未到达 ④等待新任务的到达

进程阻塞过程

  • 正在执行的进程,若发生上述某事件,便通过调用阻塞原语block将自己阻塞。阻塞是进程自身的主动行为。
  • 进入block后,先立即停止进程的执行,把进程控制块PCB中的现行状态由”执行“改为阻塞。
  • 将PCB插入阻塞队列。若系统中设置了因不同事件而阻塞的多个阻塞队列,则应将本进程插入到具有相同事件的阻塞队列。
  • 转调度程序进行重新调度,将处理机分配给另一就绪进程,并进行切换,保留被阻塞进程的处理机状态,按新的PCB中的处理机状态设置CPU的环境。

进程唤醒过程

  • 当被阻塞的进程所期待的事件发生时,由有关进程调用唤醒原语wakeup,将等待该事件的进程唤醒。
  • wakeup首先把被阻塞的进程从阻塞队列中移除,将其PCB的现行状态由阻塞改为就绪,然后将该PCB插入就绪队列。

进程的挂起与激活

进程的挂起过程:

  • OS利用suspend原语将指定进程或处于阻塞状态的进程挂起。
  • 其执行过程中,首先检查被挂起进程的状态,若处于活动就绪状态,便将其改为静止- - 就绪状态;对于活动阻塞状态的进程,则改为静止阻塞状态。
  • 为了方便用户或父进程考查该进程运行情况,将该进程的PCB复制到某指定的内存区域,挂起操作会将进程从内存移动到外存。
  • 若被挂起的进程正在执行,则转向调度程序重新调度。

进程的激活过程

  • OS利用active原语将指定进程激活。
  • 激活原语先将进程从外存调入内存,检查该进程的现行状态,若是静止就绪状态,便改为活动就绪状态;若为静止阻塞状态,便改为活动阻塞状态。
  • 若采用抢占调度策略,在将静止就绪进程激活后插入就绪队列时,要比较被激活进程和当前进程的优先级,若被激活进程的优先级更高,则立即剥夺当前进程的运行,将处理机分配给刚激活的进程。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值