《操作系统》配套教学课件_第1页
《操作系统》配套教学课件_第2页
《操作系统》配套教学课件_第3页
《操作系统》配套教学课件_第4页
《操作系统》配套教学课件_第5页
已阅读5页,还剩717页未读 继续免费阅读

下载本文档

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

文档简介

第一章操作系统引论学院:教师:下面这些软件中哪些是操作系统?Windows、TurboC++、WordVisualFoxPro、UNIX、VITurboASM、Linux用户自己编写的一个C语言程序极品飞车内容概述1.1操作系统的目标和作用1.2操作系统的发展过程1.3操作系统的基本特性1.4操作系统的主要功能1.5操作系统的结构设计操作系统属于软件中的系统软件,起到对系统资源进行管理和分配,提高运行效率的作用。计算机系统组成计算机系统软件硬件及固件(裸机)应用软件系统软件DBMS,编译软件操作系统紧贴系统硬件之上,所有其他软件之下(是其他软件的共同环境)1.1操作系统的目标和作用1.1.1操作系统的目标1.1.2操作系统的作用1.1.3推动操作系统发展的主要动力1.1.1操作系统的目标

目前存在着多种类型的OS,不同类型的OS,其目标各有所侧重。通常在计算机硬件上配置的OS,其目标有以下几点:1.有效性

2.方便性

3.可扩充性

4.开放性1.有效性(系统管理人员的观点)

提高系统资源利用率。提高系统的吞吐量。2.方便性(用户的观点)

操作系统最终是要为用户服务的。提供良好的、一致的用户接口,弥补硬件系统的类型和数量差别,使计算机更容易使用。

3.可扩充性

OS应采用层次化结构,以便于增加新的功能层次和模块,并能修改老的功能层次和模块。4.开放性遵循标准规范,方便地实现互连,实现应用程序的可移植性和互操作性。1.1操作系统的目标和作用1.1.1操作系统的目标1.1.2操作系统的作用1.1.3推动操作系统发展的主要动力1.OS作为用户与计算机硬件系统之间的接口(用户观点)OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。OS是一个系统软件,因而这种接口是软件接口。命令方式(命令接口)联机用户接口(命令)脱机用户接口(批处理)系统调用方式(程序接口)图形、窗口方式(图形接口)1.1.2操作系统的作用

图1-1OS作为接口的示意图操作系统各种应用程序DOS2.OS作为计算机系统资源的管理者(设计者观点)包括处理机、存储器、I/O设备及数据和程序等资源。管理的内容:资源的当前状态(数量和使用情况)、资源的分配、回收和访问操作,相应管理策略(包括用户权限)。处理机管理存储器管理I/O设备管理文件管理3.OS实现了对计算机资源的抽象(虚拟机观点)OS是扩展机/虚拟机将覆盖了软件的机器称为扩充机器或虚拟机。在裸机上添加:设备管理、文件管理、存储管理(内存和外存)、处理机管理(CPU)等软件。那么用户此时看到的计算机是一台功能强大、使用方便的计算机,但实际上,计算机的硬件丝毫没有变化,这样的计算机称为软件扩充的机器,或称软件虚拟机。1.1操作系统的目标和作用1.1.1操作系统的目标1.1.2操作系统的作用1.1.3推动操作系统发展的主要动力1.1.3推动操作系统发展的主要动力1.不断提高计算机资源利用率 计算机发展的初期,计算机系统昂贵,用作集中计算。2.方便用户 改善用户上级、调试程序时的条件。人机交互。3.器件的不断更新换代

CPU的位宽度(指令和数据)、快速外存(摩尔定律)。4.计算机体系结构的不断发展 从单处理机到多处理机、从单机OS到网络OS。第一章操作系统引论1.1操作系统的目标和作用1.2操作系统的发展过程1.3操作系统的基本特征1.4操作系统的主要功能1.5操作系统的结构设计1.2操作系统的发展过程1.2.1无操作系统的计算机系统1.2.2单道批处理系统1.2.3多道批处理系统1.2.4分时系统1.2.5实时系统1.2.1无操作系统的计算机系统

1.人工操作方式

1945-1950、电子管、集中计算。工作方式用户:用户是程序员、操作员、计算机专业人员。编程语言:机器语言输入输出:纸带或卡片计算机的工作特点用户独占全机:资源利用率低。CPU等待用户:计算前,手工装入纸带或卡片;计算完成后,手工卸取纸带或卡片;CPU利用率低。2.脱机输入/输出(Off-LineI/O)方式

事先将用户程序或数据的纸带或卡片放入纸带输入机,在外围机的控制下输入到磁带上,CPU从磁带上读入数据;输出过程正好相反。

这种脱机I/O方式的主要优点如下:减少了CPU的空闲时间。

(2)提高I/O速度。图1-3脱机I/O示意图主要矛盾计算机处理能力的提高,手工操作的低效率(造成浪费)。用户独占全机的所有资源。人机矛盾、CPU和I/O设备速度不匹配提高效率的途径批处理3.无操作系统的主要问题1.2操作系统的发展过程1.2.1无操作系统的计算机系统1.2.2单道批处理系统1.2.3多道批处理系统1.2.4分时系统1.2.5实时系统1.批处理系统理解批处理技术是指在系统中配置一个监督程序(操作系统的雏形),并在该监督程序的控制下,对一批作业自动进行处理的一种技术。批处理系统是指加载在计算机上的一个系统软件(监督程序),在它的控制下,计算机能够自动地成批地处理一个或多个用户的作业。在内存中只存放一道作业的批处理系统称为单道批处理系统。1.2.2单道批处理系统2.单道批处理系统的处理过程

图1-4单道批处理系统的处理流程监督程序:控制作业连续处理3.单道批处理系统的特征 单道批处理系统是最早出现的一种OS。旨在提高系统资源的利用率和系统吞吐量。

(1)自动性。在顺利的情况下,磁带上的一批作业能自动地逐个地依次运行,而无需人工干预

(2)顺序性。磁带上的各道作业是顺序地进入内存,完成顺序与进入内存顺序相同

(3)单道性。内存中只有一道程序运行1.2操作系统的发展过程1.2.1无操作系统的计算机系统1.2.2单道批处理系统1.2.3多道批处理系统1.2.4分时系统1.2.5实时系统1.2.3多道批处理系统1.多道程序设计的基本概念在单道批处理系统中,内存中仅有一道作业,它无法充分利用系统中的所有资源,致使系统性能较差。多道程序设计技术是指在内存同时存放若干个作业,并使它们共享系统资源同时运行的技术。采用多道程序设计技术的批处理系统被称为多道批处理系统。图1-5单道和多道程序运行情况|←CPU空闲-→||←CPU空闲-→|2.多道批处理系统的特征

(1)多道性 内存中同时存放几个作业,并允许并发执行,从而有效地提高了资源利用率和系统吞吐量。(2)无序性 多个作业完成的先后顺序与它们进入内存的顺序之间无严格对应关系。(3)调度性 作业调度,从后备队列进入内存;进程调度,分配处理机运行。(4)宏观上并发、微观上串行。3.多道批处理系统的优缺点

优点:资源利用率高:CPU、内存和I/O设备利用率较高;系统吞吐量大:单位时间内完成的工作总量大。缺点:用户交互性差:整个作业完成后或中间出错时,才与用户交互,不利于调试和修改。作业平均周转时间长:短作业的周转时间显著增长。4.多道批处理系统需要解决的问题

(1)处理机管理问题(第3章)(2)内存管理问题(第4章)(3)I/O设备管理问题(第5章)(4)文件管理问题(第6章)(5)作业管理问题(第3章)

操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序集合。单道批处理系统与多道批处理系统的比较1.2操作系统的发展过程1.2.1无操作系统的计算机系统1.2.2单道批处理系统1.2.3多道批处理系统1.2.4分时系统1.2.5实时系统1.2.4分时系统1.分时系统的产生用户的需求人机交互(对程序进行调试、修改等直接控制)共享主机(主机贵,提高资源利用率)便于用户上机(作业直接从终端进入,并能控制)分时系统分时系统是指在一台计算机上连接了多个带有显示器和键盘的终端,同时允许多个用户共享主机中的资源,每个用户都可通过自己的终端以交互方式使用计算机。2.分时系统实现中的关键问题

及时接收(只需配置多路卡,同时接收各终端数据)

及时处理(在不长的时间能响应用户命令)3.分时系统的特征

多路性:宏观上多个用户同时工作,微观上多个终端轮转时间片。独立性:每个用户一台终端,互不干扰,感觉像一个人独占计算机。及时性:用户请求应尽快得到响应(2-3秒)。交互性:用户可通过终端与系统进行广泛的人机对话。1.2操作系统的发展过程1.2.1无操作系统的计算机系统1.2.2单道批处理系统1.2.3多道批处理系统1.2.4分时系统1.2.5实时系统1.2.5实时系统

所谓“实时”是表示“及时”,而实时系统是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。要求:响应时间短,在一定范围之内;系统可靠性高。1.应用需求(1)实时控制。包括生产过程控制和武器控制。(2)实时信息处理。例如证劵交易、飞机订票、情报检索。2.实时任务按任务执行时是否呈现周期性来划分周期性实时任务非周期性实时任务按对截止时间的要求来划分硬实时任务软实时任务3.实时系统与分时系统特征的比较实时系统分时系统多路性对多个对象的信息采集和控制为多个终端服务独立性表现为对多个对象的互不干扰每个用户独占主机及时性在规定时间内对外部事件响应在一定时间处理各个终端用户作业交互性一般情况下无交互性由交互引入可靠性要求高度可靠可靠性低第一章操作系统引论1.1操作系统的目标和作用1.2操作系统的发展过程1.3操作系统的基本特征1.4操作系统的主要功能1.5操作系统的结构设计1.3操作系统的基本特征1.3.1并发(Concurrence)1.3.2共享(Sharing)1.3.3虚拟(Virtual)1.3.4异步性(Asynchronism)1.3操作系统的基本特性1.3.1并发(Concurrence)并行性是指两个或多个事件在同一时刻发生;并发性是指两个或多个事件在同一时间间隔内发生。时间BA时间BA在多道程序环境下的并发性单处理机系统多个处理机系统并发:即宏观上在一段时间内有多道程序在同时运行,在微观上,这些程序是在交替执行的。程序和进程、线程为使程序能并发执行,为每个程序建立进程。进程是能独立运行并作为资源分配的基本单位,是活动实体。引入线程后,进程是分配资源的基本单位,线程作为独立运行的基本单位。调度开销小。1.3操作系统的基本特征1.3.1并发(Concurrence)1.3.2共享(Sharing)1.3.3虚拟(Virtual)1.3.4异步性(Asynchronism)1.3.2共享(Sharing)

在操作系统环境下,所谓共享是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。由于资源属性的不同,进程对资源共享的方式也不同,目前主要有两种资源共享方式:

1.互斥共享方式

2.同时访问方式1.互斥共享方式系统中的某些资源,如打印机、磁带机,在一段时间内只允许一个进程(线程)访问该资源。仅当该进程访问完并释放该资源后,才允许另一进程对该资源进行访问。

在一段时间内只允许一个进程访问的资源称为临界资源或独占资源。计算机系统中的大多数物理设备,以及栈、变量和表格,都属于临界资源,它们要求被互斥地共享。2.同时访问方式系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。典型的可供多个进程“同时”访问的资源是磁盘设备。并发和共享是操作系统的两个最基本的特征。它们又是互为存在的条件。

资源共享是以程序(进程)的并发执行为条件的,若系统不允许程序并发执行,自然不存在资源共享问题。

若系统不能对资源共享实施有效管理,必然影响到程序并发执行的程度。1.3操作系统的基本特征1.3.1并发(Concurrence)1.3.2共享(Sharing)1.3.3虚拟(Virtual)1.3.4异步性(Asynchronism)1.3.3虚拟(Virtual)

所谓“虚拟”是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。在OS中利用了多种虚拟技术,分别用来实现虚拟处理机、虚拟内存、虚拟外部设备等。

CPU-每个用户(进程)的“虚处理机”(多道程序设计技术、时分复用)

存储器--虚拟存储器(时分复用)

打印设备--将临界资源变为同时访问资源(spooling技术)1.3操作系统的基本特征1.3.1并发(Concurrence)1.3.2共享(Sharing)1.3.3虚拟(Virtual)1.3.4异步性(Asynchronism)1.3.4异步性(Asynchronism)

在多道程序环境下,允许多个进程并发执行,但只有进程在获得所需的资源后方能执行。由于资源等因素的限制,使进程的执行通常都不是“一气呵成”,而是以“停停走走”的方式运行。进程是以人们不可预知的速度向前推进,此即进程的异步性。第一章操作系统引论1.1操作系统的目标和作用1.2操作系统的发展过程1.3操作系统的基本特征1.4操作系统的主要功能1.5操作系统的结构设计1.4操作系统的主要功能操作系统是用户与硬件之间的桥梁,它主要负责管理计算机系统中的所有资源,并负责它们的调度和使用,充分发挥这些资源的作用和方便用户使用计算机。从资源管理的角度来看,操作系统的功能主要有1.4.1处理机管理功能1.4.2存储器管理功能1.4.3设备管理功能1.4.4文件管理功能1.4.5用户接口1.4操作系统的主要功能1.4.1处理机管理功能1.进程控制创建、撤销、挂起等--主动改变进程的状态;在现代OS中,进行控制还应具有为一个进程创建和撤消线程的功能。

处理机管理的主要任务是对处理机进行分配,并对其运行进行有效的控制和管理。在多道程序环境下,处理机的分配和运行都是以进程为单位,所以对处理机的管理可理解为对进程的管理。2.进程同步协调并发进程之间的推进步骤,以协调资源共享--交换信息能力弱互斥方式诸进程访问临界资源时采用这种方式。同步方式在相互合作完成任务的进程之间由同步机构对执行次序加以协调。3.进程通信进程之间传送数据,以协调进程间的协作--交换信息能力强,也可以用来协调进程之间的推进。包括直接通信方式和间接通信方式。如输入进程、计算进程、打印进程之间的通信。4.调度

作业调度:从外存调入内存进程调度:是从内存中的进程就绪队列中选一个分配处理机。1.4操作系统的主要功能1.4.1处理机管理功能1.4.2存储器管理功能1.4.3设备管理功能1.4.4文件管理功能1.4.5用户接口1.4.2存储器管理功能1.内存分配静态分配:每个作业的内存空间是在作业装入时确定的;整个运行期间,不允许再申请新的内存空间;不允许在内存中“移动”。动态分配:每个作业的基本内存空间,是在装入时确定的;允许运行期间申请新的内存空间,适应动态增涨;允许作业在内存中“移动”。管理目标:提高利用率、方便用户使用、提供足够的存储空间、方便进程并发运行。2.内存保护内存保护的主要任务,是确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰。为了确保每道程序都只在自己的内存区中运行,必须设置内存保护机制。一种比较简单的内存保护机制,是设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。越界检查都由硬件实现。当然,对发生越界后的处理,还须与软件配合来完成。3.地址映射程序中的地址称为“逻辑地址”或“相对地址”,这些程序的地址都是从“0”开始的,程序中的其它地址都是相对于起始地址计算的。内存中单元的地址称为“物理地址“,由内存中的一系列单元所限定的地址范围。多道程序下,进程装入内存后要由逻辑地址到内存物理地址进行变换,该功能应在硬件的支持下完成。4.内存扩充借助于虚拟存储技术,从逻辑上去扩充内存容量,借助于虚拟存储技术。改善了系统的性能,基本上不增加硬件投资。请求调入功能。置换功能。1.4操作系统的主要功能1.4.1处理机管理功能1.4.2存储器管理功能1.4.3设备管理功能1.4.4文件管理功能1.4.5用户接口1.4.3设备管理功能设备管理用于管理计算机系统中所有的外围设备。设备管理的主要任务是:

完成用户进程提出的I/O请求;

为用户进程分配其所需的I/O设备;

提高CPU和I/O设备的利用率;

提高I/O速度;

方便用户使用I/O设备。1.缓冲管理匹配CPU和外设的速度,提高两者的利用率(单缓冲区、双缓冲区和公用缓冲池)最常见的缓冲区机制有单缓冲机制、能实现双向同时传送数据的双缓冲机制,循环缓冲以及能供多个设备同时使用的公用缓冲池机制。2.设备分配根据用户请求,分配I/O设备及相应的控制器和通道。3.设备处理设备处理程序又称为设备驱动程序。其基本任务是用于实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出I/O命令,要求它完成指定的I/O操作;反之由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理。

1.4操作系统的主要功能1.4.1处理机管理功能1.4.2存储器管理功能1.4.3设备管理功能1.4.4文件管理功能1.4.5用户接口1.4.4文件管理功能

1.文件存储空间的管理解决如何存放信息,以提高空间利用率和读写性能。存储空间的使用情况,空间分配与回收。程序和数据以文件的形式存储在磁盘和磁带上。文件管理的主要任务:对用户文件和系统文件进行管理,以方便用户使用并保证文件安全。2.目录管理解决信息检索问题,对众多目录项加以有效组织。目录项包括文件名、文件属性、文件在磁盘上的物理位置等。3.文件的读/写管理和保护

(1)文件的读/写管理。该功能是根据用户的请求,从外存中读取数据,或将数据写入外存。

(2)文件保护。 ①防止未经核准的用户存取文件; ②防止冒名顶替存取文件; ③防止以不正确的方式使用文件。1.4操作系统的主要功能1.4.1处理机管理功能1.4.2存储器管理功能1.4.3设备管理功能1.4.4文件管理功能1.4.5用户接口1.4.5用户接口目标:提供一个友好的用户访问操作系统的接口。程序接口用户接口(2)脱机用户接口该接口是为批处理作业的用户提供的,故也称为批处理用户接口。该接口由一组作业控制语言JCL组成。批处理作业的用户不能直接与自己的作业交互作用,只能委托系统代替用户对作业进行控制和干预。1.命令接口(1)联机用户接口这是为联机用户提供的,它由一组键盘操作命令及命令解释程序所组成。当用户在终端或控制台上每键入一条命令后,系统便立即转入命令解释程序,对该命令加以解释并执行该命令。2.程序接口该接口是为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的惟一途径。它是由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序,每当应用程序要求OS提供某种服务(功能)时,便调用具有相应功能的系统调用。3.图形接口图形用户接口采用了图形化的操作界面,用非常容易识别的各种图标(icon)来将系统的各项功能、各种应用程序和文件,直观、逼真地表示出来。用户可用鼠标或通过菜单和对话框,来完成对应用程序和文件的操作。第一章操作系统引论1.1操作系统的目标和作用1.2操作系统的发展过程1.3操作系统的基本特征1.4操作系统的主要功能1.5操作系统的结构设计(了解)1.5操作系统的结构设计操作系统开发小程序:程序员的程序设计技巧大型软件:工程化的开发方法,软件工程学传统的操作系统结构无结构操作系统(第一代)模块化结构操作系统(第二代)分层结构操作系统(第三代)现代的操作系统结构微内核操作系统操作系统的开发方法本章小结

熟悉和掌握以下基本概念: 操作系统、批处理技术、批处理系统、分时系统、实时系统、脱机输入输出、多道程序设计技术熟悉和掌握以下基本知识:1.操作系统的目标2.操作系统的作用3.操作系统的特征4.操作系统的基本功能作业:P33,1、2、13、2525、从资源管理的角度看,操作系统具有哪些功能?第一章授课结束,欢迎讨论!学院:教师:第二章进程管理内容概述2.1进程的基本概念2.2进程控制2.3进程同步2.4经典进程的同步问题2.5进程通信2.6线程

进程管理的主要功能是把处理机分配给进程,并对处理器运行进行有效地控制和管理,以及协调各个进程之间的相互关系。2.1进程的基本概念2.1.1程序的顺序执行及其特征2.1.2前趋图2.1.3程序的并发执行及其特征2.1.4进程的特征与状态2.1.5进程控制块图2-1程序的顺序执行1.程序的顺序执行仅当前一操作(程序段)执行完后,才能执行后继操作。例如,在进行计算时,总须先输入用户的程序和数据,然后进行计算,最后才能打印计算结果。

S1:a:=x+y;S2:b:=a-5;S3:c:=b+1;2.1.1程序的顺序执行及其特征2.程序顺序执行时的特征(1)顺序性:处理机的操作严格按照程序所规定的顺序执行,只有当上一个操作完成后,下一个操作才能执行。(2)封闭性:程序运行在一个封闭的环境中,即程序运行时独占系统的全部资源,这些资源的状态只能因程序的执行而改变,不受任何外界因素的影响。(3)可再现性:由于程序顺序执行的封闭性,只要程序顺序执行的初始条件和环境相同,则不论何时执行,也不论程序执行期间是否存在停顿,程序所得的结果也相同。结论:正由于程序顺序执行的特点,程序员可以检测和重现程序的错误,可以调试和校正程序。2.1进程的基本概念2.1.1程序的顺序执行及其特征2.1.2前趋图2.1.3程序的并发执行及其特征2.1.4进程的特征与状态2.1.5进程控制块2.1.2前趋图(PrecedenceGraph)

前趋图是一个有向无循环图,记为DAG。用于描述进程之间执行的前后关系。图中的每个结点可用于描述一个程序段或进程,乃至一条语句;结点间的有向边则用于表示两个结点之间存在的偏序或前趋关系“→”。→={(Pi,Pj)|PimustcompletebeforePjmaystart},如果(Pi,Pj)∈→,可写成Pi→Pj:称Pi是Pj的直接前趋,而称Pj是Pi的直接后继。把没有前趋的结点称为初始结点(InitialNode),把没有后继的结点称为终止结点(FinalNode)。

每个结点还具有一个重量(Weight),用于表示该结点所含有的程序量或结点的执行时间。图2-2前趋图×直接前趋直接后继初始结点终止结点对于图2-2(a)所示的前趋图,存在下述前趋关系P1→P2,P1→P3,P1→P4,P2→P5,P3→P5,P4→P6,P4→P7,P5→P8,P6→P8,P7→P9,P8→P9或表示为:P={P1,P2,P3,P4,P5,P6,P7,P8,P9}→={(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),(P4,P6),(P4,P7),(P5,P8),(P6,P8),(P7,P9),(P8,P9)}应当注意,前趋图中必须不存在循环,但在图2-2(b)中却有着下述的前趋关系:S2→S3,S3→S22.1进程的基本概念2.1.1程序的顺序执行及其特征2.1.2前趋图2.1.3程序的并发执行及其特征2.1.4进程的特征与状态2.1.5进程控制块2.1.3程序的并发执行及其特征

1.程序的并发执行

图2-3并发执行时的前趋图并发输入程序I计算程序C输出程序P下述四条语句的程序段:S1:a:=x+2S2:b:=y+4S3:c:=a+bS4:d:=c+6图2-4四条语句的前趋关系什么样的程序可以并发执行?2.程序并发执行时的特征

(1)间断性 相互制约导致并发程序具有“执行-暂停-执行”的间断性活动规律。(2)失去封闭性

系统中多道程序共享资源,资源的状态由多个程序来改变,必然失去了程序的封闭性。(3)不可再现性 失去封闭性->失去可再现性,外界环境在程序的两次执行期间发生变化,失去原有的可重复特征。例如,有两个程序A和B,它们共享一个变量N(初始值为x)。

A: N:=N+1B: Print(N); N:=0;

程序A和B并发执行,可出现以下三种情况:(1)N:=N+1在Print(N)和N:=0之前,此时得到的N值分别为x+1,x+1,0。

(2)N:=N+1在Print(N)和N:=0之后,此时得到的N值分别为x,0,1。

(3)N:=N+1在Print(N)和N:=0之间,此时得到的N值分别为x,x+1,0。2.1进程的基本概念2.1.1程序的顺序执行及其特征2.1.2前趋图2.1.3程序的并发执行及其特征2.1.4进程的特征与状态2.1.5进程控制块2.1.4进程的特征与状态1、进程实体的构成(1)程序(段):进程要进行的操作。(2)数据段:包括操作的数据和程序自己的变量。(3)进程控制块PCB(ProcessControlBlock):存放进程标识符、进程运行的当前状态、程序和数据的地址、程序运行时的CPU环境等。2.1.4进程的特征与状态

2.进程的特征

结构特征:进程的创建与撤消就是PCB的创建与撤消。动态性:进程是一个动态的概念,实质上是程序的一次执行过程。进程具有生命期:它因“创建”而产生,因“调度”而执行,执行时还走走停停,因“撤消”而灭亡。并发性:多个进程实体同存于内存中,且能在一段时间内同时运行,共享系统资源;引入进程实体的目的就是并发执行。2.进程的特征独立性:进程是一个能独立运行的基本单位,也是系统进行资源分配和调度的基本单位。异步性:各进程按各自独立的、不可预知的速度向前推进。3.进程的定义进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。4.进程与程序的区别进程是动态的,程序是静态的:程序是有序代码的集合,它可以复制;进程是程序在数据集上的一次执行。进程是暂时的,程序是永久的:进程是一个状态变化的过程,有它的撤销,程序可长久保存。进程具有结构特征:由程序段、数据段和进程控制块三者组成,而程序仅是指令的有序集合,是进程的组成部分之一。进程与程序的对应关系:通过多次执行,一个程序可对应多个进程。5.进程的状态(1)进程的三种基本状态就绪(Ready)状态:进程已获得除处理机外的所需资源,等待分配处理机资源;只要分配CPU就可执行。执行(Running)状态:处于就绪状态的进程一旦获得了处理机,进程状态就处于执行状态。阻塞(Blocked)状态(“等待”或“睡眠”):由于进程等待某种事件(如I/O操作或进程同步),在事件发生之前无法继续执行。该事件发生前即使把处理机分配给该进程,也无法运行。如:请求I/O操作,申请缓冲空间等。图2-5进程的三种基本状态及其转换1.时间片用光2.有优先级高的进程到来引入挂起状态的原因终端用户的请求父进程请求负荷调节的需要操作系统的需要(2)进程的挂起状态图2-6具有挂起状态的进程状态图(3)进程的其它两种状态

创建状态:当一个新进程刚刚建立,还未将其放入就绪队列时的状态,称为新状态。终止状态:当一个进程已经正常结束或异常结束,操作系统已将其从系统队列中移出,但尚未撤消,这时称为终止状态。图2-7进程的五种基本状态及其转换2.1进程的基本概念2.1.1程序的顺序执行及其特征2.1.2前趋图2.1.3程序的并发执行及其特征2.1.4进程的特征与状态2.1.5进程控制块2.1.5进程控制块

1.进程控制块的作用

进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。记录了操作系统所需的,用于描述进程情况及控制进程运行所需的全部信息。

PCB是进程存在的唯一标志。2.进程控制块中的信息

进程标识符内部标识符和外部标识符。处理机状态①通用寄存器②指令计数器PC③程序状态字PSW④用户栈指针进程调度信息①进程状态②进程优先级③进程调度所需的其它信息④事件进程控制信息①程序和数据的地址②进程同步和通信机制③资源清单④链接指针structpcb{intid;//进程序号

intra;//所需资源A的数量

intrb;//所需资源B的数量

intrc;//所需资源C的数量

intntime;//所需的时间片个数

intrtime;//已经运行的时间片个数

charstate;//进程状态

structpcb*next;}图2-9PCB链接队列示意图3.进程控制块的组织方式(1)链接方式

(2)索引方式图2-10按索引方式组织PCB3.进程控制块的组织方式(1)链接方式(2)索引方式内容概述2.1进程的基本概念

2.2进程控制

2.3进程同步2.4经典进程的同步问题2.5进程通信2.6线程2.2进程控制1.系统态和用户态处理机的执行状态分系统态和用户态两种:(1)系统态(管态、核心态):有较高特权,能执行一切指令,访问所有寄存器和存储区。

(2)用户态(目态):有较低特权,能执行规定指令,访问指定寄存器和存储区。 用户程序运行在用户态,不能执行OS指令及区域。

OS内核运行在系统态,进程控制是由OS内核实现的。2.2进程控制2.进程控制的功能

进程控制是进程管理中最基本的功能:创建新进程终止已结束进程终止由于某事件而无法运行下去的进程负责进程的状态转换进程控制一般由OS的内核中的原语来实现的。2.2进程控制3.原语由若干条指令构成的“原子操作”过程,在执行期间不可中断,作为一个整体而不可分割。原子操作:一个操作中的所有动作要么全做,要么全不做。原子操作在管态下执行,常驻内存。原语的作用是为了实现进程的通信和控制。1.创建原语2.撤消原语3.阻塞原语4.唤醒原语5.挂起原语6.激活原语2.2进程控制2.2.1进程的创建2.2.2进程的终止2.2.3进程的阻塞与唤醒2.2.4进程的挂起与激活2.2.1进程的创建图2-9进程树1.进程图(ProcessGraph)进程图是用于描述一个进程的家族关系的有向树,树中的结点表示进程。子进程可以继承父进程的资源。撤消父进程时必须同时撤消子进程2.引起创建进程的事件

(1)用户登录

(2)作业调度

(3)提供服务

(4)应用请求3.进程的创建步骤(1)申请空白PCB(2)为新进程分配资源(3)初始化进程控制块(4)将新进程插入就绪队列2.2进程控制2.2.1进程的创建2.2.2进程的终止2.2.3进程的阻塞与唤醒2.2.4进程的挂起与激活2.2.2进程的终止1.引起进程终止的事件

1)正常结束

2)异常结束

3)外界干预2.进程的终止过程

(1)从PCB集合中检索出该进程的PCB,读出该进程的状态。

(2)若被终止进程正处于执行状态,应立即终止该进程的执行。

(3)若该进程还有子孙进程,应将其所有子孙进程予以终止。

(4)将被终止进程所拥有的全部资源,归还给其父进程,或者归还给系统。

(5)将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其他程序来搜集信息。2.2进程控制2.2.1进程的创建2.2.2进程的终止2.2.3进程的阻塞与唤醒2.2.4进程的挂起与激活2.2.3进程的阻塞与唤醒1.引起进程阻塞和唤醒的事件

(1)请求系统服务(2)启动某种操作(3)新数据尚未到达(4)无新工作可做2.进程阻塞过程进程调用阻塞原语block()把自己阻塞,立即停止执行,把进程控制块中的现行状态由“执行”改为阻塞,并将PCB插入阻塞队列。将本进程插入到具有相同事件的阻塞(等待)队列。调度程序进行重新调度,将处理机分配给另一就绪进程,并进行切换,亦即,保留被阻塞进程的处理机状态(在PCB中),再按新进程的PCB中的处理机状态设置CPU的环境。3.进程唤醒过程调用唤醒原语wakeup()将等待该事件的进程唤醒。唤醒原语执行的过程是把被阻塞的进程从等待该事件的阻塞队列中移出将其PCB中的现行状态由阻塞改为就绪将该PCB插入到就绪队列中2.2进程控制2.2.1进程的创建2.2.2进程的终止2.2.3进程的阻塞与唤醒2.2.4进程的挂起与激活2.2.4进程的挂起与激活1.进程的挂起系统将利用挂起原语suspend()将指定进程或处于阻塞状态的进程挂起。suspend()原语的执行过程首先检查被挂起进程的状态,若处于活动就绪状态,便将其改为静止就绪;对于活动阻塞状态的进程,则将之改为静止阻塞。把该进程的PCB复制到某指定的内存区域。若被挂起的进程正在执行,则转向调度程序重新调度。2.进程的激活过程系统将利用激活原语active()将指定进程激活。active()原语执行过程将进程从外存调入内存,检查该进程的现行状态,若是静止就绪,将之改为活动就绪;若为静止阻塞便将之改为活动阻塞。假如采用的是抢占调度策略,则每当有新进程进入就绪队列时,应检查是否要进行重新调度,即由调度程序将被激活进程与当前进程进行优先级的比较,如果被激活进程的优先级更低,就不必重新调度;否则,立即剥夺当前进程的运行,把处理机分配给刚被激活的进程。内容概述2.1进程的基本概念

2.2进程控制2.3进程同步

2.4经典进程的同步问题2.5进程通信2.6线程2.3进程同步

进程同步的主要任务是对多个相关进程在执行次序上进行协调,以使并发执行的诸进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性。2.3.1进程同步的基本概念2.3.2信号量机制2.3.3信号量的应用2.3.4管程机制2.3.1进程同步的基本概念1.两种形式的制约关系(1)间接相互制约关系源于资源共享。如A、B共享打印机,若A申请打印时,打印机已分配给B,则A只能阻塞,等B释放后再改为就绪,又称为“互斥”。(2)直接相互制约关系源于进程之间的合作关系。如进程A向B提供数据,当输入缓冲空时,B不能得到数据而阻塞;反之当缓冲满时,A无法写入而阻塞,又称为“同步”。2.临界资源定义:在一段时间内只允许一个进程访问的资源。例如:打印机、磁带机、卡片输入机、变量、表格、数据、指针、数组等。进程之间采取互斥方式实现对这些资源的共享。例子:

生产者-消费者(producer-consumer)问题是一个著名的进程同步问题。有一群生产者进程在生产产品,提供给消费者进程去消费。不能向满缓冲区投放产品,不能从空缓冲区中取产品。

一个数组缓冲池,有n个缓冲区。

buffer:array[0,1,…,n-1]ofitem

输入指针inin∶=(in+1)modn。输出指针outout∶=(out+1)modn。

counter:初始值为0。缓冲池中含有的产品数目。01n-1inout……producer:repeat{生产者进程}

…produceaniteminnextp;//生产一个产品…whilecounter=ndono-op;buffer[in]∶=nextp;//将产品放入缓冲区内

in∶=in+1modn;counter∶=counter+1;//缓冲池中产品数加一

untilfalse;consumer:repeat{消费者进程}

whilecounter=0dono-op;nextc∶=buffer[out];//从缓冲区中消费产品

out∶=(out+1)modn;counter∶=counter-1;//缓冲池中产品数减一

consumertheiteminnextc;//消费一个产品

untilfalse;

虽然上面的生产者程序和消费者程序,在分别看时都是正确的,而且两者在顺序执行时其结果也会是正确的,但若并发执行时,就会出现差错,问题就在于这两个进程共享变量counter。生产者对它做加1操作,消费者对它做减1操作,这两个操作在用机器语言实现时,常可用下面的形式描述:register1∶=counter;register2∶=counter;register1∶=register1+1;register2∶=register2-1;counter∶=register1;counter∶=register2;

假设:counter的当前值是5。如果生产者进程先执行左列的三条机器语言语句,然后消费者进程再执行右列的三条语句,则最后共享变量counter的值仍为5;反之,如果让消费者进程先执行右列的三条语句,然后再让生产者进程执行左列的三条语句,counter值也还是5,但是,如果按下述顺序执行,counter值是4。由于并发执行而失去封闭性。register1∶=counter;(register1=5)register1∶=register1+1;(register1=6)register2∶=counter;(register2=5)register2∶=register2-1;(register2=4)counter∶=register1;(counter=6)counter∶=register2;(counter=4)共享资源的访问互斥3.临界区不论是硬件临界资源还是软件临界资源,多个进程必须互斥地对它进行访问。在每个进程中访问临界资源的那段代码称为临界区。每个进程进入临界区之前应先对欲访问的临界资源进行检查,看是否正在被访问。如果此刻该临界资源未被访问,该进程可进入临界区,并设置它正在被访问的标志,在临界区之前执行的这段代码称为进入区。在临界区后面也要加上一段代码,用于将临界区被访问的资源恢复为未被访问的标志,称为退出区。可把一个访问临界资源的循环进程描述如下:repeat

criticalsection; {临界区}remaindersection; {剩余区}untilfalse;entrysectionexitsection{进入区}{退出区}4.同步机制应遵循的规则(1)空闲让进:当无进程处于临界区时,应允许一个进程进入临界区,以有效利用临界资源。(2)忙则等待:当有进程进入临界区时,其他进程必须等待。(3)有限等待:对要求访问临界资源的进程,应保证在有限时间内进入自己的临界区,防止“死等”。(4)让权等待:当进程不能进入其临界区时,应立即释放处理机,防止“忙等”,不能一直用语句判断能不能进,占用处理机。2.3进程同步2.3.1进程同步的基本概念2.3.2信号量机制2.3.3信号量的应用1965年,荷兰学者Dijkstra提出的信号量(Semaphores)机制是一种有效的进程同步工具,所以P、V分别是荷兰语的test(proberen)和increment(verhogen)。信号量机制已从整型信号量发展为记录型信号量、AND型信号量,又进一步发展为信号量集。信号量就是OS提供的管理公有资源的有效手段。信号量代表可用资源实体的数量。2.3.2信号量机制1.整型信号量除初始化外,仅能通过两个标准的原子操作wait(S)和signal(S)来访问。也称为P、V操作。wait和signal操作可描述为:wait(S):whileS≤0dono-op; S:=S-1;signal(S):S:=S+1;wait(S)和signal(S)是原子操作,因此它们在执行时是不可中断的。另外,信号量只能通过原语操作来访问,不能被进程调度所打断。有“忙等”现象。可把一个访问临界资源的循环进程描述如下:repeat

criticalsection; {临界区}remaindersection; {剩余区}untilfalse;entrysectionexitsectionP(S)或wait(S);V(S)或signal(S);{进入区}{退出区}2.记录型信号量记录型信号量(也称资源信号量)机制,则是一种不存在“忙等”现象的进程同步机制,它采用了记录型的数据结构。在采取了“让权等待”的策略后,又会出现多个进程等待访问同一临界资源的情况。为此,在信号量机制中,除了需要一个用于代表资源数目的整型变量value外,还应增加一个进程链表L,用于链接上述的所有等待进程。typesemaphore=recordvalue:integer;//资源数目

L:listofprocess;//进程链表指针

endprocedurewait(S)varS:semaphore;beginS.value:=S.value-1;ifS.value<0thenblock(S.L);endproceduresignal(S)varS:semaphore;beginS.value:=S.value+1;ifS.value≤0thenwakeup(S.L);end请求一个单位的该类资源该类资源数减少一个自我阻塞,放弃处理机释放一个单位资源该类资源增加一个唤醒进程3.AND型信号量

在有些任务中,一个进程先要获得多个共享资源后才能执行,若进程A和B都要申请D和E两种资源,设信号量Dmutex和Emutex的初值均为1在两个进程中都要包含两个对Dmutex和Emutex的操作,即processA: processB:P(Dmutex); P(Emutex);P(Emutex); P(Dmutex);若进程A和B按下述次序交替执行P操作:processA:P(Dmutex);于是Dmutex=0processB:P(Emutex);于是Emutex=0processA:P(Emutex);于是Emutex=-1A阻塞

processB:P(Dmutex);于是Dmutex=-1B阻塞

AND同步机制的基本思想是:将进程在整个运行过程中需要的所有资源,一次性全部地分配给进程,待进程使用完后再一起释放。只要尚有一个资源未能分配给进程,其它所有可能为之分配的资源,也不分配给他。亦即,对若干个临界资源的分配,采取原子操作方式:要么全部分配到进程,要么一个也不分配。由死锁理论可知,这样就可避免上述死锁情况的发生。为此,在P操作中,增加了一个“AND”条件,故称为AND同步,或称为同时P操作,

即SP(Simultaneouswait)定义如下:SP:Swait(S1,S2,…,Sn)ifSi≥1and…andSn≥1then{每个资源都可用}fori:=1tondoSi:=Si-1;{分配所有资源}endforelse{否则,将进程放到等待资源Si的队列中}

“阻塞”(去第1个Si<1的“等待Si”的阻塞队列中排队,并置它的程序计数器于SP操作的起始点)endifSV:Ssignal(S1,S2,…,Sn)fori:=1tondoSi=Si+1;{释放所有资源}

“唤醒”(所有“等待Si”的阻塞进程,置为“就绪”状态,移到就绪队列中)endfor;4.信号量集:一次申请多个资源在记录型信号量机制中,P(S)和V(S)操作仅能对信号量施以加1或减1操作,意味着每次只能获得或释放一个单位的临界资源,效率较低。在有些情况下,当资源数量低于某下限值时便不予分配。因而,在每次分配之前,都必须测试该资源的数量,看其是否大于下限值。在对AND型信号量机制扩充的基础上,形成一般化的“信号量集”机制。SP:Swait(S1,t1,d1,…,Sn,tn,dn)ifSi≥t1and…andSn≥tnthenfori:=1tondoSi:=Si-di;{一次分配d个资源}endforelse

“阻塞”(去第1个Si<ti的“等待Si”的阻塞队列中排队)endif

SV:Ssignal(S1,d1,…,Sn,dn)fori:=1tondoSi:=Si+di;{释放所有资源}“唤醒”(所有“等待Si”的阻塞进程,置为“就绪”状态,移到就绪队列中)endfor;一般“信号量集”的几种特殊情况:(1)SP(S,d,d)。此时在信号量集中只有一个信号量S,但允许它每次申请d个资源,当现有资源数少于d时,不予分配。

(2)SP(S,1,1)。此时的信号量集已蜕化为一般的记录型信号量(S>1时)或互斥信号量(S=1时)。

(3)SP(S,1,0)。这是一种很特殊且很有用的信号量操作。当S≥1时,允许多个进程进入某特定区;当S变为0后,将阻止任何进程进入特定区。换言之,它相当于一个可控开关。wait(S):whileS≤0dono-op; S:=S-1;signal(S):S:=S+1;procedurewait(S)varS:semaphore;beginS.value:=S.value-1;ifS.value<0thenblock(S.L);endproceduresignal(S)varS:semaphore;beginS.value:=S.value+1;ifS.value≤0thenwakeup(S.L);end记录型信号量:整型信号量:2.3进程同步2.3.1进程同步的基本概念2.3.2信号量机制2.3.3信号量的应用2.3.3信号量的应用1.利用信号量实现进程互斥Varmutex:semaphore:=1;//信号量初始值为1beginparbeginprocess1:begin repeat

P(mutex);//占用资源

criticalsection

V(mutex);

//释放资源

remainderseetion untilfalse; endprocess2:begin repeat

P(mutex); criticalsection

V(mutex); remaindersection untilfalse; endparend利用信号量实现进程互斥利用整型信呈量机制实现进程互斥时应注意,P(mutex)和V(mutex)必须成对出现。缺少P(mutex)会导致系统混乱,不能保证对临界资源的互斥访问。缺少V(mutex)将会使临界资源永远不被释放,从而使因等待该资源而阻塞的进程不再被唤醒。2.利用信号量实现前趋关系设有两个并发进程P1和P2。P1中有语句S1,P2中有语句S2,希望在执行完S1后执行S2。进程P1和P2共享一个公用信号量a,并赋初值为0。进程P1:S1;V(a);进程P2:P(a);S2;由于a被初始化为0,若P2先执行,必定阻塞,只有在进程P1执行完使S增为1后,P2才能执行S2操作。a图2-10前趋图举例Vara,b,c,d,e,f,g:semaphore:=0,0,0,0,0,0,0;beginparbegin beginS1;V(a);V(b);end; beginP(a);S2;V(c);V(d);end; beginP(b);S3;V(e);end; beginP(c);S4;V(f);end; beginP(d);S5;V(g);end; beginP(f);P(g);P(e);S6;end;parendendabcdegf图2-10前趋图举例内容概述2.1进程的基本概念

2.2进程控制2.3进程同步2.4经典进程的同步问题

2.5进程通信2.6线程2.4经典进程的同步问题2.4.1生产者—消费者问题2.4.2哲学家进餐问题2.4.3读者—写者问题未考虑进程的互斥与同步问题,会造成数据Counter的不定性。生产者—消费者问题是相互合作的进程关系的一种抽象。例如,在输入时,输入进程是生产者,计算进程是消费者;而在输出时,则计算进程是生产者,而打印进程是消费者。2.4.1生产者—消费者问题producer:repeat{生产者进程}

…produceaniteminnextp;//生产一个产品…whilecounter=ndono-op;buffer[in]∶=nextp;//将产品放入缓冲区内

in∶=in+1modn;counter∶=counter+1;//缓冲池中产品数加一

untilfalse;consumer:repeat{消费者进程}

whilecounter=0dono-op;nextc∶=buffer[out];//从缓冲区中消费产品

out∶=(out+1)modn;counter∶=counter-1;//缓冲池中产品数减一

consumertheiteminnextc;//消费一个产品

untilfalse;1.利用记录型信号量解决生产者—消费者问题只要缓冲池未满,生产者便可将消息送入缓冲池。只要缓冲池未空,消费者便可从缓冲池中取走一个消息。互斥访问缓冲池。设置三个信号量:empty:表示可供使用的缓冲区数,其初值为n。full:表示放有消息的缓冲区数,其初值为0。mutex:互斥信号量,初值为1,表示各进程互斥进入临界区,保证任何时候只有一个进程使用缓冲区。Varmutex,empty,full:semaphore:=1,n,0;buffer:array[0,…,n-1]ofitem;in,out:integer:=0,0;beginparbeginproducer:{生产者进程}beginrepeat…

生产一条消息=>nextp;…P(empty);{empty减1}

P(mutex);buffer(in):=nextp;in:=(in+1)modn;{移动生产指针}

V(mutex);V(full);{full增1}untilfalse;endconsumer:{消费者进程}beginrepeatP(full);

P(mutex);nextc:=buffer(out);out:=(out+1)modn;

V(mutex);V(empty);

消费nextc中的一条消息;

untilfalse;endparendend在生产者—消费者问题中要注意以下几点:在每个程序中用于实现互斥的P(mutex)和V(mutex)必须成对地出现;对资源信号量empty

温馨提示

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

评论

0/150

提交评论