操作系统小结

第一章 操作系统导论

1.1 操作系统的目标及作用

1.1.2 操作系统的作用
  1. OS作为用户与计算机硬件系统之间的接口;
  2. OS作为计算机系统资源的管理者;
  3. OS实现了对计算机资源的抽象。

1.2 操作系统的发展过程

1.2.2 单道批处理系统

系统对作业的处理是成批进行的,但在内存中始终保持一道作业,故称为单道批处理系统。

1.2.3 多道批处理系统
多道程序设计的基本概念

在该系统中,用户所提交的作业先存放在外存上,并排成一个队列,称为“后备队列”,然后由作业调度程序按一定的算法,从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。由于同时在内存中装有若干道程序,这样便可以在运行程序A时,利用其因I/O操作而暂停执行时的CPU空档时间,再调度另一道程序B运行,同样可以利用程序B在I/O操作时CPU空档时间,再调度程序C运行,使多道程序交替地运行,这样便可以保持CPU处于忙碌状态。

1.2.4 分时系统

1、分时系统指:在一台主机上连接了多个配有显示器和键盘的终端并由所组成的系统,该系统允许多个用户同时通过自己的终端,以交互方式使用计算机,共享主机中的资源。

2、分时系统实现的关键问题

在多道批处理系统中,用户无法与自己的作业进行交互的主要原因是:作业都先驻留在外存上,即使以后被调入内存,也要经过长时间的等待后方能运行(用户无法与自己的作业进行交互)。为此,系统首先必须能提供多个终端,同时给多个用户使用;其次,当用户在自己的终断上键入命令,系统应该及时接收,并及时处理该命令,再将结果返回给用户,。此后用户可根据系统返回的响应情况,再继续键入下一条命令(此,即人机–交互)。

及时接收:要做到及时接收多个用户键入的命令或数据,只需在系统中配置一个多路卡即可。(例如,当主机上需要连接64个终端时,就配置一个64用户的多路卡) 多路卡作用:实现分时多路复用。即主机以很快的速度周期性地扫描各个终端,在每个终端处停留很短的时间(用于接收从终端发来的数据)。对于64用户的多路卡,用不到2秒的时间便可完成一次扫描,即主机能用不到2秒的时间分时接收各用户从终端上输入的数据一次。此外,为了能使从终端上输入的数据被依次逐条地进行处理,还需要为每个终端配置一个缓冲区(用来暂存用户键入的命令(或数据))

及时处理:为实现人–机交互,必须彻底地改变原来批处理系统的运行方式,转而采用下面的方式:

(1)作业直接进入内存。因为作业在磁盘上是不能运行的,故作业应直接进入内存。

(2)采用轮转运行方式,(如果一个作业独占CPU连续运行,那么其他的作业就没有机会被调度运行)为避免一个作业长期独占处理机,引入了时间片概念。一个时间片,就是一段很短的时间(如30ms)。系统规定每次作业只能运行一个时间片,然后就暂停该作业的运行,并立即调度下一个作业运行。如果在不长的时间内能使所有的作业都执行一个时间片的时间,便可以使每个用户都能及时地与自己的作业进行交互,从而可使用户的请求得到及时响应。

3、分时系统的特征

(1)多路性;(2)独立性;(3)及时性;(4)交互性。

1.2.5 实时系统

实时系统是指系统能及时响应外部事件的请求,在规定时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。

1.3 操作系统的基本特性

1.3.1 并发
1、并行与并发

并行性:指两个或多个事件在同一时刻发生;

并发性:指两个或多个事件在同一时间间隔发生。

在多道程序环境下,并发性是指在一段时间内宏观有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,微观上这些程序只能是分时地交替执行。(如:在1秒钟内,0~15ms程序 A 执行15~30ms程序 B 运行,30~45ms程序 C 运行,45~60ms 程序 D 运行,该状况下宏观上有四道程序在同时运行,但在微观上,程序A、B、C、D是分时地交替执行的)

2、引入进程

在一个未引入进程的系统中,在属于同一个应用程序的计算程序和I/O程序之间只能是顺序执行,即只有在计算程序执行告一段落后,才允许I/O程序执行;反之,在程序执行I/O操作时,计算程序也不能执行。但在为计算程序和I/O程序分别建立一个进程后,这两个进程便可并发执行。

进程:指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。多个进程之间可以并发执行和交换信息。

1.3.2 共享

OS环境下的资源共享或称为资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用

由于资源属性的不同,进程对资源复用的方式也不同,主要资源共享的方式有两种:

1、互斥共享方式

当进程A要访问某资源时,必须先提出请求,若此时该资源空闲,系统便可将之分配给请求进程A使用。此后若再有其他进程也要访问该资源,只要A未用完就必须等待。仅当A进程访问完并释放系统资源后,才允许另一进程访问的资源,称为临界资源(或独占资源)。

2、同时访问方式

系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。这里所谓的“同时”,在单处理机环境下是宏观意义上的,而微观上,这些进程对该资源的访问是交替进行的

并行和共享是多用户OS的两个最基本的特征。

1.3.3 虚拟

在早期,每一条物理信道只能供一对用户对话,为了提高通信信道的利用率而引人了“虚拟”技术。该技术是通过“空分复用”或“时分复用”技术,**将一条物理信道变为若干条逻辑信道,使原来只能供一对用户的物理信道,变为能供多个用户同时通话的逻辑信道。

1、时分复用技术

在计算机领中,广泛利用时分复用技术来实现虚拟处理机、虚拟设备等,使资源的利用率得以提高。时分复用技术能提高资源利用率的根本原因在于,它利用某设备为一用户服务的空闲时间,又转去为其他用户服务,使设备得到最充分的利用。

(1)虚拟处理机技术:利用多道程序设计技术,为每道程序建立至少一个进程,让多道程序并发执行,此时虽然系统中只有一台处理机,但通过时分复用的方法,能实现同时(宏观上)为多个用户服务,使每个终端用户都认为是有一个处理机在专门为他服务。亦即,利用多道程序设计技术,可将一台物理上的处理机虚拟为多台逻辑上的处理机,在每台逻辑处理机长运行一道程序,我们把用户所感觉到的处理机称为虚拟处理器。

(2)虚拟设备技术:将一台物理I/O设备虚拟为多台逻辑上的I/O设备,并允许每个用户占用一台逻辑上的I/O设备。这样便可使原来仅允许在一段时间内由一个用户访问的设备(即临界资源),变为允许多个用户"同时"访问的共享设备,即宏观上能"同时"为多个用户服务。如打印机等。

2、空分打印技术

指将一个频率范围比较宽的信道划分成多个频率范围较窄的信道(称为频带),其中的任何一个频带都仅供一对用户通话。

如果说:多道程序技术(时分复用技术)是通过利用处理机的空闲时间运行其它程序,提高了处理机的利用率,那么,空分复用技术则是利用存储器的空闲时间分区域存放和运行其它的多道程序,以此来提高内存的利用率。

但是单纯的空分复用存储器只能提高内存的利用率,并不能实现在逻辑上扩大存储器容量的功能,还必须引入虚拟存储技术才能达到此目的。虚拟存储技术在实质上是实现内存的分时复用,即它可以1通过分时复用内存的方式,使一道程序仅在远小于它的内存空间中运行。如:一个100MB的应用程序可以运行在30MB的内存空间,实质上就是每次只把用户程序的一部分调入内存运行,运行完成后将该部分换出,再换入另一部分到内存中运行,通过这样的置换功能,便实现了用户程序的各个部分分时地进入内存运行。

注意:虚拟的实现,如果是采用分时复用的方法,即对某一物理设备进行分时使用,设N是某物理设备所对应的虚拟的逻辑设备数,则每台虚拟设备的平均速度必然等于或低于物理涉设备的的 1 / N 。类似的,若空分实现虚拟1,此时一台虚拟设备平均占用的空间必然等于或低于物理设备所拥有空间的 1 / N。

1.3.4 异步

进程是以人们不可预知的速度向前推进的,此即进程的异步性。

1.4 操作系统的主要功能

1.4.1 处理机管理功能

在传统的多道程序系统中,处理机的分配和运行都是以进程为基本单位的,因而对处理机的管理归结为对进程的管理,其主要功能如下:

1. 进程控制

在多道程序环境下为使作业能并发执行,必须为每道作业创建一个或多个进程,并为之分配必要的资源。当进程运行结束时,应立即撤销该进,以便能及时收回进程所占用的各类资源,供其他进程使用,在设置有线程的OS中,进程控制还应包括一个进程创建若干个线程,以提高系统的并发性,因此,进程控制的主要功能也就是为作业创建进程、撤销(终止)已结束的进程,以及控制进程在运行过程中的状态转换。

2. 进程同步

为使多个进程能够有条不紊地运行,系统中必须设置相应的进程同步机制,该机制的主要任务是为多个进程(含线程)的运行进行协调。常用的协调方式有两种:①进程互斥方式,这是指诸进程在对临界资源进行访问时,应采用互斥方式;②进程同步方式,指在相互合作去完成共同任务的诸进程间,由同步机构对它们的执行次序加以协调。最简单的用于实现进程互斥的机制是为每个界资源配置一把锁W,当锁打开时,进程可以对该临界资源进行访问;而当锁关上时,则禁止进程访问该临界资源。而实现进程同步时,最常用的机制是信号量机制。

3. 进程通信

当有一组相互合作的进程去完成一个共同的任务时,在它们之间往往需要交换信息,例如,有输入进程、计算进程和打印进程三个相互合作的进程,输入进程负责将所输入的数据传送给计算进程;计算进程利用输入数据进行计算,并把计算结果传给打印进程;最后由打印进程把计算结果打印出来。进程通信的任务是实现相互合作进程之间的交换,

当相互合作的进程处于同一计算机系统时,通常在它们之间采用直接通信方式,即由源进程利用发送命令直接将消息(message)挂到目标进程的消息队列上,以后由目标进程利用接收命令从其消息队列中取出消息。

4. 调度

在传统OS中,调度包括作业调度和进程调度两步。

(1)作业调度

作业调度的基本任务是从后备队列中按照一定的算法选择出若干个作业,为它们分配运行所需的资源,在将这些作业调入内存后,分别为它们建立进程,使它们都可能获得处理机的就绪进程,并将它们插入就绪队列中。

(2)进程调度

进程调度的任务是从进程的就绪队列中按照一定的算法选出一个进程,将处理机分配给它,并为它设置运行现场,使其投入执行。

1.4.2 存储器管理功能

存储器管理的主要任务,是为多道程序的运行提供良好的环境,提高存储器的利用率,方便用户使用,并能从逻辑上扩充内存。其功能如下

1、内存分配

主要任务:

(1)为每道程序分配内存空间。

(2)提高存储器的利用率,尽量减少不可用的内存空间(碎片)。

(3)允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。

OS在实现内存分配时,可采取静态和动态两种方式:

(1)静态分配方式。每个作业的内存空间是在作业装入时确定的,在作业装入后的整个运行期间不允许该作业再申请新的内存空间,也不允许作业在内存中“移动”。

(2)动态分配方式,每个作业所要求的基本内存空间虽然也是在装入时确定的,但允许作业在运行过程中继续申请新的附加内存空间,以适应程序和数据的动态增长,也允许作业在内存中“移动”。

2、内存保护

功能 ①确保每道用户程序都仅在自己的内存空间内运行,彼此互不干扰。

		   ②绝不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其它程序中去执行。

为确保每道程序都只在自己的内存区中运行,必须设置内存保护机制。一种比较简单的内存保护机制是设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。在程序运行时,系统须对每条指令所要访问的地址进行检查,如果发生越界,便发出越界中断请求,以停止该程序的执行。

3、地址映射(有疑问)

在多道程序环境下,由于每道程序经编译和连接后所形成的可装入程序**其地址都是从0**开始的,但不可能将它们从“0”地址(物理)开始装入内存,致使(各程序阶段的)地址空间内的逻辑地址与其在内存空间中的物理地址并不相一致。为保证程序能正确运行,存储器管理必须提供地址映射功能,即能够将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。该功能应在硬件的支持下完成。

4、内存扩充

并非物理上扩大内存的容量,是借助于虚拟技术,从逻辑上扩充容量,为此,系统必须设置内存扩充机制(包含少量的硬件),用于实现下述功能:

(1)请求调入功能,系统允许在仅装入部分用户程序和数据的情况下,便能启动该程序运行。在程序运行中,若发要继续运行所需的程序和数据尚未装入内存,可向OS发出请求,由OS从磁盘中将所需部分调入内存,以便继续运行。

(2) 置换功能,若发现在内存中已无足够的空间来装入需要调入的程序和数据时,系统应将内存中的一部分暂时不用的程序和数据调至硬盘上,以腾出内存空间,然后再将所需调入部分装入内存。

1.4.3 设备管理功能

设备管理的主要任务有:

(1)完成用户进程提出的I/O请求,为用户进程分配所需的I/O设备,并完成指定的I/O操作。

(2)提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备。

功能:

1. 缓冲管理

如果在I/O设备和CPU之间引入缓冲,则可有效地缓和CPU和I/O设备速度不匹配的矛盾,提高了CPU的利用率,进而提高系统吞吐量。

2. 设备分配

基本任务是根据用户进程的I/O请求、系统现有资源以及按照某种设备分配策略,为之分其所需设备。如果在I/O设备和CPU之间还存在着设备控制器和I/O通道,则还需为分配出去的设备分配相应的控制器和通道,为实现分配,系统中应设置设备控制、控制器控制等数据结构(用于记录设备及控制器等的标识符和状态),根据这些表可以了解指定设备当前是否可用,是否忙碌,以供进行设备分配时参考。对独占设备的分配还应考虑到该设备被分配出去系统是否安全。在设备使用后,应立即由系统回收。

3. 设备处理

基本任务:实现CPU和设备控制器之间的通信(即由CPU向设备控制器发出I/O命令,要求它完成指定的I/O操作;反之,由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理)

1.4.4 文件管理功能

文件管理的主要任务是对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性。

1. 文件存储空间的管理

主要任务是为每个文件分配必要的外存空间,提高外存的利用率,进而提高文件系统的存、取速度。为此,系统中应设置相应的数据结构,用于记录文件存储空间的使用情况,以供分配存储空间时参考。还应具有对存储空间进行分配和回收的功能。

2. 目录管理

主要任务是为每个文件建立一个目录项,目录项包括文件名、文件属性、文件在磁盘上的物理位置等,并对众多的目录项加以有效组织,以方便的按名存取。即用户只需提供文件名,即可对该文件进行存取。目录管理还应能实现文件共享,如此,只需在外存上保留一份该共享文件的副本,此外,还应能提供快速的目录查询手段,以提高对文件检索的速度。

3. 文件的读/写管理和保护

(1)文件的读/写管理。该功能是根据用户的请求,从外存中读取数据,或将数据写入外存。在进行读/写时,系统先根据用户给出的文件名检索文件目录,从中获取文件在外存中的位置,然后,利用文件读/写指针,对文件进行读/写。一旦读/写完成,便修改读/写指针,为下一次读/写做好准备。由于读和写操作不会同时进行,故可合用一个读/写指针。

(2)文件保护。为了防止系统中的文件被非法窃取和破坏,在文件系统中必须提供有效的存取控制功能,以实现下述目标:①防止未经核准的用户存取文件;②防止冒名顶替存取文件;③防止以不正确的方式使用文件。

1.4.5 操作系统与用户之间的接口

为了方便用户对操作系统的使用,操作系统向用户提供了“用户与操作系统的接口”,该接口通常分为:

1. 用户接口

为了方便用户直接或间接地控制自己的作业,操作系统向用户提供了命令接口。用户可通过该接口向作业发出命令以控制作业的运行,该接口又进一步分为联机用户接口、脱机用户接口和图形用户接口三种。

(1)联机用户接口。为联机用户提供,它是由一组键盘操作命令及命令解释程序组成。当用户在终端或控制台上键入一条命令后,系统便立即转入命令解释程序,对该命令加以解释执行。在完成指定功能后系统又返回到终端或控制台上,等待用户键入下一条命令。这样,用户便可通过先后键入不同命令的方式来实现对作业的控制直到作业完成。

(2)脱机用户接口。为批处理作业的用户提供,用户用作业控制语言JCL把需要对作业进行控制和干预的命令事先写在作业说明书上,然后将它与作业一起提供给系统。当系统调度到该作业运行时,通过调用命令解释程序去对作业说明书上的命令逐条解释执行,直至遇到作业结束语句时系统才停止该作业的运行

(3)图形用户接口。图形用户接口采用了图形化的操作界面,用非常容易识别的各种图标(icon)来将系统的各项功能、各种应用程序和文件直观、逼真地表示出来。用户可以通过菜单(和对话框用移动鼠标选择菜单项的方式取代命令的键入,以方便、快捷地完成应用程序和文件的操作,从而把用户从繁琐1用单调的操作中解脱出来)。

2. 程序接口

程序接口是为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的唯一途径。它是由一组系统调用组成的,每一个系统调用都是一个能完成特定功能的子程序。

C语言编制的程序中,可直接使用系统调用

1.4.6 现代操作系统的新功能
1、 系统安全

(1)认证技术

(2)密码技术

(3)访问控制技术

(4)反病毒技术

2、 网络功能和服务

(1)网络通信

(2)资源管理

(3)应用互操作

3、 支持多媒体

(1)接纳控制功能。在多媒体中,为了保证同时运行多个实时进程的截止时间,需要对在系统中运行的软实时任务,即SRT(文本格式字幕)任务的数目、驻留在内存中的任务数目加以限制,为此设置了相应的接纳控制功能,如媒体服务器的接纳控制、存储器接纳控制和进程接纳控制。

(2)实时调度。多媒体系统中的每一个任务,往往都是一些要求较严格的、周期性的软实时任务SRT,如为了保证动态图像的连续性,图像更新的周期必须在40ms之内,因此在SRT调度时,不仅需要考虑进程的调度策略,还要考虑进程调度的接纳度等。

(3)多媒体文件的存储,为了存放多媒体文件,对OS最重要的要求是能把硬盘上的数据快速地传送到输出设备上。

1.5 OS结构设计

软件质量可用这样几个指标来评价:功能性、有效性、可靠性、易使用性、可维护性和易移植性。

1.5.2 客户/服务器模式(Client/Server Model)简介

客户/服务器模式可简称为C/S模式

1. 客户/服务器模式的由来、组成和类型

主要由三部分组成

(1)客户机:通常在一个LAN网络上连接有多台网络工作站(简称客户机),每台客户机都是一个自主计算机,具有一定的处理能力,客户进程在其上运行,平时它处理一些本地业务,也可发送一个消息给服务器,以请求某项服务。

(2)服务器:通常是一台规模较大的机器,其在驻留有网络文件系统或数据库系统等,它应能为网上所有的用户提供一种或多种服务。平时它一直处于工作状态,被动地等待来自客户机的请求,一旦检查到有客户提出服务请求,便去完成客户的请求,并将结果送回客户,如此,工作站中的用户进程与服务器进程就形成了客户/服务器关系。

(3)网络系统:是用于连接所有客户机和服务器,实现它们之间通信和网络资源共享的系统。

2. 客户/服务器之间的交互

在采用客户/服务器的系统中,通常是客户机和服务器共同完成对应用(程序)的处理。这时,在客户机和服务器之间就需要进行交互,即必须利用消息机制在这两者之间进行多次通信。一次完整的交互过程可分为以下四步:

(1)客户发送请求消息;(2)服务接收信息;(3)服务接收消息;(4)客户机接收消息。

3. 客户/服务器模式的优点
1.5.3 面向对象的程序设计技术简介

1)对象

在面向对象的技术中,是利用被封装的数据结构(变量)和一组对它进行操作的过程(方法)来表示系统中的某个对象的。

对象中变量(数据)对外是隐蔽的,因而外界不能对它直接进行访问,必须通过该对象中的一组方法(操作函数)对它进行访问。

2)对象类

利用对象类来定义一组大体相似的对象,一个类同样定义了一组变量和针对变量的一组方法,用它们来描述一组对象的共同属性和行为。类是在对象上的抽象,对象则是类的实例。对象类中所定义的变量在实例中均有具体的值。

3)继承

在面向对象的技术中可以根据已有类来定义一个新的类,新类被称为子类(B),原来的类被称为父类(A),继承是父类和子类之间共享变量和方法的机制,该机制规定子类自动继承父类中定义的变量和方法,并允许子类再增加新的内容。一个父类可以定义多个子类,子类又可以定义自己的子类,通过此途径可以生成一个继承的层次。另外,也允许一个子类有两个父类或多个父类,它可以从多个父类获得继承,此时称为"多重继承"。

1.5.4 微内核OS结构
1. 微内核操作系统的基本概念

1)足够小的内核

在微内核OS中,内核是精心设计的、能实现现代OS最基本核心功能的小型内核,微内核并非是一个完整的OS,而只是将操作系统中最基本的部分放入微内核,通常包含有:与硬件处理紧密相关的部分;②一些较基本的功能;③客户和服务器之间的通信。这些OS最基本的部分只是为构建通用OS提供一个重要基础,这样就可以确保把操作系统内核做的很小。

2)基于客户/服务器模式

3)应用“机制与策略分离”原理

所谓机制,是指实现某一功能的具体执行机构。而策略,则是在机制的基础上借助于某些参数和算法来实现该功能的优化,或达到不同的功能目标。

4)采用面向对象技术

2. 微内核的基本功能

1)进程(线程)管理

2)低级存储器管理

3)中断和陷入处理

第二章 进程的描述与控制

2.1 前驱图和程序执行

2.1.1 前驱图

前驱图,是一个有项无循环图,记为DAG,它用于描述进程之间执行的先后顺序。图中的每个节点可用来表示一个进程或程序段,乃至一条语句,结点间的有向边则表示两个结点之间存在偏序或前趋关系。进程(或程序)之间的前趋关系可用 " → \rightarrow "来表示,如果进程Pi和Pj存在前趋关系,可表示为(Pi,Pj) ∈   → \in \space \rightarrow   也可以写成Pi → \rightarrow Pj,表示Pj开始执行之前Pi必须完成。此时Pi是Pj的直接前趋,Pj是Pi的直接后继。

在前趋图中,把没有前趋的结点称为初始结点(Initial Node),把没有后继的结点称为终止结点(Final Node)。此外,每个结点还具有一个重量(weight),用于表示该结点所含有的程序量或程序的执行时间。、

注意:前趋图中是不允许有循环的,否则必然会产生不可能实现的前趋关系

2.1.2 程序顺序执行
1. 程序的顺序执行

通常,一个程序由若干个程序组成,每个程序段完成特定的功能,它们在执行时,都需要按照某种先后次序顺序执行,仅当前一程序段执行完后,才运行后一程序段。

2. 程序顺序执行时的特征

①顺序性:指处理机严格地按照程序所规定的顺序执行,即每一操作必须在下一个操作开始之前结束;

②封闭性:指程序在封闭的环境下运行,即程序运行时,独占全机资源,资源的状态(除初始状态外)只有本程序才能改变它,程序一旦开始执行,其执行结果不受外界因素影响;

③可再现性:指只要程序执行时的环境和初始条件相同,当程序重复执行时,不论它是从同到尾不停顿地执行还是“停停走走"地执行,都可获得相同的结果。再现性是程序是否可以并行执行重要的准则之一

2.1.3 程序的并发性

为提高系统资源的利用率,在系统中引入多道程序技术,使程序或程序段间能并发执行。注意:只有在不存在前趋关系的程序之间才有可能并发执行。

其特征:

① 间断性

② 失去封闭性

③ 不可再现性

2.2 进程的描述

2.2.1 进程的定义和特征
1. 进程的定义

由上文,程序并发性的特征,决定了通常的程序时不能参与并行执行的,否则,程序的运行也就失去了意义。为了能使程序并发执行,并且可以对并发执行的程序加以描述和控制,便引入“进程”概念。

为了使参与并发执行的每个程序(含数据)都能独立地运行,在操作系统中国必须为之配置一个专门的数据结构,称为进程控制块(Process Control Block,PCB),系统利用PCB来描述进程的基本情况和活动进程,进而控制和管理进程。这样,由程序段、相关的数据段和PCB三部分便构成了进程实体(又称进程映像),一般情况下,称其为进程。所谓创建进程,实质上是创建进程实体中的PCB;同理,撤销进程,实质上是撤销进程的PCB。

进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。

2. 进程的特征

(1)动态性;是进程的最基本的特性。动态性还表现在“它由创建而产生的,由调度而执行,由撤销而消亡。"进程实体有一定的生命期,而程序只是一组有序指令的集合,并存放于某种介质上,其本身并不具有活动的含义,因而是是静态的。

(2)并发性;指多个进程实体同存于内存中,且能在一段时间内同时运行。引入进程的目的也正是为了使其进程实体能和其他进程实体并发执行,而程序(没有引入PCB)是不能参与并发执行的。

(3)独立性;在传统的OS种,独立性是指进程实体是一个能独立运行、独立获得资源和独立接收调度的基本单位。凡未建立PCB的程序都不能作为一个独立的单位参与运行。

(4)异步性。是指进程是按异步方式运行的,即按各自独立的、不可预知的速度向前推进。未使进程在并发运行时虽具有异步性,但仍能保证进程并发执行的结果是可再现的,在OS中引进了进程的概念,并且配置相应的进程同步机制。

1. 进程的三种基本状态

由于多个进程在并发执行时共享系统资源,致使它们在运行过程中呈现间断性的运行规律,所以进程在其生命周期内可能具有多种状态,一般而言,每个进程至少应处于一下三种基本状态之一:

(1)就绪(Ready)状态。这是指进程已处于准备好运行的状态,即进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便立即执行。如果系统中有许多处于就绪状态的进程,通常将它们按一定的策略(如优先级策略)排成一个队列,称该队列为就绪队列。

(2)执行(Running)状态。这是指进程已获得CPU,其程序正在执行的状态,对任何一个时刻而言,在单处理机系统中,只有一个进程处于执行状态,而在多处理机系统中,有多个进程处于执行状态。

(3)阻塞(Block)状态。这是指正在进行执行的进程由于发生某事件(如I/O请求、申请缓冲区失败等)暂时无法继续执行时的状态,亦即进程的执行受到阻塞。此时引起进程调度,OS把处理机分配给另一个就绪进程,而让受阻进程处于暂停状态,一般讲这种暂停状态称为阻塞状态,有时也称为等待状态或封锁状态。通常系统将处于阻塞状态的进程也排成一个队列,称该队列为阻塞队列。实际上,在较大的系统中,为了减少队列操作的开销,提高系统效率,根据阻塞原因不同,会设置多个阻塞队列。

2. 三种基本状态的转换

1.处于就绪状态的进程,在调度程序为之分配了处理机之后便可执行,相应地,其状态就由就绪态转变为执行态;2.正在执行的进程(当前进程)如果因分配给它的时间片已用完而被剥夺处理机暂停执行时,其状态便由执行转为就绪;3.如果因发生某事件,致使当前进程的执行受阻(例如进程访问某临界资源,而该资源正在被其他进程访问时),使之无法继续执行,则该进程状态将由执行转变为阻塞。

image-20211017182815431

3. 创建状态和终止状态

为了满足进程控制块对数据及操作的完整性要求以及增强管理的灵活性,通常在系统中又为进程引入两种常见的状态:创建状态和终止状态。

1)创建状态

创建进程:首先由进程申请一个空白PCB,并向PCB中填写用于控制和管理进程的信息;然后为该进程分配运行时所必须的资源;最后,把该进程转入就绪状态并插入就绪队列之中。(但如果进程所需的资源尚不能得到满足,比如系统尚无足够的内存使进程无法装入其中,此时创建工作尚未完成,进程不能被调度运行,)于是把此时进程所处的状态称为创建状态。

2)终止状态

进程的终止也需要通过两个步骤,首先,是等待操作系统进行善后处理,最后将其PCB清零,并将PCB返还系统。当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结,它将进入终止状态,进入终止态的进程以后不能再执行,但在操作系统中依然保留一个记录,其中保存状态码和一些计时统计数据,供其他进程收集。一旦其他进程完成了对其信息的提取之后,操作系统将删除该进程,即将其PCB清零,并将该空白PCB返还系统。

image-20211017185353655

2.2.3 挂起操作和进程状态的转换

引入一个对进程的重要操作–挂起操作。当该操作作用于某个进程时,该进程将被挂起,意味着此时该进程处于静止状态。如果进程正在执行,它将暂停执行。若原本处于就绪状态,则该进程此时暂不接受调度。与挂起操作对应的操作是激活操作。

1. 挂起操作的引入

基于系统与用户的需要

(1)终端用户的需要:当终端用户在自己的程序运行期间发现有可以问题,希望暂停自己的程序的运行,使之停止下来,以便用户研究1其执行情况或程序进行修改。

(2)父进程请求:有时父进程希望挂起自己的某个子进程,以便考查和修改该子进程,或者协调各子进程间的活动。

(3)负荷调节的需要:当实时系统中的工作复负荷较重,可能已经影响到对实时任务的控制时,可由系统把一些不重要的进程挂起,以保证系统能正常运行。

(4)操作系统的需要:操作系统有时希望挂起某些进程,以便检查运行中的资源使用情况或进行记账。

2. 引入挂起原语操作后三个进程状态的转换

原语概念

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值