《操作系统》读书报告题目:章节内容浅分析姓名:张科学号:1324620022系别:人文信息管理学院年级:2013级专业:信息管理与信息系统二○一五年十一月操作系统读书报告摘要:本文叙述的是关于本书各章节内容概要,是个人的心得体会,通过叙述每一项新章节的内容概要来认识本书了解本书。关键词:功能;内容;分析;概要。一.进程进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。处理器是计算机系统中最重要的资源。在现代计算机系统中,为了提高系统的资源利用率,CPU将为某一程序独占。通常采用多道程序设计技术,即允许多个程序同时进入计算机系统的内存并运行!我们今天使用的操作系统主要是分时系统,由调度程序调入的多个作业共享CPU资源,其中每个作业只执行极短的一段时间(比如0.1s,我们称为一个时间片),极短的时间过后暂停执行,调入下一个程序。这样在不长的一段时间内(比如5s内),有限的进程(少于50个)都可以得到至少一次的执行,用户请求可以得到及时的响应。这种作业调度的方式我们称为时间片轮转法。这种执行的方式叫并发执行,并发性也是分时系统的基本特性之一。在分时系统中,为了执行一项作业,就需要把要执行的作业程序载入内存中作为程序段,为作业分配相应的数据空间作为数据段,并加入一个控制块(PCB),用来保存当前作业执行所必须的一些信息,使之能够并发执行。内存中的程序段、数据段和PCB我们称为一个进程实体,而一个进程实体的执行过程我们称为进程。2.进程的三种基本状态进程在运行中不断地改变其运行状态。通常,一个运行进程必须具有以下三种基本状态。就绪(Ready)状态当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。执行(Running)状态当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态。阻塞(Blocked)状态正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。引起进程阻塞的事件可有多种,例如,等待I/O完成、申请缓冲区不能满足、等待信件(信号)等。3.进程三种状态间的转换一个进程在运行期间,不断地从一种状态转换到另一种状态,它可以多次处于就绪状态和执行状态,也可以多次处于阻塞状态。(1)就绪→执行处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态转变成执行状态。(2)执行→就绪处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机,于是进程从执行状态转变成就绪状态。(3)执行→阻塞正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。(4)阻塞→就绪处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。4.父进程和子进程:他们的关系是管理和被管理的关系,当父进程终止时,子进程也随之而终止。但操作系统读书报告子进程终止,父进程并不一定终止。比如httpd服务器运行时,我们可以杀掉其子进程,父进程并不会因为子进程的终止而终止。在进程管理中,当我们发现占用资源过多,或无法控制的进程时,应该杀死它,以保护系统的稳定安全运行。二.中断与处理器调度1.调度的基本概念在多道程序系统中,进程的数量往往多于处理机的个数,进程争用处理机的情况就在所难免。处理机调度是对处理机进行分配,就是从就绪队列中,按照一定的算法(公平、髙效)选择一个进程并将处理机分配给它运行,以实现进程并发地执行。处理机调度是多道程序操作系统的基础,它是操作系统设计的核心问题。2.调度的层次一个作业从提交开始直到完成,往往要经历以下三级调度,1)作业调度。又称高级调度,.其主要任务是按一定的原则从外存上处于后备状态的作业中挑选一个(或多个)作业,给它(们)分配内存、输入/输出设备等必要的资源,并建立相应的进程,以使它(们)获得竞争处理机的权利。简言之,就是内存与辅存之间的调度。对于每个作业只调入一次、调出一次。多道批处理系统中大多配有作业调度,而其他系统中通常不需要配置作业调度。作业调度的执行频率较低,通常为几分钟一次。2)中级调度。又称内存调度。引入中级调度是为了提高内存利用率和系统吞吐量。为此,应使那些暂时不能运行的进程,调至外存等待,把此时的进程状态称为挂起状态。当它们已具备运行条件且内存又稍有空闲时,由中级调度来决定,把外存上的那些已具备运行条件的就绪进程,再重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待。3)进程调度。又称为低级调度,其主要任务是按照某种方法和策略从就绪队列中选取一个进程,将处理机分配给它。进程调度是操作系统中最基本的一种调度,在一般操作系统中都必须配置进程调度。进程调度的频率很高,一般几十毫秒一次。3.三级调度的联系作业调度从外存的后备队列中选择一批作业进入内存,为它们建立进程,这些进程被送入就绪队列,进程调度从就绪队列中选出一个进程,并把其状态改为运行状态,把CPU分配给它。中级调度是为了提高内存的利用率,系统将那些暂时不能运行的进程挂起来。当内存空间宽松时,通过中级调度选择具备运行条件的进程,将其唤醒。1)作业调度为进程活动做准备,进程调度使进程正常活动起来,中级调度将暂时不能运行的进程挂起,中级调度处于作业调度和进程调度之间。2)作业调度次数少,中级调度次数略多,进程调度频率最高。3)进程调度是最基本的,不可或缺。调度的时机、切换与过程进程调度和切换程序是操作系统内核程序。当请求调度的事件发生后,才可能会运行进程调度程序,当调度了新的就绪进程后,才会去进行进程间的切换。理论上这三件事情应该顺序执行,但在实际设计中,在操作系统内核程序运行时,如果某时发生了引起进程调度的因素,并不一定能够马上进行调度与切换。现代操作系统中,不能进行进程的调度与切换的情况有以下几种情况。1)在处理中断的过程中:中断处理过程复杂,在实现上很难做到进程切换,而操作系统读书报告且中断处理是系统工作的一部分,逻辑上不属于某一进程,不应被剥夺处理机资源。2)进程在操作系统内核程序临界区中:进入临界区后,需要独占式地访问共享数据,理论上必须加锁,以防止其他并行程序进入,在解锁前不应切换到其他进程运行,以加快该共享数据的释放。3)其他需要完全屏蔽中断的原子操作过程中:如加锁、解锁、中断现场保护、恢复等原子操作。在原子过程中,连中断都要屏蔽,更不应该进行进程调度与切换。如果在上述过程中发生了引起调度的条件,并不能马上进行调度和切换,应置系统的请求调度标志,直到上述过程结束后才进行相应的调度与切换。应该进行进程调度与切换的情况有:1)当发生引起调度条件,且当前进程无法继续运行下去时,可以马上进行调度与切换。如果操作系统只在这种情况下进行进程调度,就是非剥夺调度。2)当中断处理结束或自陷处理结束后,返回被中断进程的用户态程序执行现场前,若置上请求调度标志,即可马上进行进程调度与切换。如果操作系统支持这种情况下的运行调度程序,就实现了剥夺方式的调度。进程切换往往在调度完成后立刻发生,它要求保存原进程当前切换点的现场信息,恢复被调度进程的现场信息。现场切换时,操作系统内核将原进程的现场信息推入到当前进程的内核堆栈来保存它们,并更新堆栈指针。内核完成从新进程的内核栈中装入新进程的现场信息、更新当前运行进程空间指针、重设PC寄存器等相关工作之后,开始运行新的进程。进程调度方式所谓进程调度方式是指当某一个进程正在处理机上执行时,若有某个更为重要或紧迫的进程需要处理,即有优先权更髙的进程进入就绪队列,此时应如何分配处理机。通常有以下两种进程调度方式:1)非剥夺调度方式,又称非抢占方式。是指当一个进程正在处理机上执行时,即使有某个更为重要或紧迫的进程进入就绪队列,仍然让正在执行的进程继续执行,直到该进程完成或发生某种事件而进入阻塞状态时,才把处理机分配给更为重要或紧迫的进程。在非剥夺调度方式下,一旦把CPU分配给一个进程,那么该进程就会保持CPU直到终止或转换到等待状态。这种方式的优点是实现简单、系统开销小,适用于大多数的批处理系统,但它不能用于分时系统和大多数的实时系统。2)剥夺调度方式,又称抢占方式。是指当一个进程正在处理机上执行时,若有某个更为重要或紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给这个更为重要或紧迫的进程。.釆用剥夺式的调度,对提高系统吞吐率和响应效率都有明显的好处。但“剥夺”不是一种任意性行为,必须遵循一定的原则,主要有:优先权、短进程优先和时间片原则等。调度的基本准则不同的调度算法具有不同的特性,在选择调度算法时,必须考虑算法所具有的特性。为了比较处理机调度算法的性能,人们提出很多评价准则,下面介绍主要的几种:1)CPU利用率。CPU是计算机系统中最重要和昂贵的资源之一,所以应尽可能使CPU保持“忙”状态,使这一资源利用率最髙。操作系统读书报告2)系统吞吐量。表示单位时间内CPU完成作业的数量。长作业需要消耗较长的处理机时间,因此会降低系统的吞吐量。而对于短作业,它们所需要消耗的处理机时间较短,因此能提高系统的吞吐量。调度算法和方式的不同,也会对系统的吞吐量产生较大的影响。3)周转时间。是指从作业提交到作业完成所经历的时间,包括作业等待、在就绪队列中排队、在处迤机上运行以及进行输入/输出操作所花费时间的总和。作业的周转时间可用公式表示如下:周转时间=作业完成时间-作业提交时间平均周转时间是指多个作业周转时间的平均值:平均周转时间=(作业1的周转时间+…+作业n的周转时间)/n带权周转时间是指作业周转时间与作业实际运行时间的比值:平均带权周转时间是指多个作业带权周转时间的平均值:平均带权周转时间=(作业1的带权周转时间+…+作业n的带权周转时间)/n4)等待时间。是指进程处于等处理机状态时间之和,等待时间越长,用户满意度越低。处理机调度算法实际上并不影响作业执行或输入/输出操作的时间,只影响作业在就绪队列中等待所花的时间。因此,衡量一个调度算法优劣常常只需简单地考察等待时间。5)响应时间。是指从用户提交请求到系统首次产生响应所用的时间。在交互式系统中,周转时间不可能是最好的评价准则,一般釆用响应时间作为衡量调度算法的重要准则之一。从用户角度看,调度策略应尽量降低响应时间,使响应时间处在用户能接受的范围之内。要想得到一个满足所有用户和系统要求的算法几乎是不可能的。设计调度程序,一方面要满足特定系统用户的要求(如某些实时和交互进程快速响应要求),另一方面要考虑系统整体效率(如减少整个系统进程平均周转时间),同时还要考虑调度算法的开销。三.互斥,同步与通信在许多操作系统中,传统的进程概念被分为两部分:一部分负责管理资源所有权;另一部分负责指令流的执行。一个单独的进程可包含多个线程。使用多线程的组织方法对程序的结构化和性能方面都有很大的帮助。SMP是一个拥有多处理器的计算机系统,其中的每一个处理器都可以执行所有应用程序和系统代码。SMP的组织方法增强了系统的性能和可靠性。SMP通常和多线程机制一起使用,即使没有多线程机制也能很大幅度的提高系统性能。微内核是操作系统为了减少运行在内核模式的代码量的一种设计方式,并且分析了这种方法的优点。2.并发:互斥和同步相交进程之间的关系主要有两种,同步与互斥。所谓互斥,是指散步在不同进程之间的若干程序片断,当某个进程运行其中一个程序片段时,其它进程就不能运行它们之中的任一程序片段,只能等到该进程运行完这个程序片段后才可以运行。所谓同步,是指散步在不同进程之间的若干程序片断,它们的运行必须严操作系统读书报告格按照规定的某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。总结:互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者