配套课件-操作系统原理与实践教程(第二版)_第1页
配套课件-操作系统原理与实践教程(第二版)_第2页
配套课件-操作系统原理与实践教程(第二版)_第3页
配套课件-操作系统原理与实践教程(第二版)_第4页
配套课件-操作系统原理与实践教程(第二版)_第5页
已阅读5页,还剩575页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章操作系统概论1.1操作系统的概念1.2操作系统的形成和发展1.3操作系统的结构1.4常用操作系统简介1.1操作系统的概念为了将部分关键的操作封装,同时也达到简化程序员工作的目的,计算机体系中出现了操作系统(OperatingSystem,OS)这个软件层次。操作系统能在管理并正确使用一个或多个处理器、主存、外存、网络接口以及多种不同的输入/输出设备的同时,为程序员提供一个通用的、相对简单的、能够驱动硬件工作的软件接口。1.1.1操作系统的定义操作系统是硬件之上的第一层软件,在操作系统之上的则是各种应用程序操作系统的层次结构1.1.1操作系统的定义操作系统的层次结构硬件层从底向上可分为物理设备、由各种寄存器和数据通道组成的微体系层以及主要由指令集组成的机器语言层,提供的是基本的计算资源。应用程序层软件则通常是基于特定操作系统的、满足特定功能的直接面向用户的软件,这些软件能够根据用户的具体需求申请特定资源,并按照应用程序规定的方法来使用这些资源。操作系统处于这两个层次之间,用来协调与控制应用程序对硬件的使用。1.1.1操作系统的定义每个人看待操作系统的角度不同,使用操作系统的目的不同,看到的操作系统也就表现出不同的特征:资源管理角度:操作系统可以被视为资源管理与分配器用户观点:操作系统是用户与计算机硬件系统之间的接口机器扩充角度:操作系统是一个专门用来隐藏硬件的实际工作细节,并提供一个可以读写的、简洁的命名文件视图的软件层次1.1.1操作系统的定义定义:操作系统就是一组管理与控制计算机软硬件资源并对各项任务进行合理化调度,且附加了各种便于用户操作的工具的软件层次。1.1.2操作系统的特征现代操作系统都具有并发、共享、虚拟和异步特性,其中并发性是操作系统最重要的特征,其它三个特性均基于并发性而存在。1.1.2操作系统的特征1.并发性区分两个概念:并发和并行。若在一个时间段内发生了一个以上的事件,则称这几个事件具有并发性而并行性指的是多个事件在同一时刻点发生在单处理机系统中,每个特定时刻只能有一个程序在CPU中运行。但一个较长的时间段可以被分为多个小的时间碎片,这些碎片可以按照一定的原则发放给多个不同的程序,使得在这个时间段内有多个程序得到一定程度的执行。这些程序是具有并发性,不具有并行性的。1.1.2操作系统的特征2.共享性操作系统中的共享,指的是多个并发执行的程序按照一定的规则共同使用操作系统所管理的软硬件资源。操作系统所管理的软硬件资源按照使用方式可以分为同时访问方式和互斥访问方式同时访问方式指的是在一段时间内允许多个程序并发访问。互斥访问方式指的是在一段时间内只允许一个程序访问的资源,这类资源被称为临界资源。1.1.2操作系统的特征3.虚拟性虚拟性是将计算机体系结构中的各种物理设备映射为多个逻辑设备。这种映射通常是利用分时共享的方式实现的,被映射的物理设备有多种。工作模式不同的各个设备所使用的映射方法不同。虚拟存储器技术虚拟处理器技术虚拟设备技术虚拟特性的实现主要依靠分时共享和多道程序设计技术,在它们的帮助下,操作系统可以将一个设备映射为多个,将一个设备的能力均分到不同的逻辑设备上,以便多用户共享资源。虚拟方法不会造成多个用户长期等待其他用户操作完成,同时能够极大地提高资源利用率。1.1.2操作系统的特征4.异步性异步性指的是操作系统中的各个程序的推进次序无法预知。异步性的产生是由现代操作系统的并发性引起的。在并发执行的多个进程间,何时能够获得所需资源,在什么时刻等待哪些进程释放资源,以及当前占有资源的进程何时释放资源等因素都是不确定的,因此用户是无法预知各个进程的执行时间。1.1.3操作系统的功能现代操作系统的主要任务就是维护一个优良的运行环境,以便多道程序能够有序地、高效地获得执行,而在运行的同时,还要尽可能地提高资源利用率和系统响应速度,并保证用户操作的方便性。操作系统的基本功能处理器管理存储器管理设备管理文件管理。友好的人机接口1.1.3操作系统的功能1.处理器管理功能创建、撤销进程按照一定的算法为进程分配所需资源还要管理和控制各用户的多个进程间的协调运行确保各个进程可以正确的通信在多道程序OS中,这些管理功能最终通过对进程的控制和管理来实现,而在具有线程机制的OS中,这些功能的实现还依赖于对线程的管理和控制。1.1.3操作系统的功能2.存储器管理功能存储器管理的主要任务就是将各种存储器件统一管理,保证多道程序的良好运行环境,同时还要兼顾内存利用率、逻辑上扩充内存的需求以及用户的感受,提供优良的控制、存取功能,为用户提供操控存储器的手段。为实现上述要求,存储器管理应具有以下功能:内存分配内存回收内存保护地址映射虚拟内存1.1.3操作系统的功能(1)内存分配内存分配指的是为每道程序分配合适的内存空间,使其能在运行期间将运行所需数据放置在内存指定区域,以保证CPU能够顺利地获取指令并存取指定数据。分配内存空间时应尽量提高内存空间的利用率,减少不可用内存空间。此外还应能响应正在运行的程序发出的动态空间申请,以便满足新增指令和数据对新空间的需求。内存分配通常采用的方式有动态和静态两种方式。静态分配方式指的是程序在装入内存时需要估计所需空间,一旦进入内存开始运行,就不能再申请新的空间,也不能将该程序所占空间“搬运”到其它位置。动态分配方式指的是尽管程序装入内存时申请了一定的空间,但在程序运行期间还可以为运行过程中所需的新的程序和数据再申请额外的空间,以满足程序空间动态增长的需要。1.1.3操作系统的功能(2)内存回收内存回收指的是当程序运行完毕后,将各程序在装入内存时所分配的空间重新置为空闲分区,并交由OS统一管理,以备其它程序申请使用。在内存的分配和回收过程中,为了记录当前内存使用和分配情况,OS中通常还要配置内存分配数据结构,以便为后期分配和回收提供依据。1.1.3操作系统的功能(3)内存保护多道程序环境中,为了保证每个用户的各个程序独立运行,不会相互影响,需要提供内存保护机制。该机制的主要任务就是确保每道程序都在自己的内存空间运行,决不允许任何程序访问或存取其它程序的非共享程序和数据。常见保护方法是利用上下界限寄存器。这两个寄存器中存放的数值是当前进程的内存空间的起始地址和终止地址,每当CPU要求访问某个地址的程序或数据时,OS会先利用上下界限寄存器与之比较,若在这两个界限内,则可以正确访问,否则就拒绝此次的内存访问。通过这种方式,可以确保在进程运行期间不会误访问无权限空间。

1.1.3操作系统的功能(4)地址映射在多道程序环境中,每个程序的独立空间分布于内存的不同位置,但程序员在编码时并不知道自己的程序进入内存后会被放置在什么位置,因此也不可能在程序中直接使用内存单元地址来操作所需的指令或数据。为了解决这个问题,当前的OS都提供了地址映射机制。基本思想:将用户与内存分隔,即程序员编码时直接以“0”作为程序中出现的其它任何地址的初始位置,该位置被称为逻辑基址。该程序被编译和连接过后,形成可装入的可执行文件。根据内存的当前使用情况,OS会在可执行文件真正装入内存时为其分配合适大小的空闲空间,此空间的初始位置称为物理基址。当程序运行时,CPU需要查询某位置的数据或指令时只需给出相对于逻辑基址的偏移量,OS会根据逻辑空间内容的分布情况自动将该逻辑地址转换为内存中对应的物理地址。地址映射功能需要硬件机构的协助,以保证数据的快速定位与存取。1.1.3操作系统的功能(5)虚拟内存虚拟内存是利用特殊技术将磁盘的一部分空间实现较快的存取,从逻辑上扩充内存容量,使用户感觉到的内存容量比物理内存实际所提供的空间大。这种方式可以提高多道程序程度,提升系统吞吐量,获得更好的系统性能。该机制的核心内容是请求调入功能和置换功能。请求调入功能允许程序仅向内存装入保证启动的必需数据和指令,当程序在运行过程中若需要新的数据和程序时,先中断自身运行,并向OS提出调入请求,由其从磁盘将所需数据和指令调入内存,然后继续从被中断的地方执行。置换功能指的是在OS将所需新数据或指令调入内存时,若发现内存空间不足,需要从现处于内存中的数据或程序中选择部分暂时不用的调出到磁盘上,腾出的空间则用来调入当前的急需数据。1.1.3操作系统的功能3.设备管理功能

设备管理的主要作用是使用统一的方式控制、管理和访问种类繁多的外围设备。根据设备管理模块的功能要求,可以将其功能分为:设备分配缓冲管理设备处理虚拟设备1.1.3操作系统的功能(1)设备分配根据用户的I/O请求和系统的设备分配策略,从系统当前空闲资源中选择所需类型设备,并将其使用权限交付给用户。若I/O子系统中还包括通道和设备控制器,则设备分配还要负责选择空闲通道和控制器并交付用户使用。1.1.3操作系统的功能(2)缓冲管理合理组织I/O设备与CUP间的缓冲区,并提供获得和释放缓冲区的有效手段。OS中常见的缓冲区机制有单缓冲机制、双缓冲机制、缓冲池机制等。1.1.3操作系统的功能(3)设备处理设备处理程序即设备驱动程序,是CPU和I/O设备之间的通信程序。工作过程为:当设备驱动程序接收到上层软件发送来的I/O请求时,要先检查其合法性,然后查看设备是否空闲、设备的工作方式等信息,接着按照要求的参数格式向设备控制器发送具体的I/O命令,指挥控制器启动设备按照顺序完成指定动作。为了保证通信,设备驱动程序还应能接收从控制器发来的中断请求,分析该中断请求的类型,接着启动处理该中断类型的相应中断处理程序,由其完成最终的处理过程。若是具有通道的OS,设备处理程序中还要配备根据用户请求构造通道程序的功能。1.1.3操作系统的功能(4)虚拟设备通过SPOOLing虚拟技术实现,该技术可将一台物理设备虚拟为多台逻辑设备,每个用户使用一台逻辑设备,即将独占的物理I/O设备交由多个用户共享使用。这种方法能够大大提高I/O速度,改善设备利用率,对每个用户而言也感觉自身具有一台独享的物理设备,改善了用户请求的响应感受。1.1.3操作系统的功能4.文件管理程序运行所需的代码和数据以文件形式存储在外部介质上,只有在程序运行需要时才通过文件管理机制调入内存。该机制能有效保护文件安全,提高资源利用率,为用户提供快速检索和使用文件的手段,是OS不可或缺的组成部分。文件管理的主要功能:管理外存上的静态文件,提供存取、共享和保护文件的手段,以方便用户使用;禁止无权限用户对他人资源的误访问或有权限用户对资源的误操作;管理外存空闲区域,根据文件的大小为其分配和回收空闲区;为了满足用户对响应时间的要求,文件管理机制还应实现目录管理,以便快速地定位文件。1.1.3操作系统的功能5.人机接口为了更大程度地减少操作人员的次要工作、方便用户使用系统功能,操作系统应配备用户界面,即所谓“用户与操作系统的接口”。分类:图形用户接口命令接口程序接口1.1.4操作系统的设计目标为满足用户使用需求,现代操作系统在设计时均注重有效性、方便性、开放性、可扩展性等特性。有效性指的是OS应能有效地提高系统资源利用率和系统吞吐量。方便性指的是配置了OS后的计算机应该更容易使用。这两个性有效和方便的特性是操作系统最重要的设计目标。开放性指的是OS应遵循世界标准规范。可扩展性指的是要提供对系统软硬件组成以及功能的扩充保证。1.1.5操作系统的性能指标操作系统性能的优劣显著地影响用户工作的效率和成本,而衡量其性能优劣的指标有系统吞吐量、资源利用率、响应速度等。系统吞吐量指的是在单位时间内系统所能处理的数据量,该指标可以用来衡量系统的处理效率。资源利用率指的是各类资源在单位时间内为用户工作所服务的比例,它表明资源能力利用是否合理。响应速度指的是系统从接收到用户请求到完成请求处理、反馈响应信息的完整过程的速度,它的优劣大大影响到用户感受。性能优良的OS应具有更大的系统吞吐量、更高的资源利用率和更快的响应速度1.2操作系统的形成与发展人工操作阶段单道批处理系统多道批处理系统分时系统个人机系统实时系统网络操作系统分布式系统1.2.1人工操作阶段在操作系统软件出现之前,体积庞大且处理速度缓慢的计算机硬件就已经出现并投入使用了。每个用户均使用人工操作方式直接使用计算机硬件系统,将写有程序的穿孔卡片装入专用的输入设备后,再手动启动将其输入计算机,最后再启动计算机处理数据。缺点:计算机由一个用户独占,除非该用户工作完成,下一个用户总是需要长期等待。CPU利用率低。用户在安装卡片、启动输入设备进行输入时,CPU并没有工作,而是等待数据输入。1.2.2单道批处理系统上世纪50年代,使用功耗低、可靠性高的晶体管构造的计算机量产并可以长时间运行,完成一些有用的工作汇编语言和FORTRAN语言的出现和流行,也使得很多编程人员开始使用它们来编写自己的工作程序,这些程序中包含了一些特殊的程序,它们专用于完成批量作业的处理。这些程序就是现代操作系统的前身,被称为单道批处理系统。工作过程:多个用户任务利用外围机输入磁带后,启动批处理系统自动按顺序读入并处理全部任务,同时依序将结果输出到另一个磁带上,直到全部任务完成,工作人员再将结果利用输出外围机输出即可特性:顺序执行、自动运行、单道运行优点:尽可能地将CPU的等待时间降低,在一定程度上缓解了人机矛盾,提高了CPU利用率和系统吞吐量。缺点:资源利用率仍然不高1.2.3多道批处理系统20世纪60年代,使用小规模集成电路制造的第三代计算机上首先出现了多道批处理系统多道批处理系统工作过程:所有用户的作业先在外存排队等待装入内存,此时形成的作业队列被称为“后备队列”。接着由作业调度程序按照选定的调度算法从后备队列中选择一个或多个作业装入内存的不同分区,这些分区相互不重叠。在作业运行期间,各作业仅能访问分配给自己的内存空间中的程序和数据,每次要求访问指定地址的信息时,操作系统要主动检查其是否超出本作业的内存空间,以防止越界访问和操作。1.2.3多道批处理系统优点提高CPU利用率。多道批处理系统中,一个作业需要转向I/O执行时,可以将CPU交给另一个作业使用,只要内存中作业达到一定数量,就可以保证CPU始终处于忙碌状态,其利用率甚至可以接近100%。提高内存和I/O设备利用率。多个程序共处内存可以尽量减少内存的空间浪费。多个I/O设备同时被多个不同程序使用,在单位时间内,每个设备的利用率都得到了提升。增加系统吞吐量。当CPU和I/O设备都不断忙碌的情况下,单位时间内系统所处理的数据量必然会大幅增加1.2.3多道批处理系统缺点平均周转时间(作业进入系统到其完成任务退出系统所经历的平均时间)长无交互能力用户任务响应时间大大延长修改和调试程序均需要等待本批作业处理完成才能进行1.2.4分时操作系统设计动机:该系统的出现起因于多数程序员对于多道批处理系统需要与他人争抢机时的痛苦感受,用户希望可以独占一台机器比较长的时间,以便集中完成自己的工作,同时也希望随时与机器交互,以便对自己的程序做出及时的调整。

设计思想分时系统将CPU处理时间进行分割,形成多个特定大小的时间片段,这些片段被称为时间片。而分时系统中的每个用户在获取CPU控制权后,最长只能执行一个时间片长度,然后就必须让出CPU,交给其他等待用户使用。1.2.4分时操作系统特点多路性:指的是多个用户终端同时联接在一台主机之上,系统按照时间片轮转的方式将CPU轮流交予各个用户进程使用。用户:单位时间内每个用户都感觉自己独占终端并得到响应系统:每个小时间片内及时性:指的是用户请求的响应时间要短。独立性:指的是每个用户均感觉自己独占了一台终端,且不知道其他用户的存在,即每个用户均独立运作自己的程序,相互之间不干扰。交互性:指的是用户使用终端与系统进行对话,以便向系统请求各种不同的系统服务,这些服务可以帮助用户完成不同类型的需求。1.2.5个人计算机操作系统上世纪80年代初,大规模集成电路构成的微型计算机(个人计算机)问世,它具有极低廉的价格却能够做到原来由大型机才能完成的工作。微型计算机上配置的操作系统被称为微机操作系统,根据其运行方式,可以将整个发展过程中出现的微机操作系统分为以下几类:单用户单任务操作系统:一段时间内只能有一位用户使用微型计算机,且这个用户一次只能运行一个用户程序。单用户多任务操作系统:一段时间内由一个用户独享计算机,但这个用户可以合理利用这段机时,一次运行多个任务,使它们并发执行。这种做法通过提高多道程序度来增加系统吞吐量和资源利用率,缩短用户任务的响应时间,从而大幅提高系统性能。多用户多任务操作系统:多个用户同时登录主机,但每个用户要使用自己的终端来共享系统资源;在每个终端上,各个用户可以同时运作多个并发任务,以进一步提高系统吞吐量和资源利用率。1.2.6实时操作系统在工业应用领域,实时操作系统(RealTimeSystem)更为常见。特征:时间是关键参数,即系统应能及时获取用户请求,并在指定时间内开始或完成规定任务,同时还要保证所有任务协调一致地工作。实时操作系统通常被用于进行实时控制或实时信息处理。实时控制:生产过程的控制均需要依赖计算机对数据的快速组织处理能力,由硬件采样装置采集上来的样本值被及时(或即时)传送到控制主机中,由主机根据事先制定的控制规则自动指定相关硬件动作,以完成产品的加工。实时信息处理:此类系统所管理的数据均放在服务器上,由多个终端通过网络关联,服务器接收各终端发来的远程服务请求,分析请求后对信息进行检索和处理,然后将处理结果返回给提出申请的用户。1.2.6实时操作系统分类按周期性分类周期性实时任务:由外部设备按照设备周期定期发送信号来启动,主机收到信号后为该设备进行某些特定工作的执行。非周期性实时任务:根据任务对截止时间的要求以及当前系统中资源使用情况选择合适的时机启动,该时机必须能保证任务满足截止时间要求。按对截止时间要求的严格程度分类截止时间分为开始截止时间和完成截止时间两种。前者要求实时任务在指定时刻(或之前)必须开始运作,后者要求实时任务在指定时刻(或之前)必须结束。硬实时:任务必须在指定截止时间(或之前)开始或完成软实时:要求不是十分严格,偶尔可以超出时限,对系统正确性和安全性不会有太大的影响1.2.7网络操作系统网络操作系统(NetworkOperatingSystem,NOS)是网络用户和网络之间的接口,除实现通用操作系统功能外,还需要管理网络中的共享资源,实现用户之间的通信,同时还要向用户提供多种系统服务。网络操作系统的基本功能:基本操作系统功能数据通信资源共享网络管理1.2.7网络操作系统网络操作系统的基本功能:数据通信:建立与解除除应用层外的所有各网络层次间为保障数据通信所设立的各种连接。正确拆分和组装报文。实现传输控制。做到流量控制。提供差错的检测与纠正功能。1.2.7网络操作系统网络操作系统的基本功能:资源共享:对硬盘空间共享:既可以使用虚拟软盘方式将服务器硬盘分区后分配给各用户,也可以使用文件服务方式要求系统将服务器的文件系统中特定目录或文件的存取权限交付给用户。对网络打印机共享:使用SPOOLing(假脱机)技术将网络中的打印机共享给工作站或其它所有的计算机,每个工作站或服务器发送给打印机的任务将在打印机所在地进行排队等待,直到全部打印工作完成。网络资源的共享利于提高资源利用率,降低成本。1.2.7网络操作系统网络操作系统的基本功能:网络管理:网络管理软件负责监视网络及其组件的运行情况它向不同设备不定时发送特定信息,并接收和分析响应信息,以确定该设备甚至整个网络是否正常运作。网络操作系统部署于单机,其运行性能取决于本地计算机。1.2.8分布式操作系统分布式系统是一个逻辑上的全局操作系统,由若干个独立的计算机构成,这些不同的处理器通过互联网构成一个统一的系统。在该系统中使用了分布式计算结构,将原来单机系统CPU的任务分散给不同的处理器,这些处理器可以用来实现不同的功能,它们协调工作,共享系统软硬件资源,共同控制分布式程序(进程)的运行。分布式系统能够给用户提供统一的界面、标准的接口,以便利用系统的各种资源实现所需要的全部操作。组成分布式系统的各个主机体系(包括处理器、存储器、外设)既可以独立处理本地任务,又可以合作完成大型工作。1.2.8分布式操作系统与网络操作系统的区别系统透明性:分布式系统对用户而言是透明的。不同主机的用户可以看到统一的界面,每个用户均认为整个系统运行于本地计算机,当用户要求使用某资源时,无须了解资源位置和操作执行的位置,只需使用本机的操作指令即可,分布式系统将自动解析用户申请,选择相应位置的主机运作指定操作,并利用相应位置的指定类型资源。在网络操作系统对用户而言是不透明的。用户需要显式给出所申请资源位置,要求用户对整个网络布局有深刻的了解。系统耦合度:分布式操作系统除了具有一般计算机网络的模块性、并行性、通信性等特征外,还有进一步的发展。为了完成某些大型工作,多个主机需要合作,因此分布式系统是逻辑上紧密耦合的系统。网络操作系统中,各主机均有自己的一套处理机制,仅仅依靠通信链路上的消息传递为用户提供一些服务,逻辑上并未构成一个整体,因此网络操作系统是逻辑上松散耦合的系统。

1.2.8分布式操作系统特征:多机合作:多个处理器共同协作,由操作系统自动对任务进行分配和协调。分布式系统具有多机合作功能,使得其具有响应时间短、系统吞吐量高、可靠性高等优点。健壮性:当系统中的一个甚至多个处理器出现故障时,剩余的处理器仍能自动重新构成一个新的基于较少处理器的操作系统,该系统仍能继续工作,甚至在配置了冗余处理器的分布式系统中,重构的新系统可以继续失效部分的全部工作。一旦故障排除,系统将自动恢复为原来的状态。1.2.9操作系统的进一步发展集群式系统两个或多个独立的系统单元组成的大型系统,这里的单元可以是单处理器系统,也可以是多处理器系统。多处理器系统指的是通过通信信道紧密通信的多个处理器组成的系统,它分为对称多处理器系统和非对称多处理器系统对称多处理器系统:系统中每个处理器均安装有一个操作系统的副本,它们相互通信,共享总线、时钟等系统资源,在系统中的地位相同。非对称多处理器系统:系统中每个处理器的地位不同,有一个主处理器和多个协处理器,主处理器主控全局,协处理器向主处理器要任务或执行预先设定的任务。特点:具有较高的性价比。提供优秀的容错能力。能及时检测到故障的产生,并恢复故障节点的运作。1.2.9操作系统的进一步发展嵌入式系统在各种数字化设备中设置类似微型机的硬件构成,并将嵌入式系统植入这些硬件中,使其为各种用户级嵌入式软件提供支持,同时控制整个系统的各项操作,合理管理和分配系统资源除了具有操作系统的基本功能外,还具有实时性、微型化、可裁剪、高可靠性和高可移植性等特点。最典型的复杂嵌入式系统是Linux。1.3操作系统的结构使用软件工程思想设计操作系统时,除了要满足操作系统的基本设计目标外,还要根据用户需求分析采用哪种形式的操作系统结构更适用。较有代表性的OS结构整体结构分层结构虚拟机结构外核结构客户机/服务器结构。1.3.1整体结构整体结构又称为模块化结构,它采用结构化程序设计技术,将复杂的OS需求分解后根据相关性分类,每个类别使用一个或几个模块实现。模块-接口法:整体结构OS的各模块分别具有特定管理功能,且相互之间使用规定好的接口通信。各模块进一步划分为子模块和通信接口。子模块还可以进一步细分为更小的模块。1.3.1整体结构特点内聚度低耦合度高新加入的系统功能可以独立设计、编码和调试后再与原系统连接形成新的整体各模块独立开发,缩短系统开发周期独立开发的各模块无法基于确定前趋模块完成,这种无序性将会导致设计的基础无法保证可靠1.3.1整体结构简单的整体结构操作系统结构模型1.3.2分层结构将整体结构OS中的各个模块按照决定次序分层,即每层都是在其下层的基础上构建的。在裸机之上,根据模块功能与系统硬件的相关性以及各模块之间的调用关系,构建多个层次的软件,最终形成完备的OS。分层结构实现过程通常采用自底向上的方法进行,以保证系统模块按照设计过程中的决策次序铺设。该结构的系统具有层次特性,每个层次由多个模块构成,且只依赖于其紧邻下层。1.3.2分层结构特点便于保证系统正确性便于进行功能扩充和系统维护。各层间都要定义通信机制,这样当一个用户请求需要使用较低层次的功能时,需要多次穿越层边界,这样的做法会增加通信开销,导致系统效率降低。层号功能5操作员4用户程序3I/O管理2操作员-进程通信1存储器和磁盘管理0处理器分配和多道程序设计第一个分层结构OS——THE系统结构

1.3.3虚拟机第一个真正意义上的虚拟机结构OS是VM/370,它的设计初衷是实现两个功能:提供多道程序环境和实现一个比裸机更方便的可扩展的虚拟计算机。VM/370的核心程序为虚拟机监控器(virtualmachinemonitor),它运行于裸机之上并提供多道程序功能。该系统向上层提供多个对裸机硬件精确复制的虚拟机,这些复制品均具有真实机器的全部功能。由于在一台物理裸机上运行的操作系统均可以出现在一个特定虚拟机上,因此分配给各用户的不同虚拟机上可以随用户的个人爱好和操作习惯不同而采用不同的操作系统。所有虚拟机都是对整个物理裸机的精确复制,因此其可用空间均从0到最大编号,为确保正确定位用户的实际文件所在地,虚拟机监控器必须设置和维护一张地址重映射表。1.3.3虚拟机在VM/370的各虚拟机中,除了用来实现批处理和事务处理的系统功能程序外,还有用来保证分时共享的单用户、交互式系统——会话监控系统(ConversationalMonitorSystem,CMS)。1.3.4外核从虚拟机发展而来该系统为每个虚拟机指定连续空间,其核心程序称为外核(exokernel),它在核心态运行,为虚拟机分配资源,并对虚拟机发送来的资源访问申请进行检查,以保证没有任何虚拟机能访问其他虚拟机(用户)的空间。这种方法可以将每个用户层虚拟机限定在已分配给它的指定资源环境中,保证各虚拟机的独立性。优点可以减少映射次数可以将外核内的多道程序设计环境与用户空间的操作系统代码有效隔离外核处理虚拟机冲突的开销较小1.3.5客户机/服务器结构现代操作系统普遍采用的方法是将操作系统的大部分功能尽量从核心态中移出,只将最基本的操作组成一个很小的微内核,这就形成了所谓客户机/服务器结构(C/S结构)的操作系统。它将处理本地业务的用户进程放在具有一定独立处理能力的客户机上,形成客户机进程;而把网络之上所有用户同时共享的信息以及完成客户机与服务器通信功能的微内核放在服务器上,形成服务器进程。

用户提出访问系统资源申请时,客户机进程先发送请求给服务器进程,由后者将请求转发给能完成指定服务的客户机,待其完成要求工作后将结果发送给服务器进程,再由服务器进程将结果回送给发出申请的客户机进程。1.3.5客户机/服务器结构优点数据可以分布式处理和存储重要数据可放在受到严密保护的服务器所在的局域网内,便于集中管理,以保证数据安全C/S结构有较好的灵活性和可扩充性易于修改用户程序1.4常用操作系统简介Windows系列操作系统个人桌面系统领域应用范围最广的操作系统UNIX和Linux系统UNIX:技术成熟度、稳定性、可靠性好,是唯一被专业人士认可的、能在从巨型机到微型机甚至是嵌入式硬件平台上稳定运行的多用户、多任务操作系统Linux:起源于UNIX社区,是首要的开源类UNIX系统。在教育领域,对Linux的学习也有助于学生理解内核工作方式。该系统本质上只提供一个操作系统内核,其它的扩展功能(尤其是直接面向用户的shell层次的各种功能)则由分布在全球的各类公司、研究机构、大专院校等单位或个人根据自身或客户需要自主开发,是真正的定制系统。本章学习目标掌握操作系统的定义及其在计算机系统中的作用。掌握操作系统的特征与功能。了解操作系统的形成过程及其发展趋势,掌握批处理系统、分时系统和实时系统的特点。了解操作系统的设计结构。了解常见操作系统的特点。第2章操作系统的界面2.1用户工作环境2.2操作系统的用户接口2.3操作系统提供的服务2.1用户工作环境用户环境指的是用户以自己的账号和密码登录到系统后所见到的整体操作环境,这个环境应该由操作系统和用户自身设定综合而成。操作系统会在用户账号下关联一个操作偏好设置的记录,当某用户以自身账号和相应密码登录系统后,操作系统将自动按照该记录设置默认的用户操作环境。对普通用户而言,图形化的环境更容易上手和操作对特殊应用领域的用户而言,使用命令行形式能获得更好的响应效率2.1.1用户环境在设定用户环境前,通常要求系统先启动,即先将所有用户的公共服务和基本的系统操作环境设置好,然后再根据各用户的个人设定进行细微的调整。以linux为例,看到如下图像表示系统正在开机自检并配置基本操作环境。2.1.2系统的生成与引导操作系统需要完成生成与引导两个步骤后才能为用户提供正确的服务,确保用户任务的顺利完成。系统生成(SystemGeneration,SYSGEN):在为用户建立工作环境前,需要先检测硬件情况,并在特定硬件之上配置和构造操作系统。系统引导指的是将操作系统内核装入内存并启动系统的过程。2.1.2系统的生成与引导系统生成当裸机被启动时,为了生成正确的操作系统,需要根据硬件平台的状况进行一系列重要的安装工作,为此需要设计一个特殊的程序来自动进行系统生成。系统生成程序从指定文件中读取硬件系统的配置信息,或从操作人员处获取这些信息,甚至在某些系统采用硬件直接检测的信息获取方式。配置信息用来帮助系统记录硬件配置信息,以便能根据硬件选择合适的操作系统模块组。2.1.2系统的生成与引导系统生成时参考的重要配置信息CPU类型内存大小当前关联设备的类型和数量操作系统的重要功能选项和参数2.1.2系统的生成与引导系统生成方法表驱动法:所有的系统代码(尤其是实现核心功能的内核代码)以文件形式出现在外存的指定位置。当系统实际运行时,根据自身当前运行需要选择相应的功能模块装入内存。这种方法的好处是能以最小的内存空间保证最基本的系统功能运作,同时也加速了启动速度。2.1.2系统的生成与引导系统生成方法其他方法:为了实现专有硬件平台对实时性、快速性等特殊性能的更高要求,可根据用户的特定需求定制操作系统,并将其完全编译,形成专用系统。此类系统将一些与用户需求无关的功能直接裁掉,以牺牲全面性能的方式换取更快速响应。2.1.2系统的生成与引导系统引导系统引导由位于系统ROM中的启动引导程序完成,整个系统引导过程包括定位内核代码在外存的具体位置、按照要求正确装入内核至内存并最终使内核运行起来。初始引导内核初始化全系统初始化2.1.2系统的生成与引导

初始引导计算机BIOS完成,包括中断服务程序、系统设置程序、上电自检(PowerOnSelfTest,POST)和系统启动自举程序等中断服务程序是系统软硬件间的一个可编程接口,用于完成硬件初始化系统设置程序用来设置CMOSRAM中的各项参数上电自检POST在通电后自动对系统中各关键和主要外设进行检查,一旦在自检中发现问题就通过鸣笛或提示信息警告用户系统启动自举程序按照系统CMOS设置中保存的启动顺序搜索有效的硬件驱动器,读入操作系统引导程序,接着将系统控制权交给引导程序,并由引导程序装入内核代码,以便完成系统的顺序启动2.1.2系统的生成与引导内核初始化引导程序将系统内核装入内存后就将CPU控制权交给内核内核执行对硬件、电路逻辑等的初始化操作,以及对内核数据结构的初始化2.1.2系统的生成与引导全系统初始化该步骤的主要任务是启动用户接口,使系统处于等待命令输入状态此时操作系统做的主要工作是为用户创建基本工作环境,接收、解释和执行用户程序与指令。全系统初始化完成后,各用户看到的接口表现会根据用户自身设定显示Linux用户命令行登录界面Linux用户图形登录界面2.1.3实例分析:Linux系统启动Linux的启动过程需要多个环节的配合,首先需要由BIOS加载操作系统引导程序,由其加载操作系统内核,内核装入时需要先进行代码的解压缩,然后才能开始初始化过程,初始化过程完成后陆续生成各终端进程,以便为用户提供所需系统服务。BIOS初始化装载启动引导程序内核初始化启动系统2.1.3实例分析:Linux系统启动BIOS初始化硬件配置检测:检查并获取外设数量、类型、工作方式等重要的管控信息硬件初始化:可避免硬件设备操作不会造成硬件冲突,同时显示系统中所有PCI设备列表装入引导程序:根据用户预定义次序依次访问软盘、硬盘和CD-ROM的第一个扇区,并将搜索过程中遇到的第一个引导程序装入内存转向引导程序:引导程序装载完成后,复制主引导扇区到内存起始位置为0x7C000处,并将此地址存放在指令指针寄存器里,此时下一条要执行的就是该寄存器所指向单元处的指令,即系统启动引导程序的第一条指令2.1.3实例分析:Linux系统启动装载启动引导程序Linux中当前最流行的启动引导程序为GRUBGRUB占用空间较大,无法一次性全部放入MBR,因此在BIOS初始化时装入的只是最初的部分内容(stage1)Stage1的工作是将GRUB的剩余功能代码(Stage2)装入内存,Stage2将汇编语言环境转化为C语言环境,接着显示一个界面让用户选择想要启动的操作系统用户选择了要启动的系统后,相应内核将被装入内存RedHatEnterpriseLinux5的启动菜单2.1.3实例分析:Linux系统启动内核初始化(

Setup.S程序)首先从BIOS中获取有关内存、磁盘以及其它设备的重要参数等数据,并将这些数据放到内存的特定空间对读入的内核信息进行检测检测并配置内存、键盘、磁盘等各种设备,设置中断描述符表、全局描述符表等表格以及中断向量等数据结构启动startup_32()函数装入各数据段寄存器、初始化页表、建立0号进程的内核堆栈,重新设置中断描述符表、全局描述符表,拷贝系统参数启动init()函数(1号进程)。2.1.3实例分析:Linux系统启动启动系统启动系统过程由init()函数完成,因此它又被称为初始化进程,负责创建并初始化其它所有的新进程工作过程读取设置文件/etc/inittab执行系统初始化脚本、对系统进行基本设置、挂载根文件系统和其它文件系统确定启动后进入的运行级别顺序启动并初始化系统重要服务工作启动虚拟终端,并在运行级别5上运行X-windowLinux的图形界面服务软件2.1.3实例分析:Linux系统启动Linux启动过程实际上是一个CPU控制权的传递过程2.2操作系统的用户接口操作系统是用户程序执行的平台,为用户进程提供系统服务操作系统的关键性、重要性要求用户不能随意直接访问和调用系统功能模块在现代计算机体系中,用户使用系统服务必须通过规定好的接口2.2操作系统的用户接口操作系统为用户提供的接口有图形接口、命令接口和程序接口几种形式2.2操作系统的用户接口命令接口使用方法:在终端上输入命令,指定要获取的系统服务名称、具体服务内容和被操作对象等信息,这些信息将被传输给服务程序,以便满足用户要求命令接口是交互式接口,由终端处理程序、命令解释程序和指令集合组成终端处理程序:接收用户输入的命令,并将其显示在屏幕上命令解释程序:用户核查无误后,使用回车键通知该程序开始分析指令和发送解析结果,并等待服务程序的处理反馈指令集合:机器语言编写的机器动作指令,由计算机硬件体系的各部件合作完成,该集合表征了计算机的功能2.2操作系统的用户接口命令接口批处理文件可被视为特殊的命令接口使用方式批处理文件的特点以“行”为单位顺序保存了一个指令序列,该指令序列可以帮助用户完成一个例行任务的快速执行简化操作、减少输入次数、节省时间可对指令流进行简单有效的定制适合专业用户使用:用户必须按照指定格式和名称申请系统服务,还要了解文件系统的目录结构以确定被操作对象的具体位置批处理文件用于执行例行性任务2.2操作系统的用户接口图形用户接口便于非专业用户正确、方便的使用操作系统使用图形用户界面的操作系统在执行程序时,首先创建一个新的显示区域,该区域称为窗口,然后在该窗口中进行指定程序的执行用户在使用窗口时可以根据喜好自定义窗口属性,并在窗口中使用鼠标选择所需操作,此时的鼠标动作相当于命令接口中的各种功能指令2.2操作系统的用户接口图形用户接口特点可以简单、便捷、直观地使用操作系统的各项系统服务拉近了计算机与普通用户的距离,极大地促进了计算机应用的发展缩短指令学习周期帮助专业人员将更多的精力和时间放在更为重要的工作上去2.2操作系统的用户接口命令接口与图形接口的比较命令接口:优势在于对计算机资源的控制更为直接有效、系统与用户的互动性更强、占用资源少、响应时间短,可以用于实现更为复杂和特殊的计算机操控要求图形接口:具有美观性、易用性、便捷性,利于非专业人士和无需控制系统环境的专业人士使用命令接口与图形接口均用于人机交互2.2操作系统的用户接口程序接口用户程序中需要使用系统服务时必须使用OS提供的应用程序接口(API)系统程序:用于管理和分配系统资源,为用户提供服务用户程序:用于完成用户自身任务,需要向系统提出资源申请并等待系统的审核分配,是服务的申请者操作系统的程序接口由一组能请求操作系统内核完成特定功能的专用过程调用组成,用户程序必须使用这种方式获取核心态的系统服务2.3操作系统提供的服务操作系统提供的基本服务控制程序运行进行I/O操作操作文件系统实现通信错误处理操作系统提供的公共函数资源分配统计管理和控制数据提供系统资源保护2.3.1操作系统提供的基本服务控制程序运行系统通过服务将用户程序装入内存并运行控制程序在规定时间内结束将执行过程中出现的错误和异常及时地报告给用户或系统的其他错误处理程序进行I/O操作为保证各用户合理、安全地共享设备资源,用户不能直接控制设备,只能通过向系统发送设备申请来请求系统代其处理,因此系统应具有接收并解析设备请求、完成请求工作、反馈设备工作结果给请求用户等一系列的I/O控制功能2.3.1操作系统提供的基本服务操作文件系统文件系统是OS用来管理、存取文件的机制,支持”按名存取“OS为用户提供根据文件名称创建、访问、修改、删除文件的方法,以确保文件数据的安全可靠以及正确存取对于多个用户,操作系统可将不同用户的文件分别保护实现通信当多个程序合作完成一个大型任务时,通常需要借助通信来控制程序的执行顺序,该通信任务由OS提供的服务完成2.3.1操作系统提供的基本服务错误处理在系统运行期间,各种级别的程序都有可能出现错误情况,严重者能造成系统崩溃操作系统通常都要设置错误检查和处理机制,以便及时发现错误并采取正确的处理步骤,避免损害系统的正确性和统一性2.3.2操作系统提供的公共函数系统内核中还提供大量公共基础函数,用来帮助系统高效运行,确保用户合理共享资源,并提高系统效率资源分配:管理特殊系统资源,确保用户和系统之间、用户之间不会产生资源共享冲突,并能完成资源的及时回收统计管理和控制数据:OS要保存每个用户的资源使用情况,以便建立系统管理和控制所需的统计数据。统计结果需要经过细致地分析,并根据分析结果设计一系列系统服务的改进措施提供系统资源保护:系统资源是操作系统的重要管理对象,其安全使用决定系统本身的安全性,系统资源保护函数根据用户的角色要求管理资源,以保证用户不会相互打扰,也不会访问重要系统资源本章学习目标了解操作系统用户的不同工作环境。掌握操作系统的生成和引导过程。了解操作系统为用户提供的各种用户接口的使用方法。了解系统调用的特点和用法第3章进程同步与死锁3.1进程的引入3.2进程的概念3.3进程控制3.4线程3.5处理器调度3.6调度算法3.7多处理器调度和实时调度3.1.1程序的顺序执行在早期的单道程序计算机系统中,一次只能运行一个程序,当有多个程序需要运行时,程序的执行方式必须是顺序的,即必须在一个程序执行完成之后,才允许执行另一个程序。程序段的顺序执行示意图:3.1.1程序的顺序执行程序顺序执行的特征如下:顺序性。处理机在执行程序时,严格按照程序所规定的顺序执行,即每一操作都必须在下一操作开始之前完成。封闭性。程序一旦开始运行就独占系统资源,只有本程序才能改变资源的状态,执行结果不受外界条件的影响。可再现性。只要初始条件和运行环境相同,多次执行同一程序,都会得到相同的结果。3.1.2

程序的并发执行程序的顺序执行降低了计算机系统的整体处理能力,使系统资源得不到充分利用,效率低下。为了提高计算机系统的资源利用率,现代计算机普遍采用并发操作,即若干个程序段同时在系统中运行,这些程序段的执行在时间上是重叠的,当一个程序还未执行结束时,另一个可能已经开始运行了。3.1.2

程序的并发执行程序的并发执行可以大大提高系统的吞吐量,具有以下三方面的特征:间断性。为了完成同一项任务而相互合作的多个程序并发执行时,由于互相协调、相互制约会导致“暂停—执行—暂停”的间断性运行规律。失去封闭性。程序在并发执行时,多个程序需要共享系统中的多种资源。所以,这些资源的状态是由多个程序改变的,从而使程序的运行失去了封闭性。不可再现性。程序在并发执行时,由于失去了封闭性,从而导致其失去可再现性。3.2.1进程的定义引入“进程”的原因是为了使程序能够并发执行,并且能对并发的程序加以描述和控制而引入的。一般把进程理解为:“可并发执行且具有独立功能的程序在一个数据集合上的运行过程,它是操作系统进行资源分配和调度的基本单位”。进程是一个程序运行的动态过程,而且该程序必须具有并发运行的程序结构;运行过程必须依赖一个数据集合而独立运行,从而形成了系统中的一个单位。3.2.1进程的定义进程的五大特性:动态性。进程的实质是程序的一次执行过程,是个动态的概念,有一定的生命周期,要经历创建、执行、撤销过程。结构性。它由进程控制块、程序段和数据段组成。并发性。指在一个系统内可以同时存在多个进程,它们通过交替使用处理器,从而实现并发执行。异步性。指进程之间在交替使用计算机资源时没有强制的顺序,按各自独立的、不可预知的速度向前推进。独立性。指进程在系统中是一个可独立运行的、具有独立功能的基本单位,也是系统分配资源和进行调度的独立单位。3.2.1进程的定义进程的分类:系统进程:它们是执行操作系统核心代码的进程,起到对系统资源的管理和控制作用。用户进程:主要是执行用户程序的进程。系统进程和用户进程的区别:(1)系统进程可以独占分配给它们的资源,也能以最高优先级运行;而用户进程需要通过系统服务请求(系统调用)的方式来竞争使用系统资源。(2)用户进程不能直接执行I/O操作,而系统进程可以。(3)系统进程在内核态(管态)下活动,而用户进程则是在用户态(目态)下活动。3.2.1进程的定义进程和程序既有区别也有联系,主要体现在以下几个方面:(1)程序是指令集合,是静态概念。进程是程序在处理机上的一次执行的过程,是动态的概念。(2)进程是一个独立的运行单位,能与其它进程并发(并行)执行。而程序则不可以并发执行。(3)进程是进行计算机资源分配的基本单位,也是进行处理机调度的基本单位。(4)一个程序可以作为多个进程的运行程序,这些进程可以同时存在,而它们使用的是同一程序。3.2.2进程的状态在系统中有多个进程存在时,它们是交替运行的,即进程会执行一段时间、暂停一下、然后再执行一段时间,重复该过程直到执行完毕。进程运行的间断性决定了进程可能具有多种状态。3.2.2进程的状态进程在运行过程中通常有三种基本状态,分别是:(1)就绪状态(Ready)

进程已获取到除CPU之外的所有必要资源,只要再得到CPU,就可以马上投入运行,这时进程所处的状态为就绪状态。(2)运行状态(Running)

处于就绪状态的进程得到CPU控制权后,就可以使用处理器进行数据运算和处理,而其所处的状态称为运行状态。(3)

阻塞状态(Wait)

当一个进程正在等待某个事件的发生(如等待I/O的完成)而暂停执行,这时,即使分配有CPU时间,它也无法执行,则称该进程处于阻塞状态,又称等待状态。3.2.2进程的状态进程在执行过程中的状态会不断变化,三种基本状态之间的转换关系如下图所示:3.2.2进程的状态在引入挂起状态的操作系统中,又增加了静止就绪和静止阻塞两个新的进程状态。进程状态之间的转换关系如下图所示:3.2.3进程控制块进程控制块(ProcessControlBlock,PCB)是操作系统为了管理进程而设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程。系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志。进程与PCB是一一对应的。3.2.3进程控制块不同的操作系统对进程的控制和管理机制不同,PCB中的信息多少也不一样。PCB通常包含如下信息:(1)进程标识符。每个进程都必须有一个唯一的标识符。(2)进程当前状态。(3)进程相应的程序和数据地址,以便把PCB与其程序和数据联系起来。(4)进程资源清单。(5)进程优先级。(6)CPU现场保护区。(7)进程同步与通信机制。(8)进程所在队列PCB的链接字。

(9)与进程有关的其它信息。如进程记账信息、进程占用CPU的时间等。

3.3.1进程控制的概念进程控制是进程管理中的最基本功能。是对系统中所有进程从创建到消亡的全过程实施有效的控制,不但要完成对运行过程中状态转换的控制,还需要能够创建新进程,或者撤销已经执行完毕的进程。进程控制一般由操作系统内核来完成。3.3.2进程控制机构进程的控制机构是由操作系统内核实现的。通常将与硬件密切相关的模块放在紧挨硬件的软件层中,并使它们常驻内存,以提高操作系统的运行效率,通常将这部分称为操作系统内核。操作系统内核为系统对进程进行控制、对存储器进行管理提供了有效的控制机制。3.3.2进程控制机构不同的操作系统内核所包含的功能不同,但大多数操作系统内核都包含支撑功能和资源管理功能。支撑功能:(1)中断处理。操作系统的各种重要活动最终都依赖于中断。(2)时钟处理。(3)原语操作。内核在执行某些操作时,往往是通过原语操作实现的。原语是由若干条机器指令构成的、用于完成特定功能的一段程序。原语在执行过程中是不可分割的。进程控制原语主要有:创建原语、撤销原语、挂起原语、激活原语、阻塞原语以及唤醒原语。3.3.2进程控制机构资源管理功能:(1)进程管理。进程管理的大部分或者全部功能都放在内核中,如进程的调度与分配、进程的创建和撤销。(2)存储器管理。内存的分配和回收、内存保护和对换等功能模块都放在内核中。(3)设备管理:设备驱动程序、缓冲区管理、设备分配等功能都放在内核中。内核中包含的原语主要有:进程控制、进程通信、资源管理以及其它原语。3.3.3进程创建一个进程在执行的过程中可以创建新的进程,通常将这样的进程称为父进程,而将被创建的新进程称为父进程的子进程。子进程还可以再创建子进程,被子进程新创建的进程被称为孙子进程,从而形成进程树,树的根结点是整个进程家族的祖先。3.3.3进程创建当子进程被创建时,它可以直接向操作系统申请资源,也可以继承父进程所拥有的资源。当子进程被撤销时,应该把从父进程那里获得的资源还给父进程。当撤销父进程时,应当把它创建的所有子进程也一同撤销。不论是系统还是用户,创建进程的操作必须调用创建原语来实现。3.3.3进程创建创建原语的主要功能:新进程申请获得惟一的数字标示符,并从PCB集合中获取一个空白PCB;为新进程的程序和数据以及用户栈分配必要的内存空间;对PCB进程初始化;将新进程插入就绪队列中,等待被调度执行。3.3.4进程撤销当进程完成任务或在执行的过程中发生异常时,系统将调用进程终止原语来终止该进程。终止进程的过程如下:根据被终止进程的标示符从PCB集合中查找到该进程的PCB,从中读出该进程的状态,终止该进程的执行;如果该进程还有子孙进程,应该将它的所有子孙进程终止,防止它们成为不可控进程;然后回收进程所拥有的资源;最后将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其它程序来搜集信息。3.3.5进程阻塞正在运行的进程由于提出系统服务请求(如I/O操作),但因为某种原因而未得到操作系统的立即响应,或者需要从其它合作进程获得的数据尚未到达等原因,该进程只能调用阻塞原语把自己阻塞,等待相应的事件出现后才被唤醒。可以看出,进程的阻塞是进程自身的一种主动行为。3.3.6进程唤醒当阻塞进程所等待的事件出现时,比如所需的数据已到达,或者等待的I/O操作已经完成,则由另外的与阻塞进程相关的进程(如用完并释放该I/O设备的进程)调用唤醒原语,将等待该事件的进程唤醒。阻塞进程不能唤醒自己。唤醒原语执行的过程为:首先把被阻塞的进程从等待该事件的队列中移出,将其PCB中的状态由阻塞修改为就绪,然后将该PCB插入到就绪队列中。3.4线程自20世纪60年代推出进程概念后,在操作系统中都是以进程作为独立运行的基本单位。直到20世纪80年代中期,人们又提出了比进程更小的能独立运行的基本单位—线程。目的是提高系统内程序并发执行的程度,从而进一步提高系统的吞吐量。3.4.1线程的概念传统的进程有两个基本属性:可拥有资源的独立单位、可处理器调度和分配的基本单位。引入线程以后,将传统进程的两个基本属性分开,线程作为处理器调度和运行的基本单位,进程作为分配资源的基本单位,可以通过创建线程来完成任务,以减少程序并发执行时付出的时空开销。线程是由线程ID、程序计数器、寄存器集合和堆栈组成。它与同属一个进程的其它线程共享其代码段、数据段和其它操作系统资源(如打开文件和信号)。一个传统的进程只有一个控制线程。如果进程有多个控制线程,那么它就能同时做多个任务。3.4.2线程的特点与状态线程是程序中一个单一的顺序控制流程。在单个程序中可以同时运行多个线程完成不同的工作,称为多线程。多线程是为了同步完成多项任务,通过提高资源使用效率来提高系统的效率。多线程是在同一时间需要完成多项任务的时候实现的。3.4.2线程的特点与状态多线程编程具有以下优点:(1)响应程度高。如果对一个交互式应用程序采用多线程,即使它部分阻塞或执行较冗长的操作,那么,该程序仍然能继续工作,从而提高对用户的响应程度。(2)资源共享。线程默认共享自身所属进程的内存和资源。(3)经济。创建进程所需要的内存和资源的分配比较昂贵,而由于线程允许共享自身所属进程的资源,所以,创建线程和上下文切换会更经济。(4)多处理器体系结构的利用。多线程的优点之一是能充分使用多处理器体系结构,以便每个线程能够并行运行在不同的处理器上。3.4.3线程的实现许多现代操作系统都已实现了线程,但各系统的实现方式并不完全相同.主要分为两种方式:用户级线程和内核级线程。3.4.3线程的实现用户级线程仅存在于用户空间中。用户级线程的创建、撤销、线程间的同步与通信等功能都无需通过系统调用来实现。用户级线程的切换,常常发生在一个应用进程的诸多线程之间,同样也无需内核的支持。由于切换的规则远比进程调度简单,所以线程间的切换速度非常快。可以看出,用户级线程是与内核无关的。在一个应用程序中的线程个数可以达到数百甚至数千个。由于这些线程的PCB设置在用户空间,而线程执行的操作也无须内核帮助,所以,内核完全不知道用户级线程的存在。值得注意的是,在设置了用户级线程的操作系统中,仍然是以进程为单位进行调度的。3.4.3线程的实现内核级线程是在内核的支持下运行的。内核线程的创建和管理要慢于用户线程的创建和管理。内核为每个内核级线程设置了一个PCB,内核根据该PCB感知线程的存在,并对其进行控制。3.4.4多线程模型1.多对一模型多对一模型将许多用户级线程映射到一个内核线程。线程管理是在用户空间进行的,因此效率比较高。如果一个线程执行了阻塞系统调用,那么,整个进程就会阻塞,而且,由于任何时刻只允许一个线程访问内核,因此多个线程不能并行运行在多处理器上。在这种模型中,处理器调度的单位仍然是进程。3.4.4多线程模型2.一对一模型一对一模型将每个用户线程映射到一个内核线程。当一个线程执行阻塞时,该线程模型能够允许另一个线程继续执行,所以,它提供了比多对一模型更好的并发功能。该模型也允许多个线程运行在多处理器系统上。这种模型的缺点是每创建一个用户线程就需要创建一个相应的内核线程。由于创建内核线程的开销会影响应用程序的性能,所以,这种模型的绝大多数实现限制了系统所支持的线程数量。WindowsNT/2000/XP和OS/2实现了一对一模型。3.4.4多线程模型2.一对一模型一对一模型将每个用户线程映射到一个内核线程。当一个线程执行阻塞时,该线程模型能够允许另一个线程继续执行,所以,它提供了比多对一模型更好的并发功能。该模型也允许多个线程运行在多处理器系统上。这种模型的缺点是每创建一个用户线程就需要创建一个相应的内核线程。由于创建内核线程的开销会影响应用程序的性能,所以,这种模型的绝大多数实现限制了系统所支持的线程数量。WindowsNT/2000/XP和OS/2实现了一对一模型。3.4.4多线程模型3、多对多模型多对多模型使用多路复用技术,使许多用户级线程映射到同样数量或更小数量的内核线程上。多对多模型克服了前两种模型的缺点,开发人员可以创建任意多个必要的线程,并且相应的内核线程能够在多处理器系统上并行运行。当一个线程执行阻塞系统调用时,内核能够调度另一个线程来执行。Solaris2、IRIX、HP-UX和Tru64Unix都支持这种模型。3.4.4多线程模型线程实现模型:3.4.5线程池线程池的实现原理类似于操作系统中的缓冲区概念。它的流程如下:预先创建若干数量的线程,并让这些线程都处于睡眠状态,不消耗CPU资源,当客户端有一个新请求时,就会唤醒线程池中的某一个睡眠线程,让它来处理客户端的这个请求,当处理完这个请求后,线程又处于睡眠状态。3.4.5线程池基于这种预创建技术,线程池将线程创建和销毁所带来的开销均摊到各个具体的任务上,执行次数越多,每个任务分担到的线程自身开销就越小。线程池具有以下优点:(1)用现有线程处理请求通常比等待创建新线程快.(2)线程池限定了任何时候可存在线程的数量。3.5处理器调度处理器调度的过程就是为待处理的作业或进程分配处理器的过程。在多道程序系统中,一个任务提交后,必须经过处理器调度,方能获得处理器而执行。处理器调度的具体过程是由调度程序来完成的。不同的操作系统采用的调度方式也不相同。有的系统中仅采用一级调度,而有的系统采用两级或三级,并且所用的调度算法也可能完全不同。通常,一个较为完善的操作系统会提供三级调度。3.5.1处理器调度的层次按照一个作业从进人系统的后备队列,直到最后执行完毕,可能要经历调度过程,可以把处理器调度的层次分为三级调度:高级调度、中级调度和低级调度。3.5.1处理器调度的层次

三级调度示意图:3.5.1处理器调度的层次1.高级调度一对一模型将每个用户线程映射到一个内核线程。高级调度又称宏观调度或者作业调度。它需要做出两个决定,一个是要从驻留在外存后备队列中调入多少个作业,二是要调入哪几个作业;为被选中的作业创建进程,并分配必要的系统资源,如内存、外设等;把新创建的进程放入就绪队列中,等待被调度执行。高级调度的时间尺度通常是分钟、小时或天。3.5.1处理器调度的层次2.中级调度中级调度主要涉及进程在内存和外存之间的交换。引入中级调度的主要目的是为了提高内存的利用率和系统吞吐量。当系统中的内存使用情况紧张时,中级调度把内存中暂时不能运行的进程调到外存中等待,等内存有足够的空闲空间时,再由中级调度决定将外存上的某些具备了运行条件的就绪进程调入内存,把其状态修改为就绪状态并挂在就绪队列中,等待进程调度。中级调度其实就是存储器管理中的对换功能。3.5.2选择调度算法的准则进程调度的算法较多,各具特点,适用于不同的操作系统。为了满足用户和系统的需要,选择进程调度算法时需要考虑以下几项准则:(1)处理器利用率要高(2)周转时间要短(3)响应时间要快(4)保证截止时间(5)系统吞吐量要高3.5.2选择调度算法的准则(1)处理器利用率要高

在实际系统中,处理器的利用率一般在40%(系统负荷较轻)到90%(系统负荷较重)之间。选择算法时,应考虑尽可能地提高处理器利用率。3.5.2选择调度算法的准则(2)周转时间要短周转时间包括作业在外存后备队列上等待调度的时间,进程在就绪队列上等待进程调度的时间,进程在CPU上执行的时间,以及进程等待I/O操作完成的时间四个部分。计算机系统的管理者总是希望能使平均周转时间最短,这样既可有效地提高系统资源的利用率,而且还可使大多数用户都感到满意。3.5.2选择调度算法的准则(2)周转时间要短(续)可把平均周转时间描述为:

作业周转时间T与系统为它提供服务的时间Ts之比,即W=T/Ts,称为带权周转时间,而平均带权周转时间则可表示为:3.5.2选择调度算法的准则(3)响应时间要快响应时间是指从用户提交一个请求开始,到系统首次产生响应为止的时间间隔。响应时间的长短通常用来评价分时系统的性能,是选择进程调度算法非常重要的准则之一。3.5.2选择调度算法的准则(4)保证截止时间截止时间是指作业必须开始执行的最迟时间,或必须完成的最迟时间。对于实时系统,其调度方式和算法必须能保证这一点,否则将可能造成难以预料的后果。3.5.2选择调度算法的准则(5)系统吞吐量要高吞吐量是指在单位时间内系统所完成的作业数,它与所处理的作业长度关系密切。对于大型作业,一般吞吐量约为每小时一道作业;对于中、小型作业,其吞吐量可达到几十道,甚至上百道之多。3.5.3作业调度作业调度是按照某种调度算法从后备作业队列中选择作业装入内存运行,并在作业运行结束后作善后处理。批处理作业从提交到最终执行完成需要经历以下四种状态:

(1)提交状态

(2)后备状态。

(3)运行状态。

(4)完成状态。3.5.3作业调度批处理作业状态变迁如图所示:3.5.4进程调度处理器是计算机中最重要的资源,处理器的利用率及系统性能在很大程度上取决于进程调度(也称处理器调度)性能的好坏。进程调度的时机与进程调度的方式有关。3.5.4进程调度当发现某些情况发生时,当前运行进程的CPU被收回,需要重新进行进程调度。引起进程调度的典型事件如下:

(1)正在执行的进程正确完成,或由于某种错误而终止运行(陷阱或中断)。

(2)执行中的进程提出I/O请求,等待I/O完成。

(3)在分时系统中,分给进程的时间片用完。

(4)按照优先级调度时,有更高优先级进程变为就绪状态(抢占方式)。

(5)在进程通信中,执行中的进程执行了某种原语操作,如wait操作、阻塞原语或唤醒原语时,都可能引起进程调度。3.5.4进程调度进程调度的方式可分为非抢占方式和抢占方式两种。(1)非抢占方式。在非抢占方式下,调度程序一旦把CPU分配给某一进程后便让它一直运行下去,直到进程完成或发生某事件而不能运行时,才将CPU分给其它进程。(2)抢占方式。当一个进程正在执行时,系统可以根据某种策略收回CPU,将其移入就绪队列,然后选择其它进程,将CPU分配给它,使之运行。3.5.4进程调度系统使用抢占方式进行进程调度时需要遵循一定的原则。主要有以下几个方面:

1)时间片原则。各进程按系统分配给的一个时间片运行,当该时间片用完,系统就停止该进程的执行而重新进行调度。2)优先级原则。每个进程均赋于一个调度优先级,通常一些重要和紧急的进程被赋于较高的优先级。系统重新调度时将处理器分配给该优先级高的进程,使之执行。3)短进程优先原则。当新到达的作业对应的进程比正在执行的作业对应进程的运行时间明显短时,系统剥夺当前进程的执行,而将处理器分配给新的短进程,使之优先执行。3.5.4进程调度非抢占调度与抢占式调度对比非抢占调度方式的优点是简单、系统开销小,通常用在批处理系统中。抢占式调度方式的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论