再看《操作系统》--处理机管理
操作系统的一个重要任务就是管理处理机,大白话点就是:管理CPU的分配。如何分配CPU资源,才能使用户得到尽快的响应,提高CPU的利用率,这是操作系统中处理机管理部分的工作。
1,先来看看进程
进程的定义也有好几种。同样地,这些定义描述了进程的不同侧面。比如:
*进程是资源分配的单元
*进程是正在执行的指令段
1.1 进程是资源分配的单元
CPU时间,I/O端口,TCP/IP端口等计算机资源均是以进程为分配单元。简单些讲进程就是个资源的最终“消费者”。
1.2 进程是正在执行的指令段
这句定义有些笼统,其实还为发执行,控制这些指令段,还有需要很多附加信息的支持。比如程序计数器,进程堆栈等等。
进程是有状态的,看图:
现实实现比这个要复杂,但原理还是一样的。
2,处理机管理
我们上面说过,进程是资源分配的单元。处理机(CPU)资源的分配,体现在进程调度上,即让哪个进程获得CPU时间,得以执行。
2.1 处理机分配策略
进程的调度有些策略,即常见的调度算法。但这些策略通常都会带着一些优缺点。一个妈几个孩子,喂奶的时候怎么样都不会做到100%公平。我们来看看常的调度算法:
*先来先服务(First Come First Service)
*短作业优先(Sort Job First)
*时间片轮转
*基于优先权
3,各种进程调度算法简单介绍
每种调度算法都基于一些简单地思想,同时也具有一定的优缺点。
3.1 先来先服务算法
算法:进程按照提交的时间依次被调度执行
隐喻:银行的领号排除服务。现在稍大一些的银行,当你准备办理业务时,你得先领个号码纸。纸号写着你的排除的编号和前面还有未服务用户的数目。类似于:
用户按照号码,依次排队办理服务。
优点:让人感觉很公平(实现起来简单)
缺点:试想,在等待了几分钟后,你的前面只有一位用户了,快轮到你了,你正窃喜。谁知,你前面那位是个大婶。手中拿了几毛钱,存取和查看一共用了半天时间。等轮到你的时候,银行下班了。这时你不崩溃才怪。
官方术语这样讲的:对于一些小作业,等待时间过长。
3.2 短作业优先
算法:对于占用CPU时间较少的作业,优先执行
隐喻:打饭的时候,总是有人插队,口里说:我打一个菜就好了——短作业优先(具体讲是抢先)执行了。
优点:理论上讲这个算法是最优的,每个人平均等待时间最短。
缺点:呕心的是,你往往不知道别人真的是打一个菜呢,还是指一分菜(四菜一汤)呢?
3.3 时间片轮转
算法:将CPU划分为一个个时间片,每个作业执行一个时间片后,换下一个作业
隐喻:(暂缺)
优点:每进程都有机会执行
缺点:频繁地进程切换太浪费时间了
3.4 基于优先权
算法:根据对资源的使用情况,将进程划分三六九等,级别越高,越早被调度
隐喻:根据学历那人划分三六九等,级别越高,收入越高。
优点:较高的CPU利用率
缺点:当级别太低时,容易产生无穷等待现象
4,到哪里,住哪去?
本节主要引入了进程的概念和处理管理主要任务:进程调度的主要策略。
讲到了进程,就不得不说说进程同步。
这便是下一篇的内容。