第02章操作系统第一节简介一、定义与作用操作系统未有一个被普通接受的定义,普遍认为:操作系统是管理软硬件资源、控制程序执行、改善人机界面,合理组织计算机工作流程和为用户使用计算机提供良好运行环境的一种系统软件。操作系统有两个重要的作用:1.通过资源管理,提高计算机系统的效率在计算机系统中,能分配给用户使用的各种硬件和软件设施总称为资源。资源包括两大类:硬件资源和信息资源。硬件资源分为处理器、存储器、I/O设备等;信息资源分为程序和数据等。操作系统的重要任务之一是有序地管理计算机中的硬件、软件资源,跟踪资源使用状况,满足用户对资源的需求,协调各程序对资源的使用冲突,为用户提供简单、有效的资源使用方法,最大限度地实现各类资源的共享,提高资源利用率,从而使得计算机系统的效率有很大提高。2.改善人机界面,向用户提供友好的工作环境经过操作系统改造和扩充过的计算机不但功能更强,使用也更方便,用户可以直接调用操作系统提供的许多功能,而无须了解许多软硬件使用细节。二、功能及特征一操作系统的主要特性有三条:1.并发性(Concurrence)——指两个或两个以上的运行程序在同一时间间隔段内同时执行。并发性能够消除计算机系统中部件和部件之间的相互等待,有效改善系统资源的利用率,改进系统的吞吐率,提高系统效率。2.共享性(sharing)指操作系统中的资源可被多个并发执行的进程所使用。共享性和并发性是操作系统两个最基本的特征,一方面,资源的共享是因为运行程序的并发执行而引起的,若系统不允许运行程序并发执行,自然也就不存在资源共享问题;另一方面,如果系统不能对资源共享实施有效的管理,必然会影响到运行程序的并发执行,甚至运行程序无法并发执行,操作系统也就失去了并发性,导致整个系统效率低下。3.异步性(Asynchronism)或称随机性。进程是以异步方式运行的,但只要运行环境相同,操作系统必须保证多次运行作业都会获得完全相同的结果。二功能资源管理是操作系统的一项主要任务,而控制程序执行、扩充其功能、屏蔽使用细节、方便用户使用、组织合理工作流程、改善人机界面等都可以从资源管理的角度去理解。1.处理器管理。处理器管理的第一项工作是处理中断事件。硬件只能发现中断事件,捕捉它并产生中断信号,但不能进行处理。配置了操作系统就能对中断事件进行处理。处理器管理的第二项工作是处理器调度。在单用户单任务的情况下,处理器仅为一个用户的一个任务所独占,处理器管理的工作十分简单。但在多道程序或多用户的情况下,组织多个作业或任务执行时,就要解决处理器的调度、分配和回收等问题。多处理器管理就更加复杂。为了实现处理器管理的功能,操作系统引入了进程(process)的概念,处理器的分配和执行都是以进程为基本单位;随着并行处理技术的发展,为了进一步提高系统并行性,使并发执行单位的粒度变细,又引入了线程(thread)的概念。2.存储管理。主要任务是管理存储器资源,为多道程序运行提供有力的支撑。存储管理的主要功能包括:存储分配(存储管理将根据用户程序的需要给它分配存储器资源);存储共享(存储管理能让主存中的多个用户程序实现存储资源的共享,以提高存储器的利用率);存储保护(存储管理要把各个用户程序相互隔离起来互不干扰,更不允许用户程序访问操作系统的程序和数据,从而保护用户程序存放在存储器中的信息不被破坏);存储扩充(由于物理内存容量有限,难于满足用户程序的需求,存储管理还应该能从逻辑上扩充内存储器,为用户提供一个比内存实际容量大得多的编程空间方便用户的编程和使用)。3.设备管理——主要任务是管理各类外围设备,完成用户提出的I/O请求,加快I/O信息的传送速度,发挥I/O设备的并行性,提高I/O设备的利用率;提供每种设备的驱动程序和中断处理程序,向用户屏蔽硬件使用细节。为实现这些任务,设备管理应具有以下功能:提供外围设备的控制与处理;提供缓冲区的管理;提供外围设备的分配;提供共享型外围设备的驱动;实现虚拟设备。4.文件管理——是对系统的信息资源的管理。它的主要任务是对用户文件和系统文件进行有效管理,实现按名存取;实现文件的共享、保护和保密,保证文件的安全性;并提供给用户一套能方便使用文件的操作和命令。5.作业管理。功能包括任务、界面管理、人机交互、图形界面、语音控制和虚拟现实等。目的是为用户提供一个使用系统的良好环境,使用户能有效地组织自己的工作流程,并使整个系统能高效地运行。6.网络与通信管理。网络操作系统至少应具有以下管理功能:网上资源管理功能:实现网上资源共享,管理用户应用程序对资源的访问,保证信息资源的安全性和一致性;数据通信管理功能:按照通信协议的规定,通过通信软件,完成网上计算机之间的信息传送;网络管理:(包括故障管理、安全管理、性能管理、记账管理和配置管理)三、类型1.批处理(batch)操作系统批处理操作系统根据一定的高度策略把要求计算的应用问题按一定的组合和次序执行,从而提高了系统资源利用率,加大了作业的吞吐量。批处理系统的主要特征是:(1)用户脱机工作——用户提交作业之后直到获得结果之前不再和计算机及作业交互,因而作业控制语言对脱机工作的作业来说必不可少。这种工作方式对调试和修改程序是极不方便的。(2)成批处理作业——操作员集中一批用户提交的作业(程序、数据和说明书),输入计算机后成为后备作业。后备作业由批处理操作系统一批批地选择并调入主存执行。(3)多道程序运行——按照预先规定的调度算法,从后备作业中选取多个作业进入主存,并启动它们运行,实现了多道批处理。(4)作业周转时间长2.分时(TimeSharing)操作系统允许多个联机用户同时使用一台计算机系统进行计算的OS每个用户在各自的终端上以问答方式控制程序运行,系统把中央处理器的时间划分成时间片,轮流分配给各个联机终端用户,每个用户只能在极短时间内执行。若时间片用完,而程序还未做完,则挂起等待下次分得时间片。实质上,分时系统是多道程序的一个变种,不同之处在于每个用户都有一台联机终端。几乎所有的现代通用操作系统都具有分时系统的特征:(1)同时性:多个终端用户同时联机分享使用同一台计算机。每个终端用户感觉上好像自己独占了主机。(2)独立性:终端用户彼此独立,互不干扰。(3)及时性:终端用户的请求能够在极短的时间内得到响应。(4)交互性:用户直接控制其程序的运行,便于调试和纠错。3.实时(RealTime)操作系统——当外界事件或数据产生时,能够接收并以足够快的速度予以处理,处理结果又能在规定的时间内控制监控的生产过程或对处理系统做出快速响应,并控制所有实行任务协调一致运行的OS。由实时操作系统控制的过程控制系统,较为复杂,通常由四部分组成:(1)数据采集(2)加工处理(3)操作控制(4)反馈处理第二节处理机管理一、进程的基本概念进程是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律而引进的概念。所有多道程序设计操作系统都建立在进程的基础上。OS专门引入进程的概念,从理论角度看,是对正在运行的程序过程的抽象;从实现角度看,则是一种数据结构,目的在于清晰动态系统的内在规律,有效管理和调度进入系统主存储器运行的程序。进程的定义也是多种多样的,较为一致的看法是:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。从操作系统管理的角度出发,进程由数据结构以及在其上执行的程序/语句序列组成,是程序在这个数据集合上的运行过程,也是操作系统进行资源分配和保护的基本单位。它具有如下属性:1.结构性——进程包含了数据集合和运行于其上的程序。2.共享性——同一程序同时运行于不同数据集合上时,构成不同的进程,也就是说,多个不同的进程可以共享相同的程序。3.动态性——进程是程序在数据集合上的一次执行过程,是动态概念,它有生命周期,由创建而产生,由撤销而消亡。而程序是一组有序指令序列,是静态概念,作为一种系统资源,程序是永久存在的。4.独立性——每个进程都可以独立的速度在CPU上进行,凡是未建立进程的程序,都不能作为独立单位参与运行。进程也是系统调度的独立单位(单线程进程)。5.制约性——并发进程之间存在制约关系,进程在进行的关键点上需要相互等待或互通消息,以保证程序执行的可再现性和计算结果的唯一性。6.并发性。二、进程的状态和转换1.三态模型一个进程从创建而产生至撤销而消亡的整个生命周期,可以用一组状态加以刻画。为了便于管理进程,一般来说,按进程在执行过程中的不同状况至少定义三种不同的进程状态:(1)运行(running)态——占有处理器,正在运行。对于单处理机系统,处于运行状态的进程只有一个。(2)就绪(ready)态——具备运行条件,等待系统分配处理器以便运行。就绪态表示一个进程获得了除处理机以外的一切所需资源。(3)等待(wait)态——又称阻塞(blocked)态或睡眠(sleep)态,指不具备运行条件,正在等待某个事件的完成。这时即使把处理机分配给进程也无法运行。一个进程在创建后将处于就绪状态。每个进程在执行过程中,任一时刻当且仅当处于上述三种状态之一;同时,在一个进程执行过程中,它的状态将会发生改变。运行状态的进程将由于出现等待事件而进入等待状态,当等待事件结束之后,等待状态的进程将进入就绪状态,而处理器的调度策略又会引起运行状态和就绪状态之间的切换。引起进程状态转换的具体原因如下:运行态就绪态等待态CPU空闲时选中一个就绪进程运行时间片到,出现更高优先权进程等待使用资源如设备传输,等待人工干预资源得到满足,如外设传输结束,人工干预完成2.五态模型在一个实际的系统里进程的状态及其转换会复杂一些,例如引入专门的新建态(new)和终止(exit)态。创建一个进程要通过两个步骤,首先是为一个新进程创建必要的管理信息;然后让该进程进入就绪态。此时进程将处于新建态,它并没有被提交执行,而是在等待操作系统完成创建进程的必要操作。必须指出的是,操作系统有时将根据系统性能或主存容量的限制推迟新建态进程的提交。进程的终止也要通过两步,首先是等待操作系统进行善后;然后退出主存。当一个进程到了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其它有终止权的进程所终结,它将进入终止态。进入终止态的进程以后不再执行,但依然保留在操作系统中等待善后。一旦其它进程完成了对终止态进程的信息抽取之后,操作系统将删除该进程。运行态就绪态等待态CPU空闲时选中一个就绪进程运行时间片到,出现更高优先权进程等待使用资源如设备传输,等待人工干预资源得到满足,如外设传输结束,人工干预完成新建态终止态三、进程的描述1.进程的组成当一个程序进入计算机的主存储器进行计算就构成了进程,主存储器中的进程是如何组成的呢?操作系统中把进程物理实体和支持进程运行的环境合称为进程上下文(context)。当系统调度新进程占有处理器时,新老进程随之发生上下文切换。因此,进程的运行被认为是在上下文中执行。简单地说,一个进程映像(ProcessImage)包括:(1)进程程序块,即被执行的程序,规定了进程一次运行应完成的功能。通常它是纯代码,作为一种系统资源可被多个进程共享。(2)进程数据块,即程序运行加工处理对象,包括全局变量、局部变量和常量等的存放区以及开辟的工作区,常常为一个进程专用。(3)系统/用户堆栈,每一个进程都将捆绑一个系统/用户堆栈,用来解决过程调用或系统调用时的地址存储和参数传递。(4)进程控制块,每一个进程都将捆绑一个进程控制块,用来存储进程的标志信息、现场信息和控制信息。进程创建时,建立一个PCB;进程撤销时,回收PCB,它与进程一一对应。用户进程在虚拟内存中的组织如下图所示:进程控制块进程标识信息进程现场信息进程控制信息用户堆栈用户私有地址空间(代码、数据)共享地址空间2.进程控制块进程控制块是操作系统中最为重要的数据结构,每个进程控制块包含了操作系统管理所需的所有进程信息,进程控制块的集合事实上定义了一个操作系统的当前状态。当系统创建一个进程时,就为它建立一个PCB,当进程执行结束便回收它占用