1、操作系统(第五版)计算机系统;计算机系统;第1章 操作系统概述操作系统的定义与功能;操作系统的定义与功能;1.11.21.3本章讲述内容:本章讲述内容:操作系统的种类操作系统的种类。存储程序和数据,它由一组顺序编号的存储单元组成,编号为存储单元的地址。每个单元可以存放一个二进制数,被解释成是一个指令或数据。控制计算机的操作,执行数据处理的功能。在计算机系统只有一个处理器时,通常就是指中央处理器(CPU),也称中央处理机。1.1.1 硬件与软件1.1 计算机系统.1.硬件 一台计算机由处理器(CPU)、内存储器和输入/输出三大部件组成,它们之间按一定的方式通过系统总线进行互联,从而实现执行程序、
2、完成用户需求的各项任务。处理器 内存储器输入/输出模块 CPU磁盘控制器打印机控制器磁带驱动器控制器主存系统总线磁盘打印机磁带驱动器 实行计算机与外部设备之间的数据传输。外部设备有打印机、显示器、终端、辅助存储器(硬盘)、通信设备等。2.软件.计算机软件是指程序和与程序相关的文档的集合,分系统软件和应用软件两种。系统软件 指由计算机生产厂家提供、具有通用功能的软件,比如:操作系统、语言处理程序(如C语言编译程序)、数据库管理系统以及各种完成服务功能的程序。.指为解决实际问题而研制的软件,涉及计算机应用的各个领域,比如:各种管理软件、用于工程计算的软件包,辅助设计软件以及过程控制软件等。应用软件
3、 1.1.2 操作系统的形成未配置任何软件的计算机称为“裸机”。若用户直接面对裸机,他们的精力就不能集中在如何用计算机解决自己的问题上,计算机的效率也不能充分发挥出来。1.裸机的概念2.操作系统的发展历史19461958年:第一台电子管计算机刚出现几年,计算机上没有名为“操作系统”的软件。那时计算机运行速度慢,外部设备少,程序的装入、调试以及控制程序的运行等工作,全由上机人员通过控制台上的开关和按钮来实现。这一时代的特点是人工完成上、下机操作,一台计算机被一个用户所独占。.提高计算机资源利用率的需要19581964年,计算机进入晶体管时代。随着计算机速度、存储容量、外部设备的功能和种类的发展,
4、产生了“人-机矛盾”,向人们提出了“让计算机自动控制用户作业的运行,废除上、下机手工交接”的要求。从而产生了批处理系统,其管理程序就是现今操作系统的雏形。1964年后,计算机进入集成电路和大规模集成电路时代,这时,不仅硬件有了长足发展,也要求进一步发展和扩大管理程序的功能,希望它能够最大限度地挖掘计算机系统本身的潜在能力。提出多道程序设计技术,操作系统开始出现,并逐渐成为计算机系统中必不可少的一种系统软件。.1.1.3 操作系统发展的动力1.2.方便用户使用计算机的需要3.硬件技术不断发展的需要 4.计算机体系结构发展的需要 CPU、存储器、外部设备及各种软件都是计算机系统的“资源”,要想把计
5、算机技术应用到各领域,必须提高系统中各种资源的利用率,以降低整个系统成本。各种新的元、器件以及设备的出现,使计算机的性能不断提高,也就促使操作系统性能和功能的不断改进。1.2 操作系统的定义与功能 1.2.1 操作系统的定义.操作系统是在裸机上加载的第一层软件,是对计算机硬件系统功能的首次扩充。从用户的角度看,计算机系统配置了操作系统后,由于操作系统隐蔽了硬件的复杂细节,用户会感到机器使用起来更简单、更容易了。.配置了操作系统后,隐蔽了硬件的复杂细节,用户会感到计算机使用起来更简单、更方便了。就说操作系统为用户提供了一台功能经过扩展了的机器,称这台机器为“虚拟机”,因为现实生活中并不存在有这种
6、功能的真实机器,它只是用户的一种感觉而已。.把操作系统定义为:“操作系统是控制和管理计算机硬件和软件资源、合理地组织计算机工作流程、以及方便用户使用计算机的一个大型程序”。裸机操作系统我的机器有复制功能虚拟机裸机复制一个文件真难!记住系统中当前每个作业程序的状态,在需要对CPU重新进行分配的时候,就在侯选的程序中选取。1.2.2 操作系统的功能1.处理机管理的功能处理机管理的功能.指定处理机调度策略,它是在侯选程序中进行挑选时应遵循的原则。.实施CPU分配(即处理机调度),以便让获得CPU的作业程序真正投入运行。中央处理机(CPU)是计算机系统中一个举足轻重的资源。用户程序进入内存后,只有获得
7、CPU,才能运行。为提高CPU的利用率,系统必须采用多道程序设计技术,使内存中同时有几个用户作业程序存在,当一个程序因等待某事件 的完成而暂时放弃使用CPU时,操作系统就把CPU分配给其他可运行的作业程序使用,从而提高它的利用率。2.记住提交给系统诸作业(一般存放在磁盘)的状态,及对系统资源的需求信息。.制定作业调度策略,需要时从磁盘的侯选作业中选择作业进入内存,参与对CPU的竞争。为用户提供一个使用系统的良好环境,以便有效地组织自己的工作流程。作业管理的功能作业管理的功能 在有的操作系统中,实行处理机的两级调度:第一级是作业调度,涉及作业管理;第二级才是处理机调度,属于处理机管理。存储器管理
8、的功能存储器管理的功能3.记住内存各部分的使用情况,即哪些已经分配,哪些为空闲待分配。.制定内存的分配策略,实施内存的具体分配和回收。.保证内存中各独立作业程序的安全,互不侵扰。.解决“作业程序比内存大时,也能得到正确的运行”的存储扩充问题。设备管理的功能设备管理的功能4.记住各类设备的使用状态,按各自不同的性能特点进行分配和回收。.为各类设备提供相应的设备驱动程序、启动程序、初始化程序以及控制程序等,保证输入输出操作的顺利完成。存储器是计算机的记忆装置。可分为内存储器和外存储器两种。操作系统中的存储管理是针对内存而言的。也就是说,存储管理的对象是内存。计算机系统中,除处理机和内存外,都是设备
9、管理的对象,主要是一些输入/输出设备和外存。设备管理是操作系统中最为复杂、庞大的部分。.利用中断、通道等技术,尽可能地使CPU与外部设备、外部设备与外部设备之间并行工作,以提高整个系统的工作效率。.根据不同的设备特点,采用优化策略,使对具体设备的使用更趋合理和有效。由于文件存放在外存,因此要随时记住外存上文件存储空间的使用情况,哪些已经分配,哪些为空闲待分配。维持一个目录表,里面登记有每一个文件的名称和有关信息(这就是该文件的目录项)。当用户通过文件名来访问某文件时,可以通过查目录表找到它的目录项,从而完成所需的读/写操作。文件管理的功能文件管理的功能5.制定文件存储空间的分配策略,实施具体的
10、分配和回收。.确保存放在外存上文件的安全、保密和共享。.提供一系列文件使用命令,以便用户能对文件进行存取、检索、更新等操作。程序与数据以文件的形式存放在外存(如硬盘、软盘)上,是计算机系统的软件资源。用户是通过文件的名称来访问所需要的文件的,这就是所谓的“按名存取”方式。1.3 操作系统的种类 1.3.1 批处理操作系统 要求系统配置管理程序,以保证一个个作业程序能自动地进入内存处理,此时人工不得干预。这就是“单道批处理操作系统”。“单道”的意思是指一次只让一个作业程序进入系统内存加以运行,也可以说它是一个单用户操作系统。.1.单道批处理操作系统的工作过程单道批处理操作系统的工作过程.用户为作
11、业编写程序和准备数据,同时编写控制作业运行的作业说明书。然后将它们一并交给操作员。.操作员将收到的一批作业信息存入辅助存储器中等待处理。.单道批处理操作系统从辅存中依次选择作业,按作业说明书的规定自动控制作业的运行,并将运行结果存入辅助存储器。.操作员将该批作业的运行结果打印输出,并分发给用户。2.单道批处理操作系统的特点单道批处理操作系统的特点.单路性:每次只允许一个用户程序进入内存。.独占性:整个系统资源被进入内存的一个程序独占使用,因此资源利用率不高。.自动性:作业顺序地自动接受处理,期间任何用户不得对系统的工作进行干预。.封闭性:在一批作业处理过程中,用户不得干预系统的工作。即便是某个
12、程序执行中出现很小的错误,也只能等到这一批作业全部处理完毕后,才能进行修改。这给用户带来不便。用户为自己的作业编写程序和准备数据,同时编写控制作业运行的作业说明书。然后将它们一并交给操作员。3.多道批处理操作系统的工作过程多道批处理操作系统的工作过程.在单道批处理的基础上,引入多道程序设计技术,允许若干个作业程序同时装入内存,造成对系统资源共享与竞争的态势,就产生了多道批处理操作系统。用户为自己的作业编写程序和准备数据,同时编写控制作业运行的作业说明书。然后将它们一并交给操作员。.操作员将收到的一批作业信息存入辅助存储器中等待处理。.作业调度程序从辅助存储器里的该批作业中选出若干合适的作业装入
13、内存,使它们不断地轮流占用CPU执行,并同时使用各自所需的外部设备。.操作员将该批作业的运行结果打印输出,分发给用户。4.多道批处理操作系统的特点多道批处理操作系统的特点.多路性:每次允许多个用户程序进入内存,它们轮流交替地使用CPU,提高了内存储器和CPU的利用率。.共享性:整个系统资源被进入内存的多个程序共享使用,因此整个系统资源的利用率较高。.自动性:作业处理期间任何用户不得对系统的工作进行干预。.封闭性:在一批作业处理过程中,用户不得干预系统的工作。即便是某个程序执行中出现很小的错误,也只能等这一批作业全部处理完毕后,才能进行修改。这给用户带来不便。工程设计科学计算市场调查文本编辑图书
14、管理 1.3.2 分时操作系统1.分时操作系统的含义分时操作系统的含义.将多道程序设计技术与分时技术结合在一起,就产生了分时操作系统。配有分时操作系统的计算机系统称为分时系统。.所谓“分时系统”,即一台计算机与多个终端连接,用户通过终端向系统发命令,请求完成某项工作。系统完成任务后,把执行结果返回用户。用户重复这种交互会话过程,直至实现预定目标。2.分时操作系统的特点分时操作系统的特点.多路性:从宏观上看,多个用户在同时工作,共享系统的资源;从微观上看,各终端程序是轮流地运行一个时间片。多路性提高了系统资源的整体利用率。.交互性:用户在终端上能随时通过键盘与计算机进行“会话”,从而获得系统的各
15、种服务,并控制作业程序的运行。独立性:每个用户在自己的终端上彼此独立操作,互不干扰,感觉不到其他用户的存在,就如同自己“独占”该系统在使用似的。.及时性:用户程序轮流执行一个CPU的时间片,由计算机的高速处理能力,能保证在较短和可容忍的时间内给予用户请求进行响应和完成处理。高及时性:对外部事件信号的接收、分析处理、以及给出反馈信号进行控制,都必须在严格的时间限度内完成。否则可能会引起爆炸、火灾等事故,给人身安全和国家财产造成无法挽回的损失。1.3.3 实时操作系统“实时操作系统”是能对来自外部的请求和信号在限定的时间范围内做出及时响应的一种操作系统。传感装置ABC反应堆阀门阀门计算机系统记录仪
16、图 例:控制信号测量信号1.实时操作系统的含义实时操作系统的含义.所谓“实时”,是指能及时响应随机发生的外部事件、并对事件做出快速处理的能力。而“外部事件”,是指与计算机相连接的设备向计算机发出的各种服务请求。.2.实时操作系统的特点实时操作系统的特点.高可靠性:无论是实时控制系统还是实时信息处理系统,都必须有高可靠性。.用于控制飞机飞行、导弹发射以及冶炼轧钢等生产过程,被称为“实时控制系统”;用于飞机订票、银行业务部门,被称为“实时信息处理系统”。网络通信:为通信双方建立和拆除通信通路,实施数据传输,对传输过程中的数据进行检查和校正。主机因特网各种网络主机因特网 1.3.4 网络操作系统1.
17、网络操作系统的含义网络操作系统的含义.所谓“计算机网络”,是指把地理上分散的、具有独立功能的多个计算机和终端设备,经通信线路加以连接,达到数据通信和资源共享目的的计算机系统。.在网络范围内,用于管理网络通信和共享资源,协调各计算机上任务的运行,并向用户提供统一的、有效方便的网络接口的程序集合,称为“网络操作系统”。2.网络操作系统的基本功能网络操作系统的基本功能.资源管理:采用统一、有效的策略,协调诸用户对共享资源的使用,用户使用远地资源如同使用本地资源似的。.提供网络接口:向网络用户提供统一的网络使用接口,以便用户能方便地上网,方便地使用共享资源,方便地获得网络提供的各种服务。自治性:在网络
18、中的每台计算机都有自己的内存储器、I/O设备,安装有自己的操作系统,因此具有很强的自治性,能独立承担分配给它的任务。3.计算机网络系统的特点计算机网络系统的特点.分散性:系统中的计算机分布在不同的地域,有各自的任务。互联性:网络中分散的计算机及各种资源,通过通信线路实现物理上的连接,进行信息传输和资源共享。.统一性:网络中的诸计算机,使用统一的网络命令。提供网络服务:向用户提供多项网络服务,如电子邮件服务,它为各用户间发送与接收信息,提供快捷、简便、廉价的现代化通信手段;如远程登录服务,它使一台计算机能登录到另一台计算机上,使自己的计算机就像一台与远程计算机直接相连的终端一样进行工作,获取与共
19、享所需要的各种信息;再如文件传输服务,他允许用户把自己的计算机连接到远程计算机上,查看那里有哪些文件,然后将所需文件从远程计算机复制到本地计算机,或将本地计算机中的文件复制到远程计算机中。.1.3.5 分布式操作系统 如果一个计算机网络系统,其处理和控制功能被分散在系统的各个计算机上,系统中的所有任务可动态地分配到各个计算机中,使它们并行执行,实现分布处理。这样的系统被称为“分布式系统”,其上配置的操作系统,被称为“分布式操作系统”。.1.分布式操作系统的含义分布式操作系统的含义.在分布式操作系统管理下,用户只需提出需要什么,不必具体指出需要的资源在哪里。这是高水平的资源共享。.在分布式系统里
20、,操作系统是以全局方式来管理系统的。用户把自己的作业交付给系统后,分布式操作系统会根据需要,在系统里选择最适合的若干计算机去并行地完成该任务;在完成任务过程中,分布式操作系统会随意调度使用网络中的各种资源;在完成任务后,分布式操作系统会自动把结果传送给用户。2.分布式操作系统的特点分布式操作系统的特点.健壮性:任何站点发生的故障都不会给整个系统造成太大的影响。当系统中的设备出现故障时,可通过容错技术实现系统的重构,以保证系统的正常运行。并行性:一方面,系统内有多个实施处理的部件(比如计算机),可以进行真正的并行操作;另一方面,分布式操作系统的功能也被分解成多个任务,分配到系统的多个处理部件中同
21、时执行。这样,提高了系统的吞吐量,缩短了响应时间。.扩展性:分布式系统可方便地增加新的部件或新的功能模块。比如,公司业务增加到一定程度时,原先的计算机系统可能不再胜任。采用分布式系统,只需为系统增加一些处理机就可以解决问题。.可靠性:分布式系统把工作分散到众多机器上,单个部件的故障,最多只会影响到一台机器,其他机器不会受到干扰。.共享性:分布式系统在全系统范围内实现资源的动态分配,平衡负载,用户只需提出需要什么,无需知道他所使用的资源在何处。.所谓“嵌入式系统”,是指“用于控制、监视或者辅助操作机器和设备的装置”。它更一般性的定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠
22、性、成本、体积、功耗严格要求的专用计算机系统。1.3.6 嵌入式操作系统.1.嵌入式嵌入式 系统和嵌入式操作系统系统和嵌入式操作系统.用于嵌入式系统的操作系统,为嵌入式操作系统。因此,嵌入式操作系统大多用于机电设备、仪器仪表等方面。2.嵌入式操作系统的重要特征嵌入式操作系统的重要特征.系统内核微型化:嵌入式操作系统的运行平台嵌入在设备中的特殊计算机,资源相对有限。因此,嵌入式操作系统必须做得非常小,嵌入式系统中的软件,都被固化在存储器芯片或单片机中。.专用性强:嵌入式系统的硬件平台多种多样,个性化强,软件系统和硬件的结合非常紧密。一般地,软件要针对硬件进行系统的移植。.高实时性:嵌入式系统广泛
23、应用于过程控制、数据采集、通信、多媒体信息处理等要求获得快速响应的设备中。因此,嵌入式操作系统都应该是实时操作系统,这是对嵌入式软件的基本要求。可剪裁性:基于应用的多样化,嵌入式操作系统应该具有很强的适应能力,应该能够根据应用系统的特点和要求,灵活配置,方便剪裁,伸缩自如。.3.嵌入式系统与微机的比较嵌入式系统与微机的比较.嵌入式系统多是专用系统,微机则是通用系统。.嵌入式系统的可用资源,要比微机少的多。嵌入式系统软件故障带来的后果,要比微机大得多。嵌入式操作系统都是实时的,微机配备的操作系统一般都是通用的。.嵌入式系统大都会提出有关成本和功耗等的要求。嵌入式系统需要专用的开发工具。可靠性:嵌
24、入式系统一旦开始运行,用户就很少能够进行干预。因此,负责系统管理的嵌入式操作系统必须稳定、可靠,不能有任何差错。.第2章 处理机管理2.12.22.3本章讲述内容:本章讲述内容:2.4进程;进程控制块;进程的调度与管理;线程;2.5 作业调度。2.1进程 2.1.1 多道程序设计程序A程序B程序C0469141820232630423542334程序A程序B程序C0469131822121517(a)单道程序设计环境(b)多道程序设计环境时间时间打印机输出CPU执行图例:.单道程序设计环境特点单道程序设计环境特点1.资源的独占性.执行的顺序性结果的再现性多道程序设计环境特点多道程序设计环境特点
25、2.执行的并发性.相互的制约性状态的多变性 机车头从车尾把到达场里的货车推向驼峰,在那里按照不同去向(即进路)把车厢间的挂钩摘开,一组车厢(称一勾车)借助驼峰的高度,将根据自己的去向溜到编组场的不同轨道,组成一列新的货车。2.1.2 进程的定义1.从从3 3个方面来描述进程个方面来描述进程.进程是程序的一次运行活动;进程的运行活动是建立在某个数据集合之上;进程要在获得资源的基础上从事自己的运行活动。2.进程定义进程定义所谓“进程”,是指一个程序在给定数据集合上的一次执行过程,是系统进行资源分配和运行调度的独立单位。驼峰到达场编组场溜放中的一勾车雷达测速、测长道岔(轨道电路)一列新货车一列解体货
26、车缓行器12345678股道号溜放中的一勾车驼峰溜放控制过程中的进程。例:例:.扳道岔程序.缓行器控制程序 雷达测速程序 雷达测长程序 巡回检测程序 用户进程:可以并发执行的用户程序段,它们是操作系统的服务对象,是系统资源的实际享用者。系统进程:操作系统中用于管理系统资源的那些并发程序,它们向用户提供系统服务,分配系统的资源。系统进程间的相互关系由操作系统负责协调,以便有利于增加系统的并发性,提高资源的整体利用率;用户进程间的相互关系要由用户自己(在程序中)安排,操作系统会向用户提供一定的协调手段(以命令的形式)。3.进程的分类进程的分类4.系统进程与用户进程的区别系统进程与用户进程的区别.系
27、统进程直接管理有关的软、硬件资源的活动;用户进程不得插手资源管理。在需要使用某种资源时,必须向系统提出申请,由系统统一调度与分配。系统进程与用户进程都需要使用系统中的各种资源,在双方出现竞争时,系统进程有优先获得资源、优先得以运行的权利。.进程是程序的一次执行过程,程序是进程赖以存在的基础。这就是说,进程与程序之间有一种必然的联系。但进程又不等同于程序,它们是两个完全不同的概念。2.1.3 进程的特征1.进程与程序的关系进程与程序的关系进程间会相互制约。由于进程是系统中资源分配和运行调度的单位,因此在对资源共享和竞争中,必然会相互制约,影响了各自向前推进的速度。进程之间具有并发性。在一个系统中
28、,同时会存在多个进程,与它们对应的多个程序同时在系统中运行,轮流占用CPU和各种资源。这正是多道程序设计的初衷,说明这些进程在系统中并发执行着。每个进程都有自己的生命期。当要完成某一项工作时,就“创建”一个进程。一个进程创建后,系统就感知到它的存在;完成预定的任务后,系统就“撤销”这个进程,收回它所占用的资源。撤消后,系统就无法再感知到它。于是,从创建到撤消,这个时间段就是一个进程的“生命期”。不同进程可以执行同一个程序。从进程定义知,区分进程的条件一是所执行的程序,二是数据集合。因此,即使多个进程执行同一个程序,只要它们运行在不同的数据集合上,那么它们就是不同的进程。“进程”是一个动态的概念
29、。进程强调的是程序的一次“执行”过程,因此它是一个动态的概念;程序是一组有序指令的集合,在多道程序设计环境下,它不涉及“执行”,因此是一个静态的概念。2.进程与程序的区别进程与程序的区别.2.1.4 进程的基本状态1.进程的基本状态进程的基本状态 就绪提交运行阻塞终止调度撤销超时事件发生等待事件三种最基本的状态创建 进程间由于共同协作和共享资源,导致在生命期中进程的状态不断发生变化。.终止状态:一个进程或正常结束,或因某种原因被强制结束。这时,系统正在为其进行善后处理。创建状态:进程正在初创期,操作系统还没有把它列入到可执行的进程行列中。.就绪状态:一个进程已经具备了运行的条件,只要有机会获得
30、CPU,它就可以投入运行。.运行状态:一个进程获得了CPU正在执行中。若系统中只有一个CPU,那么任何时候系统中最多只有一个进程处于运行状态。.阻塞状态:进程正在等待某事件(比如I/O的完成)的发生。在事件到来前,即使把CPU分配给这个进程,它也无法运行。阻塞状态有时也被称为“等待状态”。.2.进程状态的变迁进程状态的变迁一个进程的状态,可随自身的推进和外界环境的变化而变化,从一种状态“变迁”到另一种状态。进程状态变迁图中,箭头表示状态变迁的方向,文字是引起这种状态变迁的原因。.就绪运行:需要一个新进程运行时,操作系统就在处于就绪状态的进程里挑选目标,选中者的状态就从就绪变为运行。所以,“调度
31、”是从就绪变到运行的原因。一个处于运行状态的进程,比如会由于提出输入/输出请求而使自己的状态变成为阻塞。这属于进程自身推进过程中引起的状态变化。并不是所有的进程状态之间都可以发生变迁的。可能的变迁如下所列。在输入/输出操作完成后,会使某个进程的状态由阻塞变为就绪。这属于由于外界环境的变化而引起的状态变化。.(1)创建就绪:一个进程创建完毕,就可被列入到可执行的进程行列中。于是,系统通过提交,把它的状态从创建变为就绪。(2)运行就绪:引起进程状态从运行变到就绪,最常见的原因是“超时”。(3)运行阻塞:如果一个运行进程必须等待某个事件的发生而暂时无法再运行,那么它的状态就由运行变为阻塞。这种需要进
32、程等待的事件是很多的。比如,进程发一个系统调用命令,操作系统却无法立即提供服务;比如进程发出一个资源请求,但却一时无法得到满足;又比如进程要等待I/O的完成、等待另一个进程提供的输入数据、等待来自另一个进程的消息等,都会使进程的状态从运行变为阻塞。(4)阻塞就绪:当进程等待的事件发生时,处于阻塞状态的进程就变成了就绪。(5)运行终止:正在运行的进程完成了自己的工作,或由于其他原因必须异常结束,那么该进程就会被撤消,由运行状态变为终止状态。(6).在这五种状态里,最基本、最实质性的是三种状态:就绪、运行、阻塞。就绪/挂起状态:进程在辅存。只要被激活,进程就可以调入内存,如果获得CPU就可以投入运
33、行。2.对进程状态更细致的划分对进程状态更细致的划分 就绪/挂起就绪激活运行阻塞终止调度撤销超时事件发生等待事件挂起阻塞/挂起激活挂起事件发生创建提交提交挂起 可在进程五种状态基础上,增加两种状态:“就绪/挂起”状态和“阻塞/挂起”状态。处于这两种状态的进程,都表示它们是在辅存而不是内存。只有通过“激活”,才可使这些进程的状态变迁为“就绪”或“阻塞”,从而进入内存。.阻塞/挂起状态:进程在辅存等待事件的发生。只要被激活,进程就可以调入到内存里去等待事件的发生。.对几个变迁的解释 就绪/挂起状态:进程在辅存。只要被激活,进程就可调入内存,如果获得CPU就可以投入运行。(1)阻塞阻塞/挂起:若当前
34、没就绪进程可运行,且内存又缺少空闲区域装入新进程,那就可从内存换出一个阻塞进程到辅存,使其状态成为阻塞/挂起,腾出内存区域。(2)阻塞/挂起就绪/挂起:如果一个处于阻塞/挂起状态的进程所等待的事件发生了,那么它的状态将变迁成为就绪/挂起状态,进程仍在辅存。(3)现场信息:进程暂时让出处理机时,须把当前各种现场信息保存在PCB的固定单元里。这样,当进程再次获得处理机时,就可以把这些信息置入处理机的相应寄存器中,恢复到被中断时的原有状态,保证进程正常执行。标识信息:代表了一个进程的身份,是系统内部区分不同进程的依据。进程控制块2.2 进程控制块 2.2.1 进程的三个组成部分.程序数据集合PCB程
35、序数据集合 2.2.2 进程控制块的内容.进程名进程状态程序存放位置数据存放位置通用寄存器内容控制寄存器内容断点地址进程优先数队列指针标识信息说明信息现场信息管理信息说明信息:随时反映进程的情况。管理信息:系统通过这些信息管理、调度进程,使它们有条不紊地工作。为管理和控制进程,系统创建每个进程时,都为其开辟一个专用的存储区,随时记录它的动态特性。当一个进程被撤消时,系统就收回分配给它的存储区。通常,把这一存储区称为该进程的“进程控制块PCB”。1.进程控制块的内容进程控制块的内容 比如,CPU先执行左边的进程P0。若在运行到点x处时,进程P0的执行被打断。为充分利用CPU,须将CPU分配给别的
36、进程使用,即进行进程间的切换,让CPU从执行一个进程转而去执行另一个进程。2.进程间的切换进程间的切换 所谓“进程间的切换”,是指将CPU的执行从一个进程切换到另一个进程。在有的书里,把进程间的切换称为“进程间的上下文切换”。操作系统是通过进程PCB中的现场保护区来实现进程间的切换的。.进程P0进程P1操作系统中断或系统调用保护现场到PCB0从PCB1现场保护区获取现场信息中断或系统调用保护现场到PCB1从PCB0现场保护区获取现场信息执行执行执行被打断的断点x从断点x恢复执行被打断的断点y到点y时,若进程P1的运行被打断,又进入操作系统去做进程间的切换。若现在是要运行进程P0,那么先把当前C
37、PU的运行现场保护到进程P1的PCB里,然后用进程P0的PCB里的现场信息对CPU进行加载。这样,CPU就开始从点x往下运行左边的进程P0了。.为此进入操作系统。若现在是要运行进程P1,那就先把当前CPU的运行现场保护到进程P0的PCB里,然后用进程P1的PCB里的现场信息对CPU进行加载(即恢复进程P1的运行现场)。这样,CPU就开始运行右边的进程P1了。.就绪队列:系统中所有处于就绪状态的进程的PCB排成一队,称其为“就绪队列”。一般地,就绪队列里会有多个进程的PCB排在里面,它们形成处理机分配的侯选对象。阻塞队列:所有处于阻塞状态的进程的PCB,应该根据阻塞的原因进行排队,每一个都称为一
38、个“阻塞队列”。2.2.3 进程控制块队列PCB1PCB2PCB5PCB10PCB3PCB7PCB6PCB8PCB9PCB4-1-1-1运行队列头指针就绪队列头指针阻塞队列1头指针阻塞队列2头指针运行队列:就绪队列:阻塞队列1:阻塞队列2:.运行队列:处于运行状态的PCB构成运行队列。在单CPU系统,任何时刻系统里都只有一个进程处于运行状态,因此运行队列里只能有一个PCB。.A2.3进程的调度与管理 2.3.1 进程调度算法1.先来先服务调度算法先来先服务调度算法ABCD调度就绪队列到达阻塞队列完成I/O完成阻塞CPUI/O基本思想:调度时以到达就绪队列的先后次序选择占用处理机的进程。进程一旦
39、占有处理机,就一直用下去,直至结束或因等待某事件而让出处理机。2.时间片轮转调度算法时间片轮转调度算法基本思想:调度时为进程分配一个称为“时间片”的时间段,在使用完一个时间片后,即使进程没运行完,也要释放处理机,让给另一个进程使用,自己则排到就绪队列末尾,等待下一次调度。ABCD调度就绪队列到达阻塞队列完成I/O完成阻塞CPUI/O时间片到UNIX操作系统里,为动态改变一个进程的优先数,采取了设置和系统计算并用的方法。设置用于一个进程变为阻塞时,系统会根据不同的阻塞原因,赋予阻塞进程不同的优先数。这个优先数将在进程被唤醒后发挥作用。计算进程优先数的公式是:p_pri=min127,(p_cpu
40、/16+PUSER+p_nice)3.优先数调度算法优先数调度算法基本思想:为系统中的每个进程规定一个优先数,就绪队列中具有最高优先数的进程有优先获得处理机的权利;如果几个进程的优先数相同,则对它们实行先来先服务的调度。确定进程优先数的几个因素.(1)根据进程的类型(2)根据进程执行任务的重要性(3)根据进程程序的性质(4)根据对资源的要求(5)根据用户的请求 进程的优先数可分静态和动态两类。所谓静态,是指在进程的整个生命期内优先数保持不变。其优点是实现简单,但欠灵活。所谓动态,是指在进程的整个生命期内可随时修正它的优先级别,以适应系统环境和条件的变化。.例例:p_cpup_pri进程的进程被
41、调度优先级到的可能性进程被调度进程的p_prip_cpu到的可能性优先级图例:-上升-下降一开始,进入就绪队列的进程被安排在队列0里,每个进程都可获得8ms长的时间片。如果进程不能在该时间区间内完成自己的工作,那它就被下移到队列1的尾部去等待调度。如果队列0为空,位于队列1首的进程将被调度,并可获得16ms长的时间片。如果进程不能在该时间区间内完成自己的工作,那么它就要被下移到队列2的尾部去等待调度。只有在队列0和1都为空时,队列2里的进程才可根据先来先服务的调度算法投入运行。4.多级队列调度算法多级队列调度算法多级反馈队列调度的中心思想是,以使用CPU时间的长短,来区分进程,让进程在各就绪队
42、列里移动。如果进程需要使用很多的CPU时间,那么它就会被移到优先级较低的就绪队列去。.比如,有多级反馈队列,它维持三个就绪队列,从队列0到队列2。先来先服务时间片=8ms时间片=16ms队列0队列1完成完成阻塞/解除阻塞时间片到阻塞/解除阻塞时间片到队列2完成到达 调度程序总是先执行队列0里的所有进程,只有当队列0为空时,它才会去调度队列1中的进程。类似地,只有当队列0和1都为空时,它才会去调度队列2中的进程。到达队列1的进程会抢占队列2的进程的执行。同样,到达队列0的进程会抢占队列1的进程的执行。.5.进程调度程序的主要功能进程调度程序的主要功能 .6.引发调度程序工作的几个条件引发调度程序
43、工作的几个条件 .记录系统中所有进程的有关情况,比如进程的当前状态,优先数等。.确定分配处理机的算法,这是它的一项主要工作。.完成处理机的分配和回收。.不可剥夺方式:只能由占用处理机的进程自己自愿放弃处理机。进程调度程序负责具体的处理机分配,完成进程间的切换工作,因此它的执行频率是相当高的,是一个操作系统的真正核心。一个进程从运行状态变成阻塞状态(如请求进行输入/输出操作);(1)(2)一个进程正常运行结束后被撤销。一个进程从运行状态变成就绪状态(如分时系统中,已运行满一个时间片);(3)(4)一个进程从阻塞状态变成就绪状态(如等待的输入/输出操作完成);.注意:(1)、(4)两种情况肯定会引
44、起进程调度程序工作,它将从就绪队列里选择一个进程占用处理机,完成进程间的切换;(2)、(3)两种情况可能会引起进程调度,也可能是继续运行原进程,这与系统所采用的调度算法有关。7.进程占用处理机的时间进程占用处理机的时间 剥夺方式:当系统出现某条件时,就立即从当前运行进程手中抢夺过处理机,重新进行分配。在进程调度算法中,时间片轮转调度算法属于剥夺方式。功能:在等待的事件发生后,由唤醒进程原语把等待进程从相应的阻塞队列里解放出来,进入就绪队列,重新参与调度。撤消进程原语功能:为新建进程申请进程控制块PCB,将创建者提供的信息填入PCB,将新建进程设置为就绪状态,按照调度算法把PCB排入就绪队列中。
45、2.3.2 进程管理的基本原语1.原语定义原语定义操作系统提供若干基本操作,以便创建、撤消、阻塞和唤醒进程。为保证执行的正确,要求它们以一个整体出现,不可分割。即一旦启动了相应的程序,就要保证做完,中间不能插入其它程序的执行序列。具有这种特性的程序被称为“原语”。为保证这种不可分割性,通常是利用屏蔽中断的方法。2.进程管理的基本原语进程管理的基本原语.创建进程原语阻塞进程原语唤醒进程原语功能:收回该进程占用的资源,将该进程的PCB从所在队列里摘下,把PCB所占用的存储区归还给系统。功能:将被阻塞进程的现场信息保存到PCB中,状态改为阻塞;将其PCB排到相应的阻塞队列中。若被阻塞的是自己,调用了
46、该原语后,就重新分配处理机。2.4线程 2.4.1 线程的概念 “线程(thread)”是进程的一个实体,是进程中实施调度和处理机分派的单位。若视进程为在逻辑上需要完成的一个任务,那么线程则是完成该任务时可以并发执行的多个子任务。.为了提高进程的并发执行程度,减少系统在进程切换时所花费的开销,在现代的很多操作系统中,就出现了与进程管理相关联的更高级的概念:线程。关键的做法是将原来赋予进程的两个属性拆分开来,让两个不同的实体加以承受:进程这个实体只作为“资源拥有者”,而“调度和运行”则赋予新的实体线程。.这时,线程基本上不拥有系统资源,有的只是运行中不可或缺的一点资源(如程序计数器、一组寄存器和
47、堆栈),但它可以与同属一个进程的其他线程共享进程所拥有的全部资源。右图给出了进程和线程间的各种关系。方框表示单进程,曲线表示线程。引入了线程概念后,就可以把原先的进程概念理解为是这种只有一个线程的进程情形。(a)单进程,单线程(b)单进程,多线程(c)多进程,每个进程一个线程(d)多进程,每个进程多个线程进程线程1.引入线程的原因引入线程的原因2.线程的定义线程的定义 所谓“线程(thread)”,是指进程中实施处理机调度和分配的基本单位。有了线程后,人们有时就把原先的进程称为“重载进程(Heavyweight process,HWP)”,把线程称为“轻载进程(Lightweight proc
48、ess,LWP)”。.线程概念引入之后,就可以通过在进程中创建多个线程的方法,来达到提高系统并发执行能力的目的。由于在进程内的线程共享程序和资源,因此创建线程无需进行资源分配,比创建一个进程要顺利和快捷得多;这也使得撤消线程比撤消一个进程所花费的时间短;同一进程里线程间的切换是在进程的地址空间里进行,因此比进程间不同地址空间中的切换开销要少得多;进程里的线程可以随时访问该进程拥有的所有资源,无需做任何切换工作;同一进程中的诸多线程共享内存区域和文件,因此它们之间可以直接进行通信,不必通过系统内核。线程具有如下优点:.3.线程的状态线程的状态有了线程后,操作系统对进程的管理会影响到进程中的所有线
49、程,使这些线程的状态发生变化。线程在系统里,会在如下的三种基本状态中变迁。当创建一个新进程时,同时就为该进程建立一个主线程,它可以再创建其他线程,新线程被排在就绪队列中。当线程等待一个事件时,它将被阻塞,CPU转而去执行另一个就绪的线程。要注意,线程的阻塞引起的是同进程的线程间的调度和CPU的分配;进程的阻塞引起的是不同进程间的重新调度和CPU的分配。由于进程中的所有线程共享该进程的存储空间,因此一个进程的阻塞,会导致其所有线程阻塞;而进程中的一个线程的阻塞,不会影响整个进程的运行。当线程等待的事件发生时,该线程由阻塞转为就绪,插入到就绪队列中。创建阻塞唤醒.若有关线程的管理工作都是由运行在用
50、户空间的应用程序完成,那么这样的线程称为“用户级”线程。完成线程管理的应用程序,称为“线程库”,它将被系统中的所有用户程序共享使用。2.4.2 线程的实现 .用户级线程的实现方法用户级线程的实现方法 这时的一切活动都是针对同一个进程发生的,且都发生在用户空间,系统一点也感知不到这些活动的存在。这时的系统内核,只是以进程为单位管理和调度进程,指定其所处的状态(就绪、运行、阻塞)。用户空间内核空间P进程运行在用户态的线程管理在核心态的线程内核级线程的实现方法内核级线程的实现方法 若果有关线程的管理工作都由内核完成,用户空间里没有任何进行线程管理的程序,只是向应用程序提供相应的系统调用和应用程序编程