再看《操作系统》--处理机管理

操作系统的一个重要任务就是管理处理机,大白话点就是:管理CPU的分配。如何分配CPU资源,才能使用户得到尽快的响应,提高CPU的利用率,这是操作系统中处理机管理部分的工作。

1,先来看看进程

进程的定义也有好几种。同样地,这些定义描述了进程的不同侧面。比如:

*进程是资源分配的单元

*进程是正在执行的指令段

1.1 进程是资源分配的单元

CPU时间,I/O端口,TCP/IP端口等计算机资源均是以进程为分配单元。简单些讲进程就是个资源的最终“消费者”。

1.2 进程是正在执行的指令段

这句定义有些笼统,其实还为发执行,控制这些指令段,还有需要很多附加信息的支持。比如程序计数器,进程堆栈等等。

进程是有状态的,看图:

Process Status Switch

现实实现比这个要复杂,但原理还是一样的。

2,处理机管理

我们上面说过,进程是资源分配的单元。处理机(CPU)资源的分配,体现在进程调度上,即让哪个进程获得CPU时间,得以执行。

2.1 处理机分配策略

进程的调度有些策略,即常见的调度算法。但这些策略通常都会带着一些优缺点。一个妈几个孩子,喂奶的时候怎么样都不会做到100%公平。我们来看看常的调度算法:

*先来先服务(First Come First Service)

*短作业优先(Sort Job First)

*时间片轮转

*基于优先权

3,各种进程调度算法简单介绍

每种调度算法都基于一些简单地思想,同时也具有一定的优缺点。

3.1 先来先服务算法

算法:进程按照提交的时间依次被调度执行

隐喻:银行的领号排除服务。现在稍大一些的银行,当你准备办理业务时,你得先领个号码纸。纸号写着你的排除的编号和前面还有未服务用户的数目。类似于:

Number ID

用户按照号码,依次排队办理服务。

优点:让人感觉很公平(实现起来简单)

缺点:试想,在等待了几分钟后,你的前面只有一位用户了,快轮到你了,你正窃喜。谁知,你前面那位是个大婶。手中拿了几毛钱,存取和查看一共用了半天时间。等轮到你的时候,银行下班了。这时你不崩溃才怪。

官方术语这样讲的:对于一些小作业,等待时间过长。

3.2 短作业优先

算法:对于占用CPU时间较少的作业,优先执行

隐喻:打饭的时候,总是有人插队,口里说:我打一个菜就好了——短作业优先(具体讲是抢先)执行了。

优点:理论上讲这个算法是最优的,每个人平均等待时间最短。

缺点:呕心的是,你往往不知道别人真的是打一个菜呢,还是指一分菜(四菜一汤)呢?

3.3 时间片轮转

算法:将CPU划分为一个个时间片,每个作业执行一个时间片后,换下一个作业

隐喻:(暂缺)

优点:每进程都有机会执行

缺点:频繁地进程切换太浪费时间了

3.4 基于优先权

算法:根据对资源的使用情况,将进程划分三六九等,级别越高,越早被调度

隐喻:根据学历那人划分三六九等,级别越高,收入越高。

优点:较高的CPU利用率

缺点:当级别太低时,容易产生无穷等待现象

4,到哪里,住哪去?

本节主要引入了进程的概念和处理管理主要任务:进程调度的主要策略。

讲到了进程,就不得不说说进程同步。

这便是下一篇的内容。

posted @ 2009-12-25 10:25  Jerry Chou  阅读(960)  评论(0编辑  收藏  举报