FreeBSD读书笔记—4进程管理—4.1进程管理介绍

2009-05-13 01:51:04来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折


从今天开始,准备在这里写下我的FreeBSD读书笔记。书,当然是Marshall Kirk McKusickGeorge V. Neville-Neil 的《The Design and Implementation of the FreeBSD Operating System》了。我不是按顺序读的,所以也就看到哪儿写到哪儿了,不过最终形成的笔记还是按章节来组织,一小节一篇,边读边完善吧。具体形式我打算先是翻译,然后再结合源代码进行补充注释。
希望有机会看到这些文字的朋友能留下您的宝贵意见,让我们共同为BSD的推广传播而努力。万分感谢!





《The Design and Implementation of the FreeBSD Operating System》
Part II: Processes
Chapter 4. Process Management
4.1. Introduction to Process Management
    。。。
Multiprogramming
    。。。
Scheduling
对进程进行公平调度是件难办的事,这取决于可执行程序的类型以及调度策略的目标。所有的程序都可以按照它们的计算总量以及I/O 总量来进行分类。调度策略一般都试图在资源利用和程序运行用时之间寻求平衡。对于FreeBSD 的默认调度程序,也就是所谓的分时调度程序而言,一个进程的优先级将根据各种各样的参数进行周期性的重复计算,这些参数包括它已经用了的CPU 时间、它目前占有的或是为了运行而请求的内存资源的数量,等等。有些任务在进程执行过程中需要更为精确的控制,我们称之为实时调度,对此我们必须保证进程在指定期限之前或是按照某种特定的顺序完成它们的计算结果。FreeBSD 内核在通常的分时进程所用的队列之外专门用了一个单独的队列来实现实时调度。FreeBSD 内核还为那些运行在空闲优先级的进程实现了一个队列。对于一个属于空闲优先级的进程来说,只有当实时或分时调度队列中都没有可运行的进程了,而它自己的空闲优先级又等于或大于所有其它的可运行的空闲优先级进程时,它才会得到运行。
FreeBSD 分时调度程序使用的是一种基于优先级的调度策略,相对于那些长时间运行的批处理任务而言,这种策略更倾向于交互式程序(interactive programs ),比如文本编辑器。交互式程序一般都会表现为短暂的爆发式计算之后就是一段时间的静默状态或是I/O 操作。调度策略最初会为每个进程分配一个高的执行优先级,而且允许该进程执行固定的时间片(time slice )。将时间片执行完毕之后,进程的优先级就会降低,不过那些主动放弃CPU 的进程(通常是由于它们正在进行I/O 操作的缘故)则可以保持它们的优先级。非激活的进程的优先级将会得到提升。于是,占用大量CPU 时间的任务很快就会降为低优先级,而通常处于静默状态的交互式任务却可以保持在高优先级,这样一来,当它们做好运行准备之后,就会抢占到那些长时间运行的低优先级任务的前面去。像在文本编辑器中查找一个字符串这样的交互式任务会在短时内达到计算量的限度,优先级会因此而降低,不过当再次回到非激活状态而用户又在琢磨结果的时候,它就会返回到高的优先级。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:freebsd下mount windows分区

下一篇:在VMWare上实现FreeBSD的PPPoE网关(IPFW+NAT)