进程管理和调度(第二章)

所有的现代操作系统能够同时运行若干进程。
内核和处理器建立了多任务的错觉,即可以并行做几种操作,这是通过以很短的间隔在系统运行的应用程序之间不停切换而做到的。由于切换间隔如此之短,使得用户无法注意到短时间内的停滞,从而在感观上觉得计算机嫩巩固同时做几件事情。
这种系统管理方式引起了几个问题,内核必须解决这些问题,其中最重要的问题如下所示。
*除非明确地要求,否则应用程序不能彼此干扰。
*CPU时间必须在各种应用程序之间尽可能公平共享,其中一些程序可能比其他程序要更重要。第一个需求——存储保护,以及如何在进程之间切换。这里有两个任务,其执行是相对独立的。
*内核必须决定为各个进程分配多长时间,何时切换到下一个进程。这有引出了哪个进程是下一个问题。
*在内核从进程A切换到进程B时,必须确保进程B的执行环境与上一次撤销其处理器资源时完全相同。
这两个任务是称之为调度器的内核子系统的职责。CPU时间如何分配取决于调度器策略,这与用于在各个进程之间切换的任务切换机制完全无关。


2.1 进程优先级
并非所有进程都具有相同的重要性。除了大多数读者熟悉的进程优先级之外,进程还有不同的关键度类别,以满足不同需求。首先进程比较粗糙的划分,进程可以分为实时进程和非实时进程。
*硬实时进程有严重的时间限制,某些任务必须在指定的实现内完成。硬实时进程的关键特征是,他们必须在保证的时间范围内得到处理。请注意,这并不意味着所要求的时间范围特别短,而是系统必须保证绝不会超过某一时间范围,及时在不大可能或条件不利的情况下也是如此。
*软实时进程是硬实时进程的一种弱化形式。尽管仍然需要快速得到结果,但稍微晚一点不会造成世界末日。
*大多数进程是没有特定时间约束的普通进程,但仍然可以根据重要性来分配优先级。进程的运行按时间片调度,分配进程的时间拍你份额与其重要性
进程的运行按时间片调度,分配给进程的时间片份额与其相对重要性相当。系统中时间的流动对于与圆盘的转动,而CPU则由圆周旁的扫描器表示。最终效果是,尽管所有的进程都有机会运行,但重要的进程会比次要的得到更多的CPU时间。
珍重方案称之为抢占式多任务处理(preemptive multitasking ),各种进程都分配到一定的时间短可以执行。时间短到期后,内核绘从进程收回控制权,让一个不同的进程运行,而不考虑前一进程执行的上一个任务。被抢占进程的运行时环境。即所有CPU寄存器的内容和页表,都会保存起来,因此其执行结果不会丢失。

================================================================
2.2 进程间生命周期
进程并不总是可以立即运行。有时候他必须等待来自外部信号源、不收器控制的事件。在事件发生之前,进程无法运行。
当调度器在进程之间切换时,必须知道系统中每个进程的状态。将CPU时间分配到五十可做的进程,显然是没有意义的。进程在各个状态之间的转换页同样重要。
运行、等待、睡眠、终止、僵尸状态。
僵尸:这样的进程已经死亡,但仍然以某种方式或者。实际上,说这些进程死了,因为其资源已经释放,因此他们无法页绝不会再次运行。
僵尸进程是如何产生?器愿意在于UNIX操作系统下进程创建和销毁的方式。在两种时间发生时,程序将终止运行。第一,程序必须有另一个进程或一个用户杀死(通常是通过发送SIGTEARM或SIGKILL信号来完成);进程的父进程在子进程终止时必须调用或已经调用wiait系统调用。这相当于向内核正式服进程已经确认子进程的终结。改系统调用是的内核可以释放为子进程保留的资源。(top)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值