《操作系统》学习笔记

时间:2024.4.29

 《操作系统》学习笔记

汤承林

第1章  概述

本章介绍了操作系统的基本概念。主要包括:

计算机系统由硬件和软件两大部分组成,操作系统是计算机系统中的一种系统软件,它管理计算机系统的资源和控制程序的执行,改善人机界面和为其他软件提供支持。它的设计目标是使用户方便地使用计算机系统和使得计算机系统能高效地工作。

计算机配置操作系统的目的是提高资源利用率。

操作系统的形成和发展与计算机硬件和其他软件的发展密切相关。随着计算机应用的日益广泛,操作系统的功能也日趋完善,根据计算机系统的功能和应用,操作系统可分成几类:批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统。

批处理操作系统按照用户预先规定好的步骤控制作业的执行,实现计算机操作的自动化,无须人工干预。批处理多道系统还可以充分利用计算机系统的资源,缩短作业执行时间,提高系统的吞吐率。

分时操作系统支持多个终端用户同时以交互方式使用计算机系统,为用户在测试、修改和控制程序执行方面提供了灵活性。

实时操作系统是实现实时控制的系统,它由外部信号触发而工作,并在特定的时间内完成处理,且给出反馈信号。实时系统对可靠性和安全性的要求极高,不强求系统资源的利用率。

个人计算机系统都是使用微行计算机。比起大型机来,微行机既小又便宜。但是,个人计算机系统的资源和功能相对有限。为了满足较大规模的应用,可把若干台个人计算机系统构成计算机网络。根据计算机网络的结构、通信方式和资源管理方法,分别配置网络操作系统或分布式操作系统。

操作系统的资源管理功能可以分为四大部分:处理器管理、存储管理、文件管理、设备管理。

重点内容

(一)操作系统的定义

操作系统是一种管理计算机系统资源、控制程序执行、改善人机界面和为其他软件提供支持的系统软件。

(二)操作系统的类型

批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统、多机操作系统和嵌入式操作系统。其中前三种是基本的操作系统。

(四)操作系统的功能

操作系统负责管理计算机系统的所有资源,并调度这些资源的使用。具体来说,其主要功能有:处理器管理、存储管理、设备管理、文件管理。

考情分析

1.1  计算机系统概述

一、计算机系统

1、计算机系统定义:是按用户的要求接收和存储信息、自动进行数据处理并输出结果信息的系统。

2、计算机系统构成:硬件系统和软件系统。

软件系统:系统软件(操作系统、编译系统)、支撑软件、应用软件。

3、硬件系统组成:中央处理器(CPU)、主存储器、辅助存储器、各种输入/输出设备。

计算机之父:冯.诺依曼

冯.诺依曼的贡献:

(1)提出用二进制表示数;

(2)提出五大部件组成计算机;

(3)提出“存储程序”思想,即把程序和数据都存放在存储器,早期的程序是由开关控制实现的,数据是存放在存储器中。

二、操作系统

1、操作系统定义:是一种管理计算机系统资源、控制程序执行、改善人机界面和为其他软件提供支持的系统软件。

Ø  从用户观点理解,操作系统是人机交互接口;

Ø  从资源管理角度,操作系统是管理计算机的软、硬件资源;

Ø  从程序控制观点,操作系统控制计算机程序的执行。

总结为:

操作系统是:

(1)管理计算机的软件、硬件资源;

(2)合理组织计算机工作流程;

(3)提供方便用户操作的接口

和软件的集合。

计算机配置操作系统的目的是提高资源的利用率。

操作使用者认为操作系统认为操作是一组命令的集合,它接收输入的命令,程序设计人员认为操作系统是一组功能调用程序(系统调用)的集合。

2、操作系统两个主要设计原则:

(1)能使得计算机系统使用方便。即方便

(2)提高计算机工作效率。即效率

1.2 操作系统的发展

1、控制台:早期,程序的装入、调试以及控制程序的运行都是程序员通过控制台上的开关来实现。(第一阶段,人工阶段)

2、原始汇编系统:用汇编语言编写的程序称为源程序,它不能直接在机器上执行,只有通过汇编语言解释程序把源程序转换成用机器指令序列表示的目标程序后才能在计算机上运行。

3、设备驱动程序:是最原始的操作系统。是一种控制设备工作的程序。

4、管理程序:是初级的操作系统。是一种能对计算机硬件和软件进行管理和调度的程序。 (第二阶段)

5、操作系统:采用了SPOOLING的处理形式。

SPOOLING又称“斯普林”(翻译为联机的同时外围设备操作)。从本质上说,SPOOLING是把磁盘作为一个巨大的缓冲器。在一个计算问题开始之前,把计算所需要的程序和数据从读卡机或其他输入设备上预先输入到磁盘上存放。这样,在进行计算时不再需要访问读卡机等慢速的输入设备,而可以从速度快得多的磁盘上读取程序和数据。同样,对于计算的结果也是先在磁盘上缓冲存放,待计算完成后,再从打印机上打印出该计算问题的所有计算结果。(第三阶段)

操作系统发展的历史:

(1)无操作系统阶段(第一代)

 这个阶段有卡片、磁带机和打印机。通过各种开关操作计算机。

特点:①用户独占计算机②CPU等待人工操作

缺点:资源利用率低,CPU利用不充分(人机矛盾,随着计算机速度的提高日益显著)。

(2)管理程序阶段(第二代)

出现了编程语言:FORTRAN、COBOL。

第一个完整操作系统在IBM360上。

特点:①半自动方式②管理部分资源③资源可实现简单共享

这个阶段提供了一套控制命令——控制卡,以此来成批地处理用户程序,使其能自动有序执行。

缺点:CPU与I/O设备速度不匹配,系统效率较低。

(3)初级操作系统阶段(第三阶段)

出现大容量的磁盘,主存容量增大,CPU速度加快。

软件有了较大的发展。

联机输入输出:在主机控制之下的输入输出操作。只有一台主机。

脱机输入输出:一台主机,两台外围机,分开的输入输出操作。

采用多种典型技术:

①多道批处理技术:不完善,解决了人机矛盾及CPU与I/O设备速度不匹配,提高了资源利用率。多道程序设计技术利用并发挥了计算机硬件资源的并行能力。

②SPOOLING技术:预输入和缓输出(脱机输入输出)。(作业调度各程序调用井管理程序,井管理读程序(从输入井读)和井管理写程序(向输出井写))

③多道程序设计技术:内存若只有一道程序,若该程序请求I/O操作,则CPU处于等待I/O完成状态,即空闲。为改善CPU和利用率,同时把若干作业放入主存,允许其交替执行,共享系统的软、硬件资源。

(4)现代操作系统阶段(第四代)

代表性的UNIX(多用户分时操作系统)。

(5)智能计算和网络计算阶段。

1.3  操作系统的分类

按照操作系统所提供的服务进行分类,可分为批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统、多机操作系统和嵌入式操作系统等。其中批处理操作系统、分时操作系统、实时操作系统是基本的操作系统。

一、批处理操作系统

1、定义:用户为作业准备好程序和数据后,再写一份控制作业执行的说明书(作业说明书)。然后把作业说明书连同相应的程序和数据一起交给操作员。操作员将收到的一批作业的有关信息输入到计算机系统中等待处理,由操作系统选择作业,并按其操作说明书的要求自动控制作业的执行。采用这种批量化处理作业的操作系统称为批处理操作系统。

2、分类:

(1)批处理单道系统:一次只选择一个作业装入计算机系统的主存储器运行。

(2)批处理多道系统:允许多个作业同时装入主存储器,使中央处理器轮流地执行各个作业,各个作业可以同时使用各自所需要的外围设备。09年7月填空题中考了本知识点。

3、批处理多道系统优点:

(1)多道作业并行工作减少了处理器的空闲时间,即提高了处理器的利用率。

(2)作业调度可以按一定的组合选择装入主存储器的作业,只要搭配合理。

(3)作业执行过程中,不再访问低速的设备,而是直接从高速的磁盘上存取信息,从而缩短了作业执行时间,使单位时间内的处理能力得到提高。

(4)作业成批输入、自动选择和控制作业执行,减少了人工操作时间和作业交接时间,有利于提高系统的吞吐率。

4、缺点

(1)平均周转时间长(从进入系统到完成所经历的时间)一个作业一旦运行便运行到完成,使许多短作业的周转时间显著增长。

(2)不提供交互能力:用户将作业交给系统后,无法再与之交互作用,因此必须提供一份详细的作业说明书。

二、分时操作系统

1、定义:能使用户通过与计算机相连的终端来使用计算机系统,允许多个用户同时与计算机系统进行一系列的交互,并使得每个用户感到好像自己独占一台支持自己请求服务的计算机系统。具有这种功能的操作系统称为分时操作系统,简称分时系统。

2、分时技术:即把CPU时间划分成许多时间片,每个终端用户每次可以使用一个由时间片规定的CPU时间。这样,多个终端用户就轮流地使用CPU时间。如果某个用户在规定的一个时间片内还没有完成它的全部工作,这时也要把CPU让给其他用户,等待下一轮再使用一个时间片的时间,循环轮转,直至结束。

3、分时系统主要特点:

(1)同时性。允许多个终端用户同时使用一个计算机系统。

(2)独立性。用户在各自的终端上请求系统服务,彼此独立,互不干扰。

(3)及时性。对用户的请求能在较短时间内给出应答。 响应时间与用户数目和时间片长度有关。

(4)交互性。采用人机对话的方式工作。

4. 前台与后台

由分时系统控制的作业称为"前台"作业(终端作业),而那些由批处理系统控制的作业称为"后台"作业(批处理作业)。具体前台和后台的OS提高了系统的效率。

5、分时OS与多道批处理区别

(1)目标不同:批处理OS是提高系统效率,分时OSJ 对应用请求的快速响应。

(2)作业性质:批OS适用于需长时间的大型作业,分OS适用于时间较短的小作业。

(3)批OS可同时接收经合理安排的各种不同功能的作业,分时OS适合于运行执行相同功能的作业。

三、实时操作系统

1、定义:能使计算机系统接收到外部信号后及时进行处理,并且在严格的规定时间内处理结束,再给出反馈信号的操作系统称为实时操作系统,简称为实时系统。

2、实时操作系统的应用十分广泛,如控制科学实验、控制生产流水,监督病人的临床功能、监督和控制飞机的飞行状态,进行工业过程控制等。

3、设计实时系统注意点:

(1)要及时响应、快速处理。

(2)实时系统要求高可靠性和安全性,不强求系统资源的利用率。

4、实时OS特点

①及时性:首先必须考虑,其次才是资源的利用率,确保任何时候都能及时响应。

②可靠性:常用双工体制,两台计算机同时运行,一台为主机,另一台为备用机。

四、操作系统的发展

1、单用户微机操作系统:是指早期的微型计算机上运行的操作系统每次只允许一个用户使用计算机。

2、网络操作系统:为计算机网络配置的操作系统称为网络操作系统。网络操作系统把计算机网络中各台计算机系统有机地联合起来,为用户提供一种统一、经济而有效地使用各台计算机系统的方法,可使各台计算机系统相互间传送数据,实现各台计算机系统之间的通信以及网络中各种资源的共享。

3、分布式操作系统:为分布式计算机系统配置的操作系统称为分布式操作系统。分布式操作系统能使系统中若干台计算机相互协作完成一个共同的任务,或者说把一个计算问题可以分成若干个子计算,每个子计算可以在计算机系统中的各计算机上并行执行。

网络OS与分布式OS区别:

网络OS采用集中式,着重于信息共享,有专门的共享服务器(集中式),而分布式OS可把一个大作业分解成多个小任务运行于网络的多台计算机上,着重于并行处理(分布式)。

4、多机操作系统:为多处理器系统配置的操作系统称为多机操作系统。

5、嵌入式操作系统:是指运行在嵌入式系统中对各种部件、装置等资源进行统一协调、处理和控制的系统软件。(主要特点是微型化和实时性)

1.4 操作系统的特征

1、共享性

2、并发性

3、移植性

4、不确定性

1.6  操作系统的功能

1、操作系统的功能:(从资源管理的角度来分)

(1)处理器管理:对CPU进行管理。

(2)存储管理:对主存储器进行管理。

(3)文件管理:通过对磁盘进行管理,实现对软件资源进行管理。

(4)设备管理:对各类输入/输出设备进行管理。

(5)接口管理

2、操作系统为用户提供的使用接口:

(1)程序员接口:通过“系统调用”使用操作系统功能。(开发者,系统级,程序接口)

(2)操作员接口:通过操作控制命令提出控制要求。(应用者,用户级,命令接口)


第三章    处理器管理

内容概要

本章介绍了处理器管理的基本概念和方法。主要包括:

多道程序设计系统必须做好存储保护、程序浮动及资源分配与调度工作。

多道程序设计系统利用和发挥了处理器与外围设备以及外围设备之间的并行工作能力,从而极大地提高了处理器和其他各种资源的利用率,增加了单位时间内的算题能力。但是,多道程序设计可能会延长程序的执行时间。尤其要注意的是:并行工作道数与系统效率不成正比。

把一个程序在一个数据集合上的一次执行称为一个“进程”。进程是有生命期的,每个进程都有一个进程控制块记录进程的执行情况。随着进程状态的变化,进程经常要从一个队列退出,进入另一个队列,直至进程消亡。

重点内容

(一)多道程序设计

1. 让多个计算问题同时装入一个计算机系统的主存储器并行执行,这种程序设计技术称为多道程序设计。

2.注意三个问题

(1)存储保护;

(2)程序浮动;

(3)资源的分配和调度。 调度分为处理器调度(或进程调度)和作业调度。

对具有处理器与外设并行工作能力的计算机系统来说,采用了多道程序设计技术后,能提高整个系统的效率。具体表现为:

(1)提高了处理器的利用率。

(2)充分利用外围设备资源。

(3)发挥了处理器与外围设备以及外围设备之间的并行工作能力。

采用多道程序设计能改善资源使用情况,提高系统效率,但是要注意两个问题:

(1)可能延长程序执行时间。

(2)并行工作道数与系统效率不成正比。

3. 引入多道程序设计的目的

(1)提高了系统的效率,实现了处理器和外设的并行工作。

(2)增加了系统吞吐量(单位时间内运行作业的道数),但作业周转时间(作业的完成时间与作业提交时间的差)延长了。

(二)进程管理

把一个程序在一个数据集上的一次执行称为一个进程。

引入进程的原因有以下两个方面:

(1)提高资源的利用率。

(2)正确描述程序的执行情况。

进程有如下一些基本属性:

(1)进程的动态性。

(2)多个不同的进程可以包含相同的程序。

(3)进程可以并发执行。

(4)进程有三种基本状态。

为了便于管理进程,我们按进程在执行过程中不同时刻的不同情况定义三种基本状态:

(1)等待态—等待某一事件。

(2)就绪态—等待系统分配处理器以便运行。

(3)运行态—正在占用处理器运行。

根据进程的四个基本属性可概括出进程具有如下三个特性:

1.动态性:进程是程序的一次执行过程,在执行过程中进程状态不断发生变化。

2.并发性:若干进程是可同时执行的,它们轮流占用处理器交替执行。

3.异步性:进程的执行速度取决于自身与外界原因以及能占用处理器的时间,因此以不可预知的速度向前推进。

(三)进程队列

为了标识进程,记录各个进程执行时的情况,操作系统在创建进程时为每一个进程设置一个进程控制块。进程控制块的英文名称是Process Control Block,缩写为PCB。

进程控制块(PCB)作用:

①标识进程

②记录进程执行

在一般情况下,进程控制块应包含四类信息:

(1)标识信息

①标识每个进程的进程ID。

②对进程标识的说明,进程名。

(2)说明信息

①进程的当前状态(运行、就绪和等待之一),若是等待态,则需要进一步说明具体的等待原因。

②“进程的程序存放的位置”指出该进程的程序存放在哪里?

③“进程数据的存放位置”指出进程执行时的工作区,用来存放被处理的数据集和处理结果。。

(3)现场信息

包括控制寄存器(程序计数器(PC)、指令寄存器(IR)、数据缓冲器(MDR)、地址缓冲器(MAR))、通用寄存器(R0—Rn-1)和程序状态字寄存器(如断点信息)(PSW)。

(4)管理信息。

包括进程的管理和调度信息。如进程优先级(进程占用CPU的先后次序)。“队列指针”指出处于状态的另一个进程的进程控制块地址。进程队列就是进程控制块的链表。

程序的一个静态的实体,进程是一个动态的实体。

一个程序在一个数据集上的一次运行称为一个进程。 进程是有生命的,从创建而产生,到撤销而消亡。

操作系统中往往设计一些完成特定功能的,不可中断的过程,这些不可中断的过程称为原语。用于控制进程的原语有:

1.“创建”原语:为一个程序分配一个工作区和建立一个进程控制块,并置该进程为就绪状态。

2.“撤消”原语:一个进程完成工作后,收回它的工作区和进程控制块。

3.“阻塞”原语:进程运行过程中发生等待事件时,把进程状态改为等待态。

4.“唤醒”原语:当进程等待的事件发生时,把进程的状态改为就绪态。

进程从等待态到就绪态,没有进行进程的切换。

进程的就绪队列可能不止一个,可以按优先级的高、中、低分成三个就绪队列。同样,等待队列也可能不止一个。

进程从等待队列到就绪队列,就是把PCB从等待队列删除,插入到就绪队列中。

进程队列分单向链表和双向链表,队尾指针“0”表示不指向任何位置。

(七)处理器调度

如何对资源进行管理和分配是操作系统中的一个重要问题。处理器调度担负着对处理器的分配工作,它将决定谁能先占用处理器,一次能占用处理器多长时间。

在设计调度算法时,可考虑如下原则:

(1)公平性——对用户公平,不能无故或无限制地拖延一个作业的执行。

(2)平衡资源使用——尽可能地使系统资源都处于忙碌。

(3)极大的流量——在单位时间内为尽可能多的作业服务,保证计算机系统的吞吐能力。

一些常用的作业调度算法:

(1)先来先服务算法;(2)计算时间短的作业优先算法;(3)响应比高者优先算法;(4)优先级调度算法;(5)均衡调度算法。

常用的进程调度算法:(1)先来先服务调度算法;(2)最高优先级调度算法;(3)时间片轮转调度算法;(4)分级调度算法;

UNIX是一个分时操作系统,但它对进程的调度不是采用时间片轮转法,而是采用了动态优先数调度算法。优先数越小的进程其优先权越高。

考情分析

本章主要考查多道程序设计时三方面注意问题,进程的定义,进程的三种状态和其转换,进程控制块的内容,进程的原语,unix进程控制块的内容,进程状态中断的类型,中断的响应,中断的优先级,作业调度和进程调度的方法。题型有单选题、多选题、填空题、简答题和综合题。

2.1  进程管理

2.1.1 多道程序设计

一、什么是多道程序设计

1、多道程序设计定义:让多个计算问题同时装入一个计算机系统的主存储器并行执行,这种程序设计技术称为多道程序设计。这种计算机系统称为多道程序设计系统,简称为多道系统。

2、注意事项:

(1)存储保护:必须提供必要的手段使得在主存储器中的各道程序只能访问自己的区域,避免相互干扰。

(2)程序浮动:是指程序可以随机地从主存储器的一个区域移动到另一个区域,程序被移动后,仍丝毫不影响它的执行。(可集中分散的空闲区,提高主存空间的利用率)

(3)资源的分配和调度:多道程序竞争使用处理器和各种资源时,多道程序设计的系统中必须对各种资源按一定的策略进行分配和调度。

二、为什么要采用多道程序设计

1、程序的顺序执行:处理器和外围设备,外围设备之间都得不到高效利用。

2、程序的并行执行:让程序的各个模块可独立执行、并行工作,从而发挥处理器与外围设备之间的并行工作能力。

3、多道并行执行:在一个程序各个模块并行工作的基础上,允许多道程序并行执行,进一步提高处理器与外围设备之间的并行工作能力,具体表现在:

(1)提高了处理器的利用率。

(2)充分利用外围设备资源。

(3)发挥了处理器与外围设备以及外围设备之间的并行工作能力。(注:并行:宏观可同时执行,微观也是同时执行。)

三、采用多道程序设计应注意的问题

1、可能延长程序执行时间:多道程序设计能提高资源使用效率,增加单位时间的算题量。但是对每个计算问题来说,从算题开始到全部完成所需的计算时间可能要延长。

2、并行工作道数与系统效率不成正比:并不是并行工作的道数越多,系统的效率就越高,而要根据系统配置的资源和用户对资源的要求而定。

(1)主存储器空间的大小限制了可同时装入的程序数量。

(2)外围设备的数量也是一个制约条件。

(3)多个程序同时要求使用同一资源的情况也会经常发生。

2.1.2进程概述的引入

一、进程的定义

1、程序:具有独立功能的一组指令或一组语句的集合,或者说是指出处理器执行操作的步骤。09年7月解答题中考查了本知识点。

2、进程:是指一个程序在一个数据集上的一次执行。

3、程序和进程的区别:程序是静态的文本,进程是动态的过程。进程包括程序和数据集。

二、为什么要引入进程

1、提高资源的利用率:一个程序被分成若干个可独立执行的程序模块,每个可独立执行的程序模块的一次执行都可看做一个进程,通过进程的同步可提高资源的利用率。

2、正确描述程序的执行情况:可以方便描述一个程序被执行多次时,各自的执行进度。

2.1.3进程的状态

进程有如下一些基本属性:

(1)进程的动态性。

(2)多个不同的进程可以包含相同的程序。

(3)进程可以并发执行。

(4)进程有三种基本状态。

为了便于管理进程,我们按进程在执行过程中不同时刻的不同情况定义三种基本状态:

(1)等待态—等待某一事件。

(2)就绪态—等待系统分配处理器以便运行。

(3)运行态—正在占用处理器运行。

进程状态变化的几种情况有:

(1)运行态→等待态

(2)等待态→就绪态

(3)运行态→就绪态

(4)就绪态→运行态  

根据进程的四个基本属性可概括出进程具有如下三个特性:

1.动态性:进程是程序的一次执行过程,在执行过程中进程状态不断发生变化。

2.并发性:若干进程是可同时执行的,它们轮流占用处理器交替执行。

3.异步性:进程的执行速度取决于自身与外界原因以及能占用处理器的时间,因此以不可预知的速度向前推进。

2.1.4进程控制

1、进程控制块作用:即PCB,是进程存在的标识。

2、进程控制块构成:

(1)标识信息:用来标识进程的存在和区分各个进程。进程名。

(2)说明信息:用于说明本进程的情况。包括:进程状态、等待原因、进程程序存放位置、进程数据存放位置。

(3)现场信息:用来当进程由于某种原因让出处理器时,记录与处理器有关的各种现场信息。包括:通用寄存器内容、控制寄存器内容、程序状态字寄存器内容。

(4)管理信息:用来对进程进行管理和调度的信息。包括:进程优先级、队列指针。

2.1.5进程队列

1、进程队列概念:为了便于管理,经常把处于相同状态的进程链接在一起,称为进程队列。

2、进程队列分类:

(1)就绪队列:是指把若干个等待运行的进程(就绪进程)按一定的次序链接起来的队列。

(2)等待队列:是指把若干个等待资源或等待某些事件的进程按一定的次序链接起来的队列。

3、队列实现方法:只需将状态相同的进程控制块链接起来就可以。链接的方式包括单向链接和双向链接。

4、队列管理:是指系统中负责进程入队和出队的工作。

(1)入队:是指一个进程进入到指定的队列。

A.从队首入队成为新的队首进程。

B.从队尾入队成为新的队尾进程。

C.插入到队列中某两个进程之间。

(2)出队:是指一个进程从所在的队列中退出。也存在三种情况。

2.1.6进程的创建和撤销

1、进程创建:当系统为一个程序分配一个工作区(存放程序处理的数据集)和建立一个进程控制块后就创建了一个进程。刚创建的进程其状态为就绪状态(若执行过程中还缺少资源可以再将其转为等待状态)。

2、进程的撤销:当一个进程完成了特定的任务后,系统收回这个进程所占的工作区和取消该进程的进程控制块,就撤销了该进程。

3、原语:是操作系统设计用来完成特定功能且不可中断的过程。包括:创建原语、撤销原语、阻塞原语、唤醒原语。

1.“创建”原语:为一个程序分配一个工作区和建立一个进程控制块,并置该进程为就绪状态。

2.“撤消”原语:一个进程完成工作后,收回它的工作区和进程控制块。

3.“阻塞”原语:进程运行过程中发生等待事件时,把进程状态改为等待态。

4.“唤醒”原语:当进程等待的事件发生时,把进程的状态改为就绪态。

2.1.7进程的调度

1、进程切换:是指一个进程让出处理器由另一个进程占用处理器的过程。引起进程切换的事件:

(1)一个进程从运行状态变成等待状态。

(2)一个进程从运行状态变成就绪状态。

(3 )一个进程完成工作后被撤销。

2、进程调度算法:

(1)先来先服务调度算法

(2)最高优先级调度算法

(3)时间片轮转调度算法

2.2  线程

一、什么是线程

1、线程概念:是进程中可独立执行的子任务。

2、线程属性:

(1)每个线程有一个唯一的标识符和一张线程描述表。线程描述表记录了线程执行时的寄存器和栈等现场状态。

(2)不同的线程可以执行相同的程序,即同一个服务程序被不同的用户调用时,操作系统为它们创建成不同的线程。

(3)同一进程中的各个线程共享分配给进程的主存地址空间。

(4)线程是处理器的独立调度单位,多个线程是可以并发执行的。

(5)一个线程被创建后,便开始了它的生命期,直至终止。线程在生命期内会经历等待态、就绪态和运行态等各种状态变化。

3、线程和进程的区别:进程是资源分配单位,而线程是调度和执行单位。每个进程都有自己的主存空间,同一个进程中的各线程共享该进程的主存空间,进程中的所有线程对进程的整个主存空间都有存取权限。

二、进程与线程

1、进程缺点:

(1)每个进程要占用一个进程控制块和一个私有的主存区域,开销较大;

(2)进程之间的通信必须由通信机制来完成,速度较慢;

(3)进程增多会给调度和控制带来复杂性,增加了死锁的机会。

2、线程优点:

(1)创建线程无须另外分配资源,因而创建线程的速度比创建进程的速度快,且系统开销小。

(2)线程间的通信在同一地址空间中进行,故不需要额外的通信机制,使通信更简便,信息传递速度也更快。

(3)线程能独立执行,能充分利用和发挥处理器与外围设备并行工作的能力。

2.3  作业管理

一、处理器的两级调度

1、作业调度:是指从输入井中选取后备作业装入主存储器的工作。(作业调度应遵循的必要条件:系统现有的尚未分配的资源可以满足被选作业的资源要求。)

2、进程调度:是指从就绪进程中选取一个进程,让它占用处理器的工作。→作业调度和进程调度的关系:任何一个作业,只有先被作业调度选中才有机会去竞争处理器,然后仅当被进程调度选中时才能占用处理器。

二、作业的状态

作业的状态:提交、后备、运行(进程的三个状态)和完成状态。

三、批处理作业的调度算法

1、设计调度算法原则09年4月选择题就考查本知识点。

(1)公平性:对用户公平,不能无故或无限制地拖延一个作业的执行。

(2)平衡资源使用:尽可能地使系统都处于忙碌。

(3)极大的流量:在单位时间内为尽可能多的作业服务,保证计算机系统的吞吐能力。

2、周转时间:假定作业 i 进入输入井的时间为 Si 。若它被选中执行,得到计算结果的时间为 Ei ,那么它的周转时间就定义为Ti=Ei-Si。

3、作业调度算法:

(1)先来先服务算法

(2)计算时间短的作业优先算法

(3)响应比高者优先算法:响应比=等待时间/计算时间。

(4)优先级调度算法

(5)均衡调度算法


第3章    存储管理

内容概要

本章介绍了计算机系统存储器管理的基本概念和方法。主要包括:

重定位的概念、固定分区存储管理、可变分区存储管理、页式存储管理、单用户连续存储管理和虚拟存储器。

主存储器是可被处理器直接访问的,处理器是按绝对地址访问主存储器的。为了使用户编制的程序能存放在主存储器的任意区域执行,用户使用逻辑地址编辑程序,即用户使用了逻辑上的主存储器。存储管理必须为用户分配一个物理上的主存空间,于是就有一个从逻辑空间到物理空间的转换问题。具体地说,是要把逻辑地址转换成绝对地址,把这样的地址转换工作称为重定位。

存储管理必须合理地分配主存空间,为了避免主存中的各程序相互干扰还必须实现存储保护,为了有效利用主存空间允许多个作业工享程序和数据,各种存储管理方式实现这些功能的方法是不同的,并且都有相应的硬件做支持。

实现虚拟存储器后,从系统的角度看提高了主存空间的利用率,从用户的角度看,编制程序不受主存实际容量的限制。虚拟存储器的容量由地址结构决定,若地址用n位表示,则虚拟存储器的最的容量为2n。虚拟存储器的实现借助于大容量的辅助存储器(例如磁盘)存放虚存中的实际信息,操作系统利用程序执行在时间上和空间上的局部性特点把当前需要的程序段和数据装入主存储器,且利用表格(例如页表、段表)构造一个用户的虚拟空间。硬件根据建立的表格进行地址转换或发出需进行调度的中断信号(例如缺页中断、缺段中断等)。操作系统处理这些中断事件时,选择一种合适的调度算法对主存储器和辅助存储器中的信息进行调出和装入,尽可能地避免“抖动”。

UNIX采用页式虚拟存储管理,并把编程序时用的地址称为虚拟地址。

重点内容

(一)概述

现代计算机系统都采用多级存储体系。这个存储体系主要包括主存储器、辅助存储器、高速缓冲存储器和寄存器。

为了提高处理器的利用率和系统的工作效率,主存储器中经常存放多个程序和数据。许多计算机系统都采用二级存储的办法,利用辅助存储器提供的大容量存储空间,存放准备运行的程序和数据,当需要时或主存空间允许时,随时将它们读入主存储器。

存储管理是对主存空间的用户区进行管理,其目的是尽可能地方便用户和提高主存空间的利用率。具体地说,存储管理的功能如下:

1.主存空间的分配与回收。(分配回收)

2.实现地址转换。(地址映射)

3.主存空间的共享与保护。(共享保护)

4.主存空间的扩充。 (主存扩充)

(二)重定位

绝对地址:主存空间的地址编号。与绝对地址对应的主存空间称为物理地址空间。

相对地址:用户程序中使用的地址。与相对地址对应的存储空间称为逻辑地址空间。

为了保证作业的正确执行,必须根据分配给作业的主存空间对作业中指令和数据的存放地址进行转换,即要把相对地址转换成绝对地址。把相对地址转换成绝对地址的工作称为重定位或地址转换。

重定位的方式可以有静态重定位和动态重定位两种。

(三)单用户连续存储管理

这是一种最简单的存储管理方式,系统是将整个主存空间除了给操作系统划分出一块空间外,其余部分的空间都分配给一个作业使用。个人计算机可采用此种管理方法,它不适宜多道程序设计系统。

如果作业的逻辑地址空间大于用户区,采用覆盖技术可以把作业装入主存储器中。

某些系统还采用对换技术让多个进程轮流进入内存,这种技术多用于分时系统,随着进程调度,将内存中的进程暂时移到外存,而把外存中某一进程换进内存。

(四)固定分区存储管理

其基本思想是将内存划分成若干个固定大小的分区,每个分区中最多只能装入一个作业。当作业申请内存时,系统按一定的算法为其选择一个适当的分区,并装入内存运行。由于分区大小是事先固定的,因而可容纳作业的大小受到限制,而且当用户作业的地址空间小于分区的存储空间时,容易造成存储空间浪费。

1.主存空间的分配与回收

系统设置一张“分区分配表”来描述各分区的使用情况。登记的内容应包括:分区号、起始地址、长度和占用标志。其中占用标志为“0”时,表示目前该分区空闲;否则登记占用作业名(或作业号)。有了“分区分配表”,空间分配与回收工作是比较简单的。

2.地址转换和存储保护

固定分区管理可以采用静态重定位方式进行地址映射。

为了实现存储保护,处理器设置了一对“下限寄存器”和“上限寄存器”。当一个已经装入主存储器的作业能够得到处理器运行时,进程调度应记录当前运行作业所在的分区号,且把该分区的下限地址和上限地址分别送入下限寄存器和上限寄存器。处理器执行该作业的指令时必须核对其要访问的绝对地址是否越界。

(五)可变分区存储管理

可变分区存储管理不是预先将主存划分分区,而是在作业转入主存时建立分区,使分区的大小正好与作业要求的存储空间相等。这种处理方式使内存分配有较大的灵活性,也提高了内存利用率。但是随着对内存不断地分配、释放操作会引起存储碎片的产生。

1.主存空间的分配与回收

采用可变分区存储管理,系统中的分区个数与分区的大小都在不断地变化,系统利用“空闲区表”来管理内存中的空闲分区,其中登记空闲区的起始地址、长度和状态。当有作业要进入内存时,在“空闲区表”中查找状态为“未分配”且长度大小或等于作业的空闲分区分配给作业,并做适当调整;当一个作业运行完成时,应将该作业占用的空间作为空闲区归还给系统。

可以采用最先适应算法、最优适应算法和最坏适应算法三种分配策略之一进行内存分配。

2.地址转换和存储保护

可变分区存储管理一般采用动态重定位的方式。为实现地址重定位和存储保护,系统设置了相应的硬件;基址/限长寄存器(或上界/下界寄存器)、加法器、比较线路等。

基地寄存器用来存放程序在内存的起始地址,限长寄存器用来存放程序的长度。处理器在执行时,用程序中的相对地址加上基址寄存器中的基地址,形成一个绝对地址,并将相对地址与限长寄存器进行计算比较,检查是否发生地址越界。

3.移动技术

所谓移动是指把作业从一个存储区域移到另一个存储区域的工作。采用移动技术有两个目的:

(1)集中分散的空闲区;

(2)便于作业动态扩充主存。

移动可集中分散的空闲区,提高主存空间的利用率。移动也为作业动态扩充主存空间提供了方便。但是采用移动技术时必须注意下列问题:

(1)移动会增加系统开销;

(2)移动是有条件的。

所以,在采用移动技术的系统中,应尽可能地减少移动,以降低系统开销,提高系统效率。为此可改变作业装入主存储器的方式来达到减少移动的目的。

(六)页式存储管理

1.基本原理

页式存储管理是把主存储器分成大小相等的许多区,每个区称为一块。采用分页式存储管理时,相对地址由两部分组成;页号和页内地址。在进行存储空间分配时,总是以块为单位进行分配。

页式存储管理必须解决两个关键的问题:第一,怎样知道主存储器上哪些块已被占用,哪些块是空闲的;第二,作业信息被分散存放后如何保证作业的正确执行。

2.页式主存空间的分配与回收

采用页式存储管理,可用一张“位示图”来构成主存分配表。进行主存分配时,先查空闲块数能否满足作业要求。若不能满足,则作业不能装入。作业执行结束后,应收回作业所占的主存块。

3.页表和地址转换

当主存中空闲块数能满足作业要求时,存储管理就找出这些空闲块分配给作业,同时为作业建立一张页表,指出相对地址中页号与主存中块号的对应关系。

页式存储管理采用动态重定位的方式装入作业,作业执行时由硬件的地址转换机构来完成从相对地址到绝对地址的转换工作。页表是进行地址转换的依据。

利用高速缓冲存储器存放页表的一部分,把存放在高速缓冲存储器中的部分页表称为快表。采用快表后,使得地址转换的时间大大下降。

(七)虚拟存储管理

虚拟存储器实际上是为扩大主存容量而采用的一种管理技巧。采用虚拟存储有两个好处,第一,使主存空间能充分地被利用;第二,从用户的角度来看,好象计算机系统提供了容量很大的主存储器。

虚拟存储器的工作原理:把作业信息保留在磁盘上,当要求装入时,只将其中一部分先装入主存储器,作业执行过程中,若要访问的信息不在主存中,则再设法把这些信息装入主存。

页式虚拟存储器的实现是借助大容量辅助存储器(如磁盘)存放虚存中的实际信息,操作系统利用程序执行时在时间上和空间上的局部性特点,把当前需要用的程序段和数据装入主存储器。且利用表格(如页表)为用户构造一个虚拟空间(对不在主存的信息,指出存放在辅助存储器中的位置)。硬件根据操作系统建立的表格进行地址转换,当发现所要访问的信息不在主存储器中时,发出需要调度的中断信号(如缺页中断)。操作系统处理这个中断事件时,选择一种好的调度算法对主存储器和辅助存储器中的信息进行高效调度,尽可能避免“抖动”。页面调度算法有最佳调度算法、先进先出调度算法、最近最久未使用调度算法、最近最不经常使用调度算法等。

3.1  概  述

一、存储器的的三级结构

利用辅助存储器提供的大容量存储空间,存放准备运行的程序和数据,当需要时或主存空间允许时,随时将它们读入主存储器。

1、存储器的三级结构:高速缓存(cache)、主存和辅存。

2、高速缓存:解决CPU与存储器的速度不匹配,是用时间换空间的技术。

高速缓存是电流式,由晶体管组成(二级管和三级管),会使用温度升高,影响数据的正确性。

主存是电压式,由电容器构成,温度低,便于增加密度,但速度慢。

3、辅存:解决主存空间的不足,是用空间换时间的技术。

二、存储管理的功能

1、主存储器空间划分:

(1)系统区:用来存放操作系统与硬件的接口信息、操作系统的管理信息和程序、标准子程序等。

(2)用户区:用来存放用户的程序和数据。

存储管理是对主存空间的用户区进行管理,其目的是尽可能地方便用户和提高主存空间的利用率。具体地说,存储管理的功能如下:

1.主存空间的分配与回收。(分配回收)

2.实现地址转换。(地址映射)

3.主存空间的共享与保护。(共享保护)

4.主存空间的扩充。 (主存扩充)

 三、地址重定位

1.绝对地址和相对地址

绝对地址:主存空间的地址编号。与绝对地址对应的主存空间称为物理地址空间。

相对地址:用户程序中使用的地址。与相对地址对应的存储空间称为逻辑地址空间。(用户作业都从“0”地址开始往下编写)

为了保证作业的正确执行,必须根据分配给作业的主存空间对作业中指令和数据的存放地址进行转换,即要把相对地址转换成绝对地址。把相对地址转换成绝对地址的工作称为重定位或地址转换。

重定位的方式可以有静态重定位和动态重定位两种 。

2.重定位的方式

(1)重定位:也称地址转换,是指把相对地址转换成绝对地址的工作。(分为静态重定位和动态重定位)

(2)静态重定位:地址转换的时刻在入主存储器时。 (在作业装入主存时,一次性完成地址重定位,用软件完成)。

(3)动态重定位:地址转换的时刻在入处理器时(在指令执行过程中重定位,需要硬件与软件相结合)。

→动态重定位支持程序浮动,即作业执行时,被改变了存放区域的作业仍然能正确执行。而采用静态重定位时,由于装入主存储器的作业信息已经都是用绝对地址指示,故作业在执行过程中时不能移动位置的。

3.2  连续分配存储管理方式

3.2.1单用户连续存储管理方式

一、存储空间的分配

1、主存空间划分:系统区和用户区。

2、存储空间分配方法:处理器中设置一个界限寄存器,存放当前可供用户使用的主存区域的起始地址。作业入主存储器时总是存放到由界限寄存器指示的起始地址开始往下存储。

3、重定位:采用静态重定位方式进行地址转换,即在作业装入主存时,由装入程序完成地址转换。装入程序只要把界限寄存器的值加到相对地址上就可完成地址转换。

4、存储保护:主存最大地址>=绝对地址>=界限地址,成立则可执行,否则有地址错误,形成“地址越界”的程序性中断事件。

5、缺点:

(1)当作业执行中出现了某个等待事件(如访问外设)时,处理器就处于空闲状态,不能被利用。(CPU利用率低)

(2)一个作业独占主存中的用户区,当主存中有空闲区域时,也不能被其他作业利用,降低了主存空间的利用率。 (主礅利用率低)

(3)外围设备也不能充分被利用。(外设利用率低,外设不能与CPU并行工作)

二、覆盖技术

1、将作业划分成若干段,其中有一个主程序段是作业执行过程中经常要用到的信息,而其他辅程序段是不会同时工作的。

2、主程序段入驻留区;其他辅程序段轮流入覆盖区。

三、对换技术

在分时系统中,单用户连续存储管理可用对换方式让多个用户的作业轮流进入主存储器执行。系统中必须要有一个大容量的高速辅助存储器,多个用户的作业信息都被保留在磁盘上,把一个作业先装入主存储器让它执行。当执行中出现等待事件或用完一个时间片时,把该作业从存储器换出,再把由调度程序选中的另一个作业换入到主存储器中。

四、扩展知识

1、计算机启动的四大模块

(1)基本输入输出模块(主板BIOS芯片)

(2)IO.SYS 输入输出模块

(3)MSDOS.SYS 存储管理模块(核心)

(4)COMMAND.COM 命令处理模拟(人机交互的接口)

2、计算机启动变慢的原因

(1)虚拟内存文件(pagefile.sys)中垃圾信息太多

(2)启动加载项太多,特别是杀毒软件(实时监测工具)加载多个

(3)硬盘碎片太多。

3、主存空间大小=物理内存大小+各分区上虚拟内存大小之和

3.2.2  固定分区存储管理

一、基本原理

为解决主存空间利用率低和CPU利用率低及外外设的利用低,而引入固定分区存储管理。这种分区存储管理与多道程序设计技术一起出现。

将主存储器中可分配的用户区域预先划分成若干个连续区,每个连续区成为一个分区。每个分区的大小可以相同,也可以不同。每个分区仅可用来装入一个作业,但不允许在一个分区中同时装入多个作业。

二、主存空间的分配与回收

系统设置一张“分区分配表”,用来说明各分区的分配和使用情况。表中指出各分区的起始地址和长度,并为每个分区设置一个标志位。当标志位为“0”时表示分区空闲,当标志位非“0”时表示分区已被占用。

三、地址转换和存储保护

1、地址转换:采用静态重定位方式。

2、存储保护:处理器设置一对寄存器,即“下限寄存器”和“上限寄存器”用来存放当前进程所对应分区的下限地址和上限地址分别送入下限寄存器和上限寄存器。

下限地址<=绝对地址<=上限地址

成立则执行,否则产生“地址越界”中断。

四、缺点

出现了“内零头”,又称碎片,是指主存中无法被利用的小空闲区。

3.2.3  可变分区存储管理

一、主存空间的分配与回收

1、为解决内零头问题而引入可变分区存储管理。

2、分区的划分:系统初始启动时,主存储器中除操作系统占用部分外,把整个用户区看做一个大的空闲区。当有作业要装入主存储器时,根据作业对主存空间的需要量,从空闲区中划出一个与作业长度一致的分区来装入作业,剩余部分仍为空闲区。

3、主存空间的分配算法:分区分配表由两张表格组成,一张是“已分配区表” ,另一张是“空闲区表”。

4、常用的分配算法

(1)最先适应分配算法:每次分配是总是顺序查找空闲去表,找到第一个能满足作业长度要求的空闲区,分割这个找到的空闲区,一部分分配给作业,另一部分分配给空闲区。

空闲区按首地址由小到大排序,高地址区有利于大作业装入。

(2)最优适应分配算法:按作业要求从所有的空闲区中挑选一个能满足作业要求的最小空闲区,这样可保证不去分割一个更大的区域,使装入大作业时比较容易得到满足。

空闲区按空闲区长度由小到大排序,有利于大作业的装入。

(3)最坏适应分配算法:这种算法总是挑选一个最大的空闲区分割一部分给作业使用,使剩下的部分不至于太小,仍可供分配使用。

空闲区按首地址空闲区长度由大到小排序,不利于大作业的装入。

5、主存空间的回收算法

(1)归还区有下邻空闲区(空间区没有增加);

(2)归还区有上邻空闲区(空间区没有增加);

(3)归还区既有上邻空闲区又有下邻空闲区(空闲区减少1个);

(4)归还区既无上邻空闲区又无下邻空闲区(空闲区增加1个)。

二、地址转换和存储保护

1、地址转换:采用动态重定位。作业执行过程中,每当取出一条指令后,就把该指令中的相对地址与基址寄存器的内容相加得到绝对地址。可变分区存储管理一般采用动态重定位的方式。为实现地址重定位和存储保护,系统设置了相应的硬件;基址/限长寄存器(或上界/下界寄存器)、加法器、比较线路等。

基地寄存器用来存放程序在内存的起始地址,限长寄存器用来存。处理器作业的基址寄存器内容与作业长度之和。在执行时,用程序中的相对地址加上基址寄存器中的基地址,形成一个绝对地址,并将相对地址与限长寄存器进行计算比较,检查是否发生地址越界。

2、存储保护

基址寄存器内容<=绝对地址<=限长寄存器内容

成立则执行,否则产生“地址越界”中断。

三、移动技术

所谓移动(或紧凑)是指把作业从一个存储区域移到另一个存储区域的工作。采用移动技术有两个目的:

(1)集中分散的空闲区;

(2)便于作业动态扩充主存。

移动可集中分散的空闲区,提高主存空间的利用率。移动也为作业动态扩充主存空间提供了方便。但是采用移动技术时必须注意下列问题:

(1)移动会增加系统开销;(移动耗时)

(2)移动是有条件的。比如作业存在访问外设,告诉外设作业的要处理的内容的首地址,在移动时不可能改变,所以此时的移动是不成功的。

所以,在采用移动技术的系统中,应尽可能地减少移动,以降低系统开销,提高系统效率。为此可改变作业装入主存储器的方式来达到减少移动的目的。

3.3  页式存储管理

一、基本原理

1、基本原理:把主存储器分成大小相等的许多区,每个区称为一块。与此对应,编制程序的相对地址也分成页,页的大小与块的大小相等。

2、相对地址构成:页号和页内地址。页内地址相当于中学物理中的偏移量或位移。

二、存储空间分配与回收

可用一张主存分配表来记录已分配的块和尚未分配的块以及当前剩余的空闲块数。由于块的大小是固定的,所以主存分配表可简化为一张“位示图”,用0表示对应块为空闲,1则为占用。

列:位号;

行:字号;

位置:块号

三、页表和地址转换

1.基本原理

页式存储管理是把主存储器分成大小相等的许多区,每个区称为一块。采用分页式存储管理时,相对地址由两部分组成;页号和页内地址。在进行存储空间分配时,总是以块为单位进行分配。

页式存储管理必须解决两个关键的问题:第一,怎样知道主存储器上哪些块已被占用,哪些块是空闲的;第二,作业信息被分散存放后如何保证作业的正确执行。

1、页表:每个作业一张页表,用来指出相对地址中页号和主存中块号的对应关系。

页表存放在主存中,每个进程对应一张页表。

   页表含有的项:页号,块号等。

2、地址转换:采用动态重定位方式。每执行一条指令时,都要由地址转换机构按相对地址中的页号查页表,得到该页对应的主存块号,再按相对地址中的页内地址换算出欲访问的主存单元的绝对地址。计算办法:

(1)方法一:绝对地址=块号*块长+页内地址。

(2)方法二:将块号作为绝对地址的高位,将页内地址作为绝对地址的低位,即可形成绝对地址(因为分块和分页大小是一致的)。

3、快表:

(1)页表缺点:需两次访问主存。第一次按页号读出页表中对应的块号;第二次按计算出来的绝对地址访问主存。

(2)快表:是指存放在高速缓冲存储器中的部分页表。而把存放快表的高速缓冲存储器称为“联想存储器”(由一组高速、小容量且可并行查找的联想存储器,联想存储器由一组联想寄存器组成)。

采用快表的方法后,使得地址转换的时间大大减少。

例题:假定访问主存的时间为200ns(纳秒),访问快表的时间为40ns,查快表的命中率为90%。于是,把逻辑地址转换成物理地址及存取的平均时间为:

(200+40)×90%+(200+200)×10%=256ns

若不使用快表,则转换及存取时间为:200+200=400ns

3.6  虚拟存储管理

一、什么是虚拟存储器

如果能做到只装入作业的部分信息就可以让作业开始执行,那么当主存空间小于作业需求量时,系统就可以接受该作业,进而也就可以允许逻辑地址空间大于实际的主存空间。这样就带来两个好处,第一,使主存空间能充分地被利用;第二,从用户的角度来看,好像计算机系统提供了容量很大的主存储器,我们称它为虚拟存储器,简称虚存。虚拟存储器实际上是为扩大主存容量而采用的一种管理技巧。

Windows 系统称为虚拟内存,在每个分区中都可以有一个虚拟内容交换文件。文件名为:pagefile.sys。(其是隐藏的)

二、虚拟存储器的工作原理

1、工作原理:把作业信息保留在磁盘上,当要求装入时,只将其中一部分先装入主存储器,作业执行过程中,若要访问的信息不在主存中,则再设法把这些信息装入主存。

2、程序特点:

(1)第一,程序执行时有些部分是彼此互斥的,即在程序的一次执行中,执行了这部分就不会去执行另一部分

(2)第二,程序的执行往往具有局部性,在一段时间里可能循环执行某些指令或多次访问某一部分的数据。

3、实现虚拟存储器的关键问题:

(1)怎样知道当前哪些信息已在主存储器中,哪些信息尚未装入主存储器中?

(2)如果作业要访问的信息不在主存储器中,怎样找到这些信息并把它们装到主存储器中?

(3)在把欲访问的信息装入主存储器时,发现主存中已无空闲块又该怎么办?

3.7 页式虚拟存储器

1、实现原理:将作业的全部信息作为副本存放在磁盘上,作业调度选中一个作业时,至少把作业的第一页信息装入主存储器,在作业执行过程中欲访问不在主存储器中的页时,再把它们装入。为此,页表需更改,至少应包括页号、标志、主存块号、磁盘上的位置。

2、页面调度:

(1)页面调度概念:是指采用某种算法选择一页暂时调出,把它存放到磁盘上去,让出主存空间,用来存放当前要使用的页面的这一过程称为页面调度。

(2)抖动:也称颠簸,是指刚被调出的页又立即要用,因而又要把它调入;而调入不久又被调出;调出不久又再次被调入。如此反复,使调度非常频繁,以至于使大部分时间都花费在来回调度上。这种现象称为抖动。

(3)页面调度算法

A.最佳调度算法(OPT):总是把以后不再访问的页或距当前最长时间后再访问的页先调出。是一种理想算法,用来被用做衡量其他算法的标准,09年4月综合体就考了本知识点。

B.先进先出调度算法(FIFO):总是把先进入主存储器的页面调出。

C.最近最久未使用调度算法(LRU):距当前最长时间内没有使用过的页面先调出。

D.最近最不经常使用调度算法(LFU):在最近一段时间内使用次数最少的页面先调出。

3、缺页中断率

(1)缺页中断率定义:如果作业执行中访问页面的总次数为A,其中有F次访问的页面尚未装入主存,故产生了F次缺页中断。现定义缺页中断率f如下:f=F/A。

(2)影响缺页中断率的因素

(1)分配给作业的主存块数;

(2)页面大小;

(3)程序的编制方法;

(4)页面调度算法。


第四章  文件管理

内容概要

本章介绍了文件与文件系统的基本概念和文件管理方法,主要包括:

文件系统为用户提供按名存取的功能,用户从使用角度组织文件,用户组织的逻辑文件有两种形式:流式和记录式。

文件系统从存储介质的特性、用户的存取方式以及怎样有效地存储和检索的角度组织文件,由文件系统组织的物理文件类型可以有顺序文件、链接文件和索引文件等。

文件系统通过查找文件目录得到用户指定的文件在存储介质上的位置,读出物理文件再转换成逻辑文件传送给用户。

为了正确地实现按名存取,用户与系统必须密切配合。对用户来说,应组织好逻辑文件,为文件定义文件名、存取方式、记录格式、记录长度以及存储设备类型等;调用规定的文件操作请求使用文件。对文件系统来说,要做好存储介质初始化的工作;确定物理文件的组织形式;进行文件存储空间的分配和回收;文件目录的查找和登陆;解释执行文件操作。

考虑到系统的效率与安全,文件系统还实现记录成组与分解工作,文件保护与保密功能,精心设计文件目录的结构以及磁盘空闲块的查找方法。

重点内容

(一)文件和文件系统

文件:我们把逻辑上具有完整意义的信息集合称为文件。一个文件可以是一系列的二进制数、字符或记录,它们的含义和命名都由文件的建立者定义。

文件系统对文件统一管理,目的是方便用户且保证文件的安全可靠。面向用户,文件系统主要是实现“按名存取”。为此,文件系统应由如下一些部分组成:(1)文件目录;(2)文件的组织;(3)文件存储空间的管理;(4)文件操作;(5)文件的安全措施。

(二)文件的存储介质

我们把可用来记录信息的磁带、应磁盘组、软磁盘片、光盘、卡片等称为存储介质,把可安装存储介质的设备称为存储设备。要把信息记录到存储介质上或从存储介质上读出信息必须启动相应的磁带机、磁盘驱动器等设备。

我们把存储介质的物理单位定义为卷,例如,一般磁带、一张软盘片、一个磁盘组都可称为一个卷。

我们把存储介质上连续信息所组成的一个区域称为块(物理记录)。块是主存储器与这些设备进行信息交换的单位。目前常用的存储设备是磁带机和磁盘机。

(三)文件的存取方式

从树文件信息的存取次序考虑,存取方式可以分成两种:顺序存取和随机存取。顺序存取是指对文件中的信息按顺序依次进行读写的存取方式。随机存取是指对文件中的信息不一定要按顺序读写,而是可以按任意的次序随机地读写的存取方式。

采用哪种存取方式,主要取决于两个方面的因素:

(1)与文件的使用方式有关;

(2)与存储介质的特性有关。

目前常用的存储设备是磁带机和磁盘机。

磁带机是一种适合顺序存取的存储设备。它总是从磁头的当前位置开始读写磁带上的信息。所以对存储在磁带上的文件,一般均采用顺序存取的方式。

磁盘机是一种可按指定的地址进行信息存取的设备。磁盘机上的每一块都有确定的位置和一个唯一的地址。所以磁盘机能随机读写磁盘机上任何一块的信息,具有随机存取功能。

(四)文件目录

文件目录是用于检索文件的,它是文件系统实现按名存取的重要手段。文件目录由若干目录项组成。一般来说,每个目录项中应包含:有关文件存取控制的信息,有关文件结构的信息,有关文件管理的信息。

1.一级目录

一级目录是最简单的文件目录结构。这种目录结构是把一卷存储介质上的所有文件都登记在一个文件目录中。

每当建立一个新文件时就在文件目录中增加一个目录项;每当删去一个文件时就在文件目录中删去该文件的目录项。但这种结构无法解决文件重名问题。

2.二级目录

二级目录结构是为每个用户设置张用户文件目录,再用主文件目录来登记各个用户的文件目录表存放地址。

3.树形目录

大多数文件系统允许在文件目录中再建立其子目录,即形成多级目录结构。如:Windows、UNIX、MS—DOS系统都采用多级目录结构。这种结构也称为树型目录结构,该树从根向下,每一个节点都是一个目录或一个文件。

访问文件时,必须指出文件所在的路径,路径由从根目录开始到该文件的通路上所有各级子目录名及该文件名顺序拼起来组成。通常引入当前目录的概念,将某级目录设置为当前工作目录,要访问文件时,就可从当前目录开始设置路径,称相对路径。

树形结构的优点:

          (1)解决了重名问题

          (2)有利于文件分类

          (3)提高检索文件的速度

          (4)能进行用户权限的控制

(五)文件的组织

文件的组织是指文件的构造方式。用户眼中看到的文件结构,称为文件的逻辑结构(逻辑文件)。在存储介质上文件实际的存储方式称为文件的存储结构。

1.文件的逻辑结构

逻辑文件可以有两种形式:一种是流式文件,另一种是记录式文件。流式文件是指用户对文件中的信息不再划分可独立的单位,整个文件是由依次的一串信息组成。记录式文件是指用户对文件中的信息按逻辑上独立的含义再划分信息单位。每个单位称为一个逻辑记录,简称记录。如数据库文件就是一种记录式文件。

2.文件的存储结构

用户的逻辑文件要存放到存储介质上时。文件系统要根据存储设备的类型、用户采用的存取方式决定文件在存储介质上的组织方式。通常文件的组织方式有三种:顺序结构、链接结构和索引结构。

(1)顺序结构

一个文件被存放到连续相邻的块上,其逻辑记录顺序和物理块的顺序相一致,这类文件称顺序文件或连续文件。文件占用的每一块的物理地址及文件长(或末地址)登记在该文件目录项中。

(2)链接文件

链接结构文件的逻辑记录是顺序的,但在存储空间中不必选择连续的物理块。每个磁盘块中必须留出若干单元用来存放物理块之间的链接指针。文件信息占用的第一个磁盘块的块号登记在文件目录中,链接结构中每个磁盘块中的链接指针指出了文件信息存入的下一个磁盘块的块号。

链接结构与顺序结构都只适合于顺序存取,不适宜随机访问,而下面介绍的索引结构文件适于随机访问。

(3)索引结构

索引结构是实现非连续存储的另一种方法。索引结构为每个文件建立一张索引表,把指示每个逻辑记录存放位置的指针集中在索引表中。索引结构文件既可随机存取也可顺序存取,索引表的位置应登记到该文件的目录项中。

磁带上文件只能组织成顺序结构,磁盘上文件可以组织成任何一种形式。

3.记录的成组和分解

把若干个逻辑记录合成一组存入一块的工作称为记录的成组。每块中的逻辑记录个数称为块因子。从一组逻辑记录中把一个逻辑记录分离出来的操作称为记录的分离。

记录的成组不仅提高了存储空间的利用率,而且还减少了启动外设的次数,提高了系统的工作效率。但成组与分解也有其缺点,记录的成组与分解是以设立主存缓冲区和操作系统增加成组与分解操作的功能为代价,来提高存储介质的利用率和减少启动设备的次数的。

(六)磁盘存储空间的管理

当用户要求存储文件时,就要为他分配存储空间。当用户要求删除文件时,又要收回文件占用的存储空间。如何实现存储空间的分配和回收取决于对空闲块的管理方法。通常用位示图法、空闲块表法、空闲块链法来实现对空闲块的管理。

1.位示图法

用一张位示图来指示磁盘存储空间的使用情况,磁盘分块后,根据可分配的总块数决定位示图由多少个字组成,它的每一位与一个磁盘块对应。某位为“1”状态表示相应块已被占用,为“0”状态表示所对应的块是空闲块。

2.空闲块表法

系统为每个磁盘建立一张空闲块表,其中每个登记项记录一组连续空闲块的首块号和块数。这种管理方式适合采用顺序结构的文件。

3.空闲块链法

把所有的磁盘空闲块用指针连接在一起构成空闲块链。分配空间时从链中取出空闲块,归还空间时把归还块加入到链中。这种管理方式不需要外加专门记录空闲块分配情况的表格。

考情分析

本章主要考查文件的存取方式,磁盘文件的组织,记录的成组与分解,位示图法的管理,unix的文件管理,题型一般为单选题,多选题,填空题,综合题。分值大约为15分。

     例如:09年4月单选题13考查了(文件的按名存取),09年4月填空题30题考查了(文件存取方式的选择),09年7月单选题13题考查了(磁盘文件的组织形式),09年4月综合题40题,09年7月综合题39题考查了(记录的成组与分解),09年4月简答题34考查了(位示图法管理中的公式)09年7月简答题35考查了(unix中close调用的过程)

串讲内容

4.1  文件概述

一、文件

1、文件:是指逻辑上具有完整意义的信息集合。每个文件都要用一个名字作标识,称为文件名。

2、文件分类:分类标准不一样,文件可分为不同的类型。

二、文件系统的组成部分

1、文件系统目的:对文件统一管理,目的是方便用户且保证文件的安全可靠。面向用户,文件系统主要是实现“按名存取”。

2、文件系统组成部分:文件目录、文件的组织、文件存储空间的管理、文件操作、文件的安全措施。

3、文件操作:为了保证文件系统能正确地存储和检索文件,系统规定了在一个文件上可执行的操作,这些可执行的操作统称为文件操作。基本操作有建立文件、打开文件、读文件、写文件、关闭文件和删除文件。

三、 文件的存储介质

我们把可用来记录信息的磁带、应磁盘组、软磁盘片、光盘、卡片等称为存储介质,把可安装存储介质的设备称为存储设备。要把信息记录到存储介质上或从存储介质上读出信息必须启动相应的磁带机、磁盘驱动器等设备。

我们把存储介质的物理单位定义为卷,例如,一般磁带、一张软盘片、一个磁盘组都可称为一个卷。

我们把存储介质上连续信息所组成的一个区域称为块(物理记录)。块是主存储器与这些设备进行信息交换的单位。目前常用的存储设备是磁带机和磁盘机。

4.2 文件的存取方式

一、存取方式分类

从树文件信息的存取次序考虑,存取方式可以分成两种:顺序存取和随机存取。顺序存取是指对文件中的信息按顺序依次进行读写的存取方式。随机存取是指对文件中的信息不一定要按顺序读写,而是可以按任意的次序随机地读写的存取方式。

采用哪种存取方式,主要取决于两个方面的因素:09年4月解答题考了本知识点。

(1)与文件的使用方式有关;

(2)与存储介质的特性有关。

目前常用的存储设备是磁带机和磁盘机。

磁带机是一种适合顺序存取的存储设备。它总是从磁头的当前位置开始读写磁带上的信息。所以对存储在磁带上的文件,一般均采用顺序存取的方式。

磁盘机是一种可按指定的地址进行信息存取的设备。磁盘机上的每一块都有确定的位置和一个唯一的地址。所以磁盘机能随机读写磁盘机上任何一块的信息,具有随机存取功能。

二、存取方式选择

1、与文件的使用方式有关:文件的性质决定了文件的使用,也就决定了存取方式的选择。如源程序文件必须按字符顺序进行存取,数据库的访问则采用随机存取方式。

2、与存储介质的特性有关:磁带机适合顺序存取的存储设备;磁盘机既可采取顺序存取方式,又可采用随机存取方式。

4.3  目录管理

一、一级目录结构

1、基本思想:把一卷存储介质上的所有文件都登记在一个文件目录中。

2、要求:在文件目录中登记的各个文件都有不同的文件名。

二、二级目录结构

1、用户文件目录:是二级目录结构中为每个用户设置的一张目录表。

2、主文件目录:是一张用来登记各个用户的目录表存放地址的总目录表。

3、优点:

(1)采用二级目录结构后,即使不同的用户在为各自的文件命名时取了相同的名字也不会引起混乱。

(2)采用二级目录结构可使不同的用户共享某个文件,这只要在各用户的文件目录表中使某个目录项指向共享文件存放的物理位置即可。

三、树形目录结构

1、多级目录结构:也称树形目录结构。

2、绝对路径:路径名可以由从根目录开始到该文件的通路上所有各级子目录名及该文件名顺序拼起来组成,各子目录与文件名之间用“\”隔开。

3、相对路径:访问文件时,从当前目录开始设置路径。

4、树形目录结构优点:解决了重名问题;有利于文件分类;提高检索文件的速度;能进行存取权限的控制。

四、文件目录的管理

1、目录文件:通常把文件目录页作为文件保存在存储介质上,由文件目录组成的文件称为目录文件。

2、文件目录的管理:文件系统可以根据用户的要求从目录文件中找出户的当前目录,把当前目录读入主存储器。这样既不占用太多的主存空间,又可减少搜索目录的时间。

五、文件的组织

1.文件的逻辑结构

(1)文件的逻辑结构:用户从使用的角度来组织文件,用户把能观察到的且可以处理的信息根据使用构造文件,这种构造方式是独立于物理环境的,所以称为文件的逻辑结构。

(2)逻辑文件:是指用户组织的文件,简称为文件。

(3)逻辑文件分类:

1)流式文件:是指用户对文件中的信息不再划分可独立的单位,整个文件是由依次的一串信息组成。

2)记录式文件:是指用户对文件中的信息按逻辑上独立的含义再划分信息单位。区分概念:逻辑记录、逻辑记录号、主键、次键。

2. 文件的存储结构

(1)文件的存储结构:文件系统从文件的存储和检索的角度来组织文件,文件系统根据存储设备的特性、文件的存取方式来决定以怎样的形式把用户文件存放到存储介质上,在存储介质上的文件构造方式称为文件的存储结构。

(2)物理文件:是指存放在存储介质上的文件。

(3)磁带文件的组织:

1)组织方式:磁带机是一种顺序存取设备,因此组织在磁带上的文件都采用顺序结构。

2)磁带文件的组成:

A.文件头标:用来标识一个文件和说明文件的属性。

B.文件信息:是用户逻辑文件中的信息。

C.文件尾标:用来表示一个文件的信息结束。

→文件与文件之间用一个带标隔开,用两个带标表示磁带上的有效信息到此结束。

3.磁盘文件的组织

(1)顺序结构

优点:顺序结构适合顺序存取,其优点是存取信息的速度快、存取文件时不必每次去查找信息的存放位置,只要记住当前块号,则该文件的后继信息一定在下一块中,减少了检索时间。

缺点:磁盘存储空间的利用率不高;对输出文件很难估计需多少磁盘块;影响文件的扩展。

(2)链接结构

A.链接结构:顺序的逻辑记录被存放在不相邻的磁盘块上,再用指针把这些磁盘块按逻辑记录的顺序链接起来,便形成了文件的链接结构。

B.链接文件:也称串联文件,是指采用链接结构的文件。

C.注意事项:

a.对链接文件采用顺序存取方式是高效的,采用随机存取方式是低效的。

b.在插入或删除一个记录时,若某一块中的指针需修改,则应先把该块内容读到主存储器,再修改指针,然后把修改后的该块信息按原地址重新写回磁盘。

c.每一个磁盘块中既要存放文件信息,又要存放用于管理的指针,这会增加文件需占用的磁盘块数。

d.读写磁盘上的信息以块为单位。当读出一块信息后,应把其中的指针分离出来,仅把属于逻辑文件的信息传送给用户,以保证用户使用文件信息的正确性。

e.在存取文件时,如果某个指针丢失或被破坏,则错误的指针可能指向其他文件而导致混乱。(可采用双指针)

(3)索引结构

A.索引结构:为每一个文件建立一张索引表,把指示每个逻辑记录存放位置的指针集中在索引表中。

B.索引文件:是指采用索引结构的文件。

C.特点:索引结构既适合顺序存取记录,又可方便地按任意次序随机存取记录,且容易实现记录的增、删和插入。但采用索引结构必须增加索引表占用的空间和读写索引表的事件。

5、存取方式与存储结构之间的关系。

4.2.5磁盘存储空间的管理

一、位示图法

用一张位示图来指示磁盘存储空间的使用情况,磁盘分块后,根据可分配的总块数决定位示图由多少个字组成,它的每一位与一个磁盘块对应。某位为“1”状态表示相应块已被占用,为“0”状态表示所对应的块是空闲块。

确定空闲块常用的公式为

块号=字号×字长+位号

柱面号=[块号/柱面上的块数]

磁头号=[(块号mod柱面上的块数)/盘面上的扇区数]

扇区号=(块号mod柱面上的块数)mod 盘面上的扇区数

可参照第4章中页式存储空间“位示图”管理方法。

二、空闲块表法

系统为每个磁盘建立一张空闲块表,表中每个登记项记录一组连续空闲块的首块号和块数。空闲块数为“0”的登记项为无效登记项。

三、空闲块链法

把所有的磁盘空闲块用指针连接在一起构成空闲块链。分配空间时从链中取出空闲块,归还空间时把归还块加到链中。对磁盘空闲块可用单块连接法连接起来。每一个空闲块中都设置一个指向另一个空闲块的指针,最后一个空闲块中的指针为“0”。

4.4  文件使用

一、基本文件操作:要求掌握相应的参数和主要工作。

1、建立操作

2、打开操作

3、读操作

4、写操作

5、关闭操作

6、删除操作

二、文件操作的使用

1、读一个文件信息:打开文件?读文件?关闭文件。

2、写一个文件信息:建立文件?写文件?关闭文件。

3、删除一个文件:关闭文件?删除文件。

4.5  文件共享与安全

一、文件的保护

1、防止天灾人祸造成的破坏:采用建立多个副本的办法。

2、防止系统故障造成的破坏:采用建立副本和定时转储的办法。

3、防止文件共享时造成的破坏:采用不允许同时使用;或允许同时使用但限制对文件使用的权限。

4、防止计算机病毒的侵害:采用针对各种病毒设计相应的杀毒软件,还可在二进制文件的目录中设置一般用户只能读的权限。

二、文件的保密

1、隐蔽文件目录

2、设置口令

3、使用密码


第五章    设备管理

内容概要

本章介绍了设备管理的基本概念和主要方法。内容包括:

文件管理提供按名存取,能把用户文件保存在存储介质上,或从存储介质上取出文件信息传送给用户。要实现这一功能必须把存储介质装到相应的外围设备上并且启动外围设备工作,所以,从设备管理的角度应考虑设备的分配和启动,以配合文件管理实现信息传送。

从使用的角度,可把外围设备分成独占使用的设备和可共享使用的设备两大类。对独占使用的设备一般采用静态分配策略,根据用户指定的设备类和台数进行分配。对可共享的设备如磁盘不进行预先分配,而是根据确定的驱动调度算法来决定当前可以使用磁盘者。

启动外围设备完成输入/输出操作的过程可分为三个阶段:组织通道程序并把通道程序首地址存入通道地址字(CAW)中;用“启动I/O”指令启动通道工作,通道执行通道程序把执行情况记录在通道状态字(CSW)中;完成输入/输出操作后形成I/O中断,由操作系统做出相应的处理。

为了提高独占设备的使用效率,创造多道并行工作的环境,增加单位时间内的算题量,充分利用系统的资源,操作系统借助硬件提供的中央处理器与外围设备之间的并行工作能力,采用多道程序设计技术,实现斯普林(SPOOLING)系统,通过预输入、“井管理”和缓输出为用户提供虚拟设备。

UNIX把设备分成块设备和字符设备两大类,且把设备作为一种特别文件,每个设备都有一个文件名,并对设备就像文件那样进行操作。

本章要求了解设备管理与文件管理的合作关系,文件管理实现文件存取前的准备工作,而文件的物理存取由设备管理实现。理解怎样实现独占设备的分配和磁盘的驱动调度;怎样实现虚拟设备。

重点内容

(一)设备管理的功能

设备管理应具有如下功能:设备的分配和回收、外围设备的启动、对磁盘的驱动调度、外部设备中断处理、虚拟设备的实现。

(二)外围设备的分类

从使用的角度来分析外围设备的特性,可以把外围设备分成两大类:一类是只能让一个作业独占使用的设备;另一类是可以由几个作业同时使用的设备。

(三)独占设备的管理

1、设备的绝对号与相对号

计算机系统对每一台设备都要进行登记,且为每一台设备确定一个编号,以便区分和识别,这个确定的编号称为设备的绝对号。

由用户对自己需要使用的若干台同类设备给出的编号称为设备的相对号。

2、独占设备的分配

作业申请独占设备时,应指定所需要的是什么设备。指定的方式有两种:一种是指定设备的绝对号,另一种是指定设备类、相对号。

(四)磁盘的驱动调度

1、访问磁盘的操作时间

对磁盘的任何一个访问请求,应给出访问磁盘的存储空间地址:柱面号、磁头号、扇区号。

磁盘执行一次输入/输出操作所需要花费的时间由寻找时间、延迟时间和传送时间三部分组成。

系统往往采用一定的调度策略来决定各等待访问者的执行次序,我们把这项决定等待访问者执行次序的工作称为驱动调度,采用的调度策略称为驱动调度算法。驱动调度包括“移臂调度”和“旋转调度”两部分。

2、移臂调度

根据等待访问者指定的柱面位置来决定次序的调度称为移臂调度。常用的移臂调度算法有先来先服务调度算法、最短寻找时间优先调度算法、电梯调度算法和单向扫描调度算法。

3、旋转调度

根据延迟时间来决定执行次序的调度称为旋转调度。

4、信息的优化分布

记录的优化分布有利于减少延迟时间,从而缩短了输入/输出操作的时间。所以,对于一些能预知处理要求的信息采用优化分布可以提高系统的效率。

(五)输入/输出操作的实现

现代计算机系统引入了自成独立系统的通道结构。通道的出现使计算机系统的性能得到提高,它把中央处理器(CPU)从琐碎的输入/输出操作中解脱出来,为计算机系统中各个部件能并行工作创造了条件。

正因为通道能单独地完成输入/输出操作,所以把通道也称为输入/输出处理机。完成输入/输出操作的过程是:按系统规定的通道命令格式,根据输入/输出的要求组织通道程序,并把通道程序首地址存入通道地址字(CAW)中;利用硬件提供的“启动I/O”指令启动通道工作,启动成功后由通道执行通道程序,按通道命令的要求完成一次输入/输出操作,并把通道程序的执行情况记录在通道状态字(CSW)中,通道完成一次输入/输出操作后形成I/O中断,由操作系统作出相应处理。

(六)缓冲技术

在操作系统中,把利用缓冲区来缓解处理器与外围设备之间工作速度不匹配的矛盾而采用的技术称为缓冲技术。操作系统中采用的缓冲技术有单缓冲技术、双缓冲技术和缓冲池技术。

(七)虚拟设备

实现虚拟设备必须有一定的硬件和软件为基础。对硬件来说,必须配置大容量的磁盘,要有中断装置和通道,具有中央处理器与通道并行工作的能力。对操作系统来说,应采用多道程序设计技术。

操作系统中实现虚拟设备的功能模块是在计算机控制下通过联机的外围设备同时操作来实现其功能的,这个功能模块称为斯普林系统。英文缩写为SPOOLING。

更多优质自考资料尽在百度贴吧自考乐园俱乐部

5.1  设备管理的功能

1、外围设备分类:(从功能上分)

(1)存储型设备:磁盘机、磁带机等。

(2)输入/输出型设备:显示器、输入机、打印机等。

2、输入/输出操作:是指主存储器与外围设备之间的信息传送操作。

(1)对存储型设备:输入/输出操作的信息传送单位为“块”。

(2)对输入/输出型设备:输出/输出操作的信息传送单位为“字符”。

3、设备管理的主要功能:

(1)实现对外围设备的分配与回收。

(2)实现外围设备的启动。

(3)实现对磁盘的驱动调度。

(4)处理外围设备的中断事件。

(5)实现虚拟设备。

4、外围设备的分类

(1)独占设备:是指在作业执行期间只允许一个作业独占使用的设备。如输入机、打印机等。

(2)可共享设备:是指可让若干个作业同时使用的设备。如磁盘机等。(同时使用:是指一个作业尚未撤离,另一个作业即可使用,但每一时刻仍只有一个作业能启动磁盘,允许它们交替地启动)以上是从使用的角度来分。

5、独占设备的管理

(1)设备的绝对号与相对号

1)设备的绝对号:为了对设备进行管理,计算机系统对每一台设备都要进行登记,且为每一台设备确定一个编号以便区分和识别,这个确定的编号称为设备的绝对号。

2)设备的相对号:由用户对自己需要使用的若干台同类设备给出的编号称为设备的相对号。

(2)独占设备的分配

a.设备申请的指定方式:

1)指定设备的绝对号:系统就必须把对应的设备分配给作业,且不可替代。

2)指定设备类和相对号:可以实现用户编制程序时使用的设备与实际能占用的设备无关。

b.设备的独立性:是指用户程序中使用由“设备类、相对号”定义的逻辑设备,可以实现用户编制程序时使用的设备与实际能占用的设备无关,该种使用设备的特性称为设备的独立性。

c.设备的独立性优点:

1)系统只要从指定的那一类设备中找出“好的且尚未分配的”设备来进行分配。

2)万一用户使用的设备出了故障,系统就可以从同类设备中找另一台“好的且尚未分配的”设备来替换。

d.独占设备的分配:系统可设置设备分配表,指出系统所配置的独占设备类型、数量以及分配和使用的情况等。该表由两部分组成:

1)设备类表:每一类独占设备在设备类表中占一个登记项。表项包括设备类、拥有的总台数、现存台数、设备表始址。

2)设备表:每一台设备在设备表中占一个登记项。表项包括绝对号、好/坏、已/未分配、占用作业名、相对号。

5.2  输入/输出操作控制方式

一、通道结构和通道程序

1、通道结构:也称输入/输出处理机,是计算机系统中用来连接外围设备,并能独立工作的系统。

2、通道的连接:一个中央处理器可以连接多个通道;一个通道可以连接多个设备控制器;一个设备控制器可以连接同类型的多台设备。

3、通道的基本工作模式:当有输入输出请求时,中央处理器先执行“启动I/O”指令,启动指定通道上的指定设备。当启动成功,通道按规定的要求通过设备控制器控制外围设备进行操作。这时中央处理器就可执行其它任务,并与通道并行工作,直到输入输出操作完成,由通道发出操作结束的“I/O中断”时中央处理器才暂停当前的工作,转去处理I/O中断事件。

4、通道命令CCW:每一条通道命令规定了设备的一种操作。操作系统可以用若干条通道命令来规定通道执行一次输入/输出操作应做的工作。若干条通道命令组成了一个通道程序。

5、通道地址字CAW:用来存放通道程序首地址的主存固定单元。通道系统可以依据该地址去取相应的通道命令。

6、通道状态字CSW:用来存放通道和设备执行情况的主存固定单元。

(1)通道命令地址:用来指示下一条通道命令在主存中的地址。(因为通道地址字只存放通道程序的首地址)

(2)设备状态:用来记录设备控制器和设备的工作情况。

(3)通道状态:用来记录通道的工作情况。

(4)剩余字节个数:是指最后一次执行的那条通道命令在操作结束后还剩余多少字节未传输完。

二、外围设备的启动

1、输入/输出操作的过程:

(1)准备阶段

(2)启动I/O阶段

(3)结束处理阶段

2、设备处理的一致性:在具有通道结构的计算机系统中,从启动外围设备到完成输入/输出操作都没有考虑不同类型的物理设备的特性,都采用了统一的方法在进行处理。这种不考虑设备的具体物理特性(实际上设备特性已隐含在通道程序中)的处理方法称为设备处理的一致性。

三、I/O中断事件的处理

1、作用:I/O中断是通道和中央处理器协调工作的一种手段。

2、I/O中断事件分类:

(1)操作正常结束:

(2)操作异常结束:

A.设备故障

B.设备特殊

5.3  缓冲技术

一、单缓冲技术

1、缓冲技术:是指操作系统中,把利用缓冲区来缓解处理器与外围设备之间工作速度不匹配的矛盾而采用的技术。

2、单缓冲技术:是指操作系统在主存储器的系统区中只设立一个缓冲区。

二、双缓冲技术

双缓冲技术是利用两个缓冲区来完成输入输出操作的工作。两个缓冲区交替使用。

三、缓冲池技术

操作系统可以在主存中设置一组缓冲区,把这一组缓冲区称为缓冲池。缓冲池中的各缓冲区是系统的公共资源,可供各进程共享,并由操作系统统一分配和管理。

5.5  虚拟设备

一、为什么要提供虚拟设备

1、虚拟设备概念:操作系统利用共享设备来模拟独占设备的工作,当系统只有一台输入设备和一台输出设备的情况下,可允许两个以上的作业并行执行,并且让每个作业都感觉到获得了供自己独占使用的输入设备和输出设备。我们说,操作系统采用的这种技术为用户提供了“虚拟设备”。

2、为什么要提供虚拟设备:我们已经知道像输入机、打印机等独占使用的设备采用静态分配方式,既不能充分利用设备,又不利于提高系统效率。主要表现为:

(1)占有输入机和打印机的作业,只有一部分时间在使用它们,在其余时间这些设备处于空闲状态。在设备空闲时不允许其他作业去使用它们,因此不能有效地利用这些设备。

(2)当系统只配有一台输入机和一台打印机时,就不能接受两个以上要求使用输入机和打印机的作业同时执行,不利于多道并行工作。

(3)这些独占设备大多是低速设备,在作业执行中往往由于等待这些设备的信息传输而延长了作业的执行时间。

二、虚拟设备的实现

1、基本条件:实现虚拟设备必须有一定的硬件和软件条件为基础。对硬件来说,必须配置大容量的磁盘,要有中断装置和通道,具有中央处理器与通道并行工作的能力。对操作系统来说,应采用多道程序设计技术。

2、实现原理:把一批作业的全部信息通过输入设备预先传送到磁盘上等待处理。在多道程序设计系统中,可从磁盘上选择若干个作业同时 装入主存储器,并让它们同时执行。由于作业的信息已全部在磁盘上,故作业执行时不必再启动输入机读信息,而可以从共享的磁盘上读取各自的信息。把作业产生的结果也存放在磁盘上,而不直接启动打印机输出。直到一个作业得到全部结果而执行结束时,才把该作业的结果从打印机输出。

3、实现技术:

(1)输入井和输出井:

A.输入井:存放作业的初始信息。

B.输出井:存放作业的执行结果。

(2)斯普林系统:操作系统中实现虚拟设备的功能模块是在计算机控制下通过联机的外围设备同时操作来实现其功能的,这个功能模块的英文缩写为SPOOLING,所以称它为斯普林系统。

A.预输入程序:任务是把作业流中每个作业的初始信息传送到输入井保存以备作业执行时使用。

B.井管理程序:井管理程序又分成井管理读程序和井管理写程序两个功能。当作业请求从输入机上读文件信息时,就把任务转交给井管理读程序。由它从输入井读出信息供作业执行时使用。当作业请求从打印机上输出结果时,就把任务转交给井管理写程序。由它把产生的结果保存到输出井中。

C.缓输出程序:缓输出程序负责查看输出井中是否有待输出的结果信息。若有,则启动打印机把结果文件打印输出。

(3)数据结构

A.作业表:用来登记输入井中的各个作业的作业名、作业状态、作业拥有的文件数,以及预输入表和缓输出表的位置等。

B.预输入表:每个作业有一张预输入表,用来登记该作业的初始信息中的各个文件,指出各文件的文件名、传输文件信息时使用的设备类型、文件的长度以及文件的存放位置等。

C.缓输出表:对每个作业设置一张缓输出表,用来登记该作业产生的结果文件。作业产生的结果也按链接结构组织成文件存放在输出井中。

(4)输入井中作业的状态:

A.输入状态:预输入程序启动了输入机正在把该作业的信息传输到输入井。

B.收容状态:该作业的信息已经存放在输入井中,但尚未被选中执行。

C.执行状态:作业已被选中并装入主存储器开始执行。

D.完成状态:作业已执行结束,其执行结果在输出井中等待打印输出。

 

5.6  磁盘的驱动调度

一、访问磁盘的操作时间

1、输入/输出操作所需花费的时间:

(1)寻找时间:磁头在移动臂带动下移动到指定柱面所需的时间。

(2)延迟时间:指定扇区旋转到磁头位置所需的时间。

(3)传送时间:由指定的磁头把磁道上的信息读到主存储器或把主存储器中信息写到磁道上所需的时间。由于块的长度一样,因此传送时间是固定的。

2、驱动调度:

(1)移臂调度:是指根据等待访问者指定的柱面位置来决定次序的调度。目标是尽可能地减少寻找时间。

(2)旋转调度:是指根据延迟时间来决定执行次序的调度。目标是尽可能地减少延迟时间。

二、移臂调度

1、先来先服务调度算法

2、最短寻找时间优先调度算法

3、电梯调度算法

4、单向扫描调度算法

三、旋转调度

1、若干请求者要访问同一磁头下的不同扇区:旋转调度总是对先到达读写磁头位置下的扇区进行信息传送。

2、若干请求者要访问不同磁头下的不同编号的扇区:旋转调度总是对先到达读写磁头位置下的扇区进行信息传送。

3、若干请求者要访问不同磁头下具有相同编号的扇区:旋转调度根据磁头号可从中任意选择一个磁头进行读/写操作,其余的请求者必须等磁盘再次把扇区旋转到磁头位置时才有可能被选中。

四、信息的优化分布:可减少驱动调度。


第七章    进程的并发

内容概要

本章介绍了进程并发与死锁的基本概念和方法。主要包括:

在顺序执行指令的处理器上,进程的执行是按顺序的,即进程具有顺序性。但是,在计算机系统中往往有若干个进程请求执行,当一个进程的执行没有结束前允许其他进程也开始执行,则说这些进程是可同时执行的。可同时执行的进程交替地占用处理器,若系统中存在一组可同时执行的进程,则说该组进程具有并发性,把这些进程称为“并发进程”。

并发进程相互间可以是无关的,也可以是有交互的。有交互的并发进程一定共享某些资源,由于并发进程执行的相对速度受自身和外界的因素影响,也受进程调度策略的限制,因此并发进程在访问共享资源时可能会出现与时间有关的错误。兵法进程在访问共享资源时可以有两种关系,一种是竞争关系,另一种是协作关系。当并发进程存在竞争关系时,必须互斥地使用共享资源;当并发进程存在协作关系时,必须互通消息。把这两种关系分别称为“进程的互斥”和“进程的同步”,进程间正确的互斥和同步能避免出现与时间有关的错误。

把并发进程中与共享变量有关的程序段称为“临界区”。与某共享变量有关的每个进程都有各自的临界区,但这些临界区都涉及共同的变量,故把它们称为是“相关临界区”。进程的互斥是指并发进程互斥地进入相关临界区,即每次只允许一个进程进入自己的临界区,当有一个进程在它的临界区执行时就不允许其他任何进程进入各自的与其相关的临界区,直到该进程退出临界区为止。进程的同步是指进程使用共享资源时必须互通消息,即只有接到了指定的消息后进程才能去使用共享资源,如果进程没有得到指定消息,虽然此时无进程在使用共享资源,该进程仍不能去使用共享资源,直到消息到达为止。实际上,进程互斥是进程同步的特例,故经常把实现进程同步和进程互斥的机制统称为“同步机制”。

PV操作是一种简便的同步机制,它包括两个不可中断的过程,分别称为“P操作原语”和“V操作原语”。PV操作是对信号量实施操作,若把信号量与共享资源对应起来,则用PV操作可以实现进程的同步和进程的互斥。从教材的实例中可以总结信号量的物理含义(假定信号量是S表示)如下:

S>0时,S表示可使用的资源数或表示可使用资源的进程数;

S=0时,S表示无资源可供使用或表示不允许进程再进入临界区;

S<0时,|S|表示等待使用资源的进程个数或表示等待进入临界区的进程个数。

于是,根据PV操作的性质,任何进程在使用共享资源前应调用P操作。当有可以使用的资源或允许使用资源时(S>0),调用P(S)后不会成为等待,进程可以使用资源。当无资源可使用或不允许使用资源时(S<=0),调用P(S)后进程必然等待。任何进程可调用V操作来归还共享资源使用权,当S>0时调用V(S)后使可用的资源数加1或使可用资源的进程数加1。当S<=0时调用V(S)后将释放一个等待使用资源者或释放一个等待进入临界区者实现进程互斥时,用一个信号量与一组相关临界区对应,这些进程在同一个信号量上调用P操作和V操作来实现互斥。实现进程同步时,每一个消息与一个信号量对应,进程在不同信号量上调用P操作以测试自己需要的消息是否到达,在不同信号量上调用V操作可把不同的消息发送出去。

除PV操作同步机制外,其他的同步机制还有“管程”(monitor)和“忙时等待”等,有兴趣的话可参阅其他书籍。

进程可用信件来传送大量信息,一个进程可以发送一封信,把信息告诉其他进程或请求其他进程协助工作。发送信件者必须在信件中指出信件送给谁(或哪个信箱)以及所要的信息(或信息存放地址),这样才能使收信者收到信件和取道信息。信件的传送要求依赖专门的通信机制,通信机制由一些通信原语组成,其中send原语和receive原语是最基本的通信原语。

多线程技术是操作系统的发展趋势,它能提高计算机系统的性能。

重点内容

(一)进程的顺序性和并发性

1.进程的顺序性

目前使用的计算机的基本特点是处理器顺序执行指令。进程的顺序性就是指进程在顺序处理器上的执行是严格按序的。

当一个进程独占处理器顺序执行时,具有封闭性和可再现性两个特性。

封闭性是指进程执行的结果只取决于进程本身,不受外界影响。可再现性是指当进程重复执行时,必定获得相同的结果。

2.进程的并发性

可同时执行的进程是指这些进程执行在时间上是重叠的,即一个进程的工作没有全部完成之前,另一个进程就可以开始工作。

若系统中存在一组可同时执行的进程,则该组进程具有并发性,可同时执行的进程称为并发进程。

3.并发进程间的关系

并发进程间的关系可以是无关的,也可以是有交互的。并发进程间无关是指它们是各自独立的,即如果一个进程的执行不影响其他进程的执行,且与其他进程的进展情况无关;则并发进程间有交互是指一个进程的执行可能影响其他进程的执行结果,即一个进程的执行依赖其他进程的进展情况。有交互的并发进程一定共享某些资源。

(二)与时间有关的错误

有交互的并发进程可能会同时使用共享资源,如果对这种情况不加控制,在使用共享资源时会出错。典型的例子是由观察者和报告者两个进程管理交通路口的自动计数系统。观察者识别卡车并计数,报告者定时把观察者的计数值打印输出,然后把计数值清0。当这两个进程并发执行时,若报告者进程执行时无卡车通过,则能正确统计某时间段内的卡车数量;若报告者进程执行时有卡车通过,统计结果会产生错误。

(三)临界区与PV操作

1、临界区

临界区是指并发进程中与共享变量有关的程序段。

2、相关临界区

相关临界区是指并发进程中涉及相同变量的那些临界区。

只要若干并发进程的相关临界区互斥执行,就不会造成与时间有关的错误。

3、管理相关临界区的三点要求

(1)一次最多让一个进程在临界区执行;

(2)任何一个进入临界区执行的进程必须在有限的时间内退出临界区;

(3)不能强迫一个进程无限地等待进入它的临界区。

4、PV操作

P操作和V操作是两个在信号量上进行操作的过程,PV操作就是由这两个操作组成的。

假设用S表示信号量,用P(S)和V(S)表示P、V操作。

(1)P(S)的过程如下:

S值减1;

若S<0,则将该进程排入等待S的队列;

若S>=0,则当前进程继续执行。

(2)V(S)的过程如下;

S值加1;

若S<=0,从等待S的队列中移出一个进程并加入到就绪队列,当前进程继续执行;

若S>0,则当前进程继续进行。

不可中断的过程称为原语,所以P操作和V操作也称为P操作原语和V操作原语。

5.用PV操作管理临界区

用一个信号与一组涉及共享变量的相关临界区相对应。信号量的初值定为1,任何一个进程进入临界区前,先调用P操作,退出临界区时调用V操作,就能满足管理相关临界区的三个要求。

(四)进程的互斥

进程的互斥是指当有若干进程都要使用某一共享资源时,任何时刻最多只允许一个进程去使用该资源,其他要使用它的进程必须等待,直到该资源的占用者释放了该资源。

实际上共享资源的互斥使用就是使得并发进程互斥地进入临界区。

7.1 进程的PV操作

一、进程的顺序性

1、进程的顺序性:是指进程在顺序处理器上的执行是严格按序的,即按照程序规定的操作顺序,只有在前一个操作结束后才能开始后继操作。

2、进程顺序执行的特性:

(1)封闭性:进程执行的结果只取决于进程本身,不受外界影响。也就是说,进程执行的结果与其执行的速度无关。

(2)可再现性:进程重复执行时,必定获得同样的结果。

二、进程的并发性

1、并发性:在一个进程的工作没有全部完成之前,另一个进程就可以开始工作,我们说这些进程是可同时执行的,或称它们具有并发性,并且把可同时执行的进程称为并发进程。

2、并发进程间的关系:

(1)无关:如果一个进程的执行不影响其它进程的执行结果,也不依赖其它进程的进展情况,即它们是各自独立的,则说这些进程相互之间是无关的。

(2)有交互:如果一个进程的执行要依赖其它进程的进展情况,或者可能会影响其它进程的执行结果,则说这些进程相互之间是有交互的。有交互的进程并发执行时,执行结果与其执行的相对速度有关。例如,如果输入进程尚未把一批数据全部读入,处理进程就对其进行加工的话,那么其结果就会出错。因而,进程的并发执行会破坏“封闭性”和“可再现性”。

三、与时间有关的错误

造成进程执行不正确的因素是与进程占用处理器的时间、执行的速度以及外界的影响有关。这些因素都与时间有关,所以把它们称为与时间有关的错误。09年7月解答题就考了本知识点

四、临界区与PV操作

(一)临界区

1、临界区:是指并发进程中与共享变量有关的程序段。

2、相关临界区:是指并发进程中涉及相同变量的那些临界区。

说明:如果有进程在临界区执行时,不让另一个进程进入相关的临界区执行,就不会形成多个进程对相同的共享变量交叉访问,于是就可避免出现与时间有关的错误。

3、相关临界区的管理要求:

(1) 一次最多一个进程能够进入临界区。当有进程在临界区执行时,其它想进入临界区执行的进程必须等待。

(2)不能让一个进程无限制地在临界区执行,即任何一个进入临界区的进程必须在有限的时间内退出临界区。

(3)不能强迫一个进程无限制地等待进入它的临界区,即有进程退出临界区时应让一个等待进入临界区的进程进入它的临界区执行。

(二)PV操作(是不可中断的过程,即原语)

1、P操作(占用资源的过程):将信号量 S 减去 1,若结果小于 0,则把调用 P(S) 的进程置成等待信号量 S的状态。

2、V操作(释放资源的过程):将信号量 S 加 1,若结果不大于0, 则释放一个等待信号量 S 的进程。

(三)用PV操作管理临界区

…P(S);

{临界区Ci};

V(S);

7.2  进程的互斥

一、用PV操作实现进程的互斥

进程的互斥:是指当有若干进程都要使用某一共享资源时,任何时刻最多只允许一个进程去使用该资源,其它要使用它的进程必须等待,直到该资源的占用者释放了该资源。 、二、读者/写者问题

1、共享文件:在计算机系统中,把可供多个进程使用的文件称为共享文件。我们把想读文件信息的进程称为读者(读进程),把想修改文件内容的进程称为写者(写进程)。

2、共享文件的管理方式:

(1)不允许多个进程同时使用共享文件: 这种管理方式限制了每次只有一个进程可以使用文件。实际上这仍是一个互斥使用共享资源的问题。

(2)允许多个进程同时使用共享文件。要注意使用规则。

 

7.3  进程的同步

一、协作

1、进程A把一个记录存入缓冲区后,应向进程B发送“缓冲区中有等待处理的记录”的消息。

2、进程B从缓冲区取出一个记录后,应向进程A发送“缓冲区中的记录已取走”的消息。

3、进程A只有在得到进程B发送来的“缓冲区中的记录已取走”的消息后,才能把下一个记录存入缓冲区,否则进程A等待,直到消息到达。

4、进程B只有在得到进程A发送来的“缓冲区中有等待处理的记录”的消息后,才能从缓冲区中取出记录并加工,否则进程B等待,直到消息到达。

二、用PV操作实现进程的同步,07年4月综合体就考了本知识点

1、进程的同步:是指并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消息,当一个进程没有得到另一个进程的消息时应等待,直到消息到达才被唤醒。

2、同步机制:要实现进程的同步就必须提供一种机制,这种机制应能把其它进程所需的消息发送出去,也能测试自己需要的消息是否到达。把能实现进程同步的机制称为同步机制。

3、同步与互斥概括:进程的同步与进程的互斥都涉及到并发进程访问共享资源的问题。从进程互斥和进程同步的讨论中,我们看到,进程的互斥实际上是进程同步的一种特殊情况。实现进程互斥时用 P 操作测试是否可以使用共享资源,这相当于测试“资源可使用”的消息是否到达;用 V 操作归还共享资源,这相当于发送了“共享资源已空闲”的消息。因此互斥使用资源的进程之间实际上也存在一个进程等待另一个进程发送消息的制约关系。所以,经常把进程的互斥与进程的同步统称为进程的同步,把用来解决进程互斥与进程同步的机制(如 PV 操作)统称为同步机制。

4、同步与互斥的混合问题:若一组涉及共享资源的并发进程执行时不仅要等待指定的消息到达,而且还必须考虑资源的互斥使用,那么,就既要实现进程的同步,又要实现进程的互斥。这样一类问题就是同步与互斥的混合问题。

 


7.4   死  锁

内容概要

本节主要介绍了死锁的基本概念以及对解决死锁的几种方法。主要包括:

若系统中存在一组进程,它们中的每一个进程都占用了某种资源而又都在等待其中另一个进程所占用的资源,这种等待永远不能结束,则说系统出现了“死锁”。

死锁是由于进程竞争互斥使用资源且又互不相让形成的,所以,系统中形成死锁一定同时保持了4个必要条件,即互斥使用资源、占用并等待资源、不可抢夺资源和循环等待资源。但要注意这是死锁的必要条件,而不是充分条件。

解决死锁问题可以有3种方式:

(1)死锁的防止。预先确定一些资源分配策略,进程按规定申请资源,系统按预定的策略进行分配,这些功能策略均能使死锁的4个必要条件中的一个条件不成立,从而使系统不发生死锁。

(2)死锁的避免。当进程提出资源申请时,系统动态测试资源分配情况,仅当能确保系统安全时才把资源分配给进程,银行家算法虽然很保守,但它可保证系统时时刻刻都处于安全状态。

(3)死锁的检测。多资源的申请和分配不加限制,只要有剩余的资源就可把资源分配给申请者,这样就可能出现死锁,于是系统要定时运行一个“死锁检测程序”,若检测时没有发现死锁则系统可继续工作;若检测时发现有死锁则必须先解除死锁再继续工作。

在一个实际的操作系统中要兼顾资源的使用效率和安全可靠,对不同的资源可以采用不不同的分配策略,往往采用死锁的防止、避免和检测的混合策略,以使整个系统能处于安全状态不出现死锁。

考情分析

7.4.1死锁的形成

1、死锁概念:若系统中存在一组进程(两个或多个),它们中每个进程都占用了某种资源,又都在等待已被该组进程中的其它进程占用的资源,如果这种等待永远不能结束,则说系统出现了死锁,或者说这组进程处于死锁状态。

2、死锁的形成:

(1)与进程对资源的需求有关;

(2)与进程的执行速度有关;

(3)与资源的分配策略有关。

7.4.2  死锁的防止

一、死锁的必要条件:(即死锁产生一定会成立的条件)

1、互斥地使用资源:每个资源每次只能给一个进程使用。

2、占有且等待资源:一个进程占有了某些资源后又申请新资源而得不到满足时,处于等待资源的状态,且不释放已占资源。

3、不可抢夺资源:任何一个进程不能抢夺另一个进程所占的资源。

4、循环等待资源:相互等待已被其它进程占用的资源。

必要条件说明:以上四个条件仅仅是必要条件而不是充分条件,即只要发生死锁,则这四个条件一定同时成立,如果其中的一个或几个条件不成立,则一定没有死锁。但反之不然,即若这四个条件同时成立,系统未必就有死锁存在。

二、互斥条件

要使互斥使用资源的条件不成立,唯一的办法是允许进程共享资源。但部分硬件设备的物理特性是改变不了的,所以要想破坏“互斥使用资源”这个条件经常是行不通的。

三、占有并等待条件

1、静态分配资源:是指进程必须在开始执行前就申请自己所要的全部资源,仅当系统能满足进程的全部资源申请要求且把资源分配给进程后,该进程才开始执行。

2、释放已占资源:仅当进程没有占用资源时,才允许它去申请资源。因此,如果进程已经占用了某些资源而又要再申请资源,那么按此策略的要求,它应先归还所占的资源,归还后才允许申请新资源。(如进程要占用磁带机,又要申请打印机,可以先启动磁带机工作,完成后先释放磁带机再申请打印机。由于申请者是在归还资源后才申请新资源,故不会出现占有了部分资源再等待其它资源的现象。)

四、不可抢夺条件

为了使这个条件不成立,我们可以约定如下:如果一个进程已占有了某些资源又要申请新资源R,而R已被另一进程P占用因而必须等待时,则系统可以抢夺进程P已占用的资源R。具体做法如下:

(1)若进程A申请的资源R尚未被占用,则系统可把资源R分配给进程A。

(2)若进程A申请的资源R已被进程B占用,则查看进程B的状态。如果进程B处于等待另一个资源的状态,那么就抢夺进程B已占的资源R,并把R分配给进程A,适当的时候再把R归还给进程B使用;否则让进程A处于等待资源R的状态。

(3)一个等待资源的进程只有在得到自己所申请的新资源和所有被其它进程抢夺去的老资源后,才能继续执行。

四、循环等待条件

对资源采用按序分配的策略可使循环等待资源的条件不成立。按序分配资源是指对系统中所有资源排一个顺序,对每一个资源给出一个确定的编号,规定任何一个进程申请两个以上资源时,总是先申请编号小的资源,再申请编号大的资源。

7.4.3  死锁的避免

一、安全状态

1、安全状态概念:如果操作系统能保证所有的进程在有限的时间内得到需要的全部资源,则称系统处于安全状态,否则说系统是不安全的。显然,处于安全状态的系统不会发生死锁,而处于不安全状态的系统可能会发生死锁。

2、资源分配算法:在分配资源时,只要系统能保持处于安全状态,就可避免死锁的发生。故每当有进程提出分配资源的请求时,系统应分析各进程已占资源数、尚需资源数和系统中可以分配的剩余资源数,确定是否处于安全状态。如果分配后系统仍然能维持安全状态,则可为该进程分配资源,否则就暂不为申请者分配资源,直到其它进程归还资源后再考虑它的分配问题。

二、银行家算法(07年综合体考查了本知识点)

1、当一个用户对资金的最大需求量不超过银行家现有的资金时,就可接纳该用户;

2、用户可以分期贷款,但贷款总数不能超过最大需求量;

3、当银行家现有的资金不能满足用户的尚需贷款数时,可以推迟支付,但总能使用户在有限的时间里得到贷款;

4、当用户得到所需的全部资金后,一定能在有限时间里归还所有的资金。

7.4.5  死锁的检测

一、死锁的检测方法

1、每类资源中只有一个资源:

如果每类资源中只有一个资源,则可以设置两张表格来记录进程使用和等待资源的情况。一张为占用表,记录进程占用资源的情况。

另一张为等待表,记录进程正在等待资源的情况。任一进程申请资源时,若该资源空闲,则把该资源分配给申请者,且在占用表中登记,否则把申请者登入等待表中。死锁检测程序定时地检测这两张表。如果发现有循环等待资源的进程,则表明有死锁出现。

2、资源类中含有若干个资源:

(1)初始检测:找出资源已经满足的进程,即不再申请资源的进程。若有这样的进程,则它们一定能在有限的时间内执行结束,且归还所占的资源。所以可以把它们所占的资源与系统中还剩余的资源加在一起作为可分配的资源,同时对这些进程置上标志。

(2)循环检测:检测所有无标志的进程,找出一个尚需资源量不超过系统中的可分配资源量的进程。若能找到,则只要把资源分配给该进程,就一定能在有限时间内收回它所占的全部资源。故可把该进程已占的资源添加到可分配的资源中,同时为该进程置上一个标志。重复执行第二步,直到所有进程均有标志,或无标志的进程尚需资源量均超过可分配的资源量。

(3)结束检测:若进程均有标志,表示当前不存在永远等待资源的进程,也即系统不处于死锁状态。若存在无标志的进程,表示系统当前已有死锁形成,这些无标志的进程就是一组处于死锁状态的进程。检测结束,解除检测时所设置的所有标志。

二、死锁的解除

1、终止进程

(1)终止涉及死锁的所有进程

(2)一次终止一个进程

2、抢夺资源

从涉及死锁的一个或几个进程中抢夺资源,把夺得的资源再分配给卷入死锁的其他进程,直到死锁解除。应注意三个问题:

(1)抢夺哪些进程的哪些资源

(2)被抢夺者的恢复

(3)进程的“饿死”

7.5  进程通信

一、通信机制

1、进程通信:是指通过专门的通信机制实现进程间交换大量信息的通信方式。

2、通信机制:采用高级通信方式时,进程间用信件来交换信息。一个正在执行的进程可以在任何时刻向其它进程发送信件,一个正在执行的进程也可以在任何时刻向其它进程索取信件。

3、信件构成:

(1)发送者名:为发送信件进程的进程名。

(2)信息(或信息存放的地址和长度):指要传送给某一进程的信息,若信息量大,则可把信息存放在某个缓冲区中,在信件中指出缓冲区的起始地址和信息长度。

(3)等/不等回信:表示信件发送者是否等信件接收者的回信。

(4)回信存放地址:若需要等回信,应指明回信的存放地址。

4、通信原语:

(1)发送原语(send):应给出两个参数,一个是信件或者信件存放地址;另一个是信送到哪里。

(2)接收原语(receive):应给出两个参数,一个是从哪里取信;另一个是取出的信存放在哪里。

5、通信方式:

(1)直接通信方式:固定在一对进程之间进行的通信。

(2)间接通信方式:以信箱为媒体来进行的通信。

二、间接通信

1、信箱构成:

(1)信箱说明:包括可存信件数、已有信件数、可存信件的指针等参数。

(2)信箱体:存放信件的区域。

2、间接通信的通信规则:

(1)若发送信件时信箱已满,则应把发送信件的进程置成 “等信箱” 状态,直到信箱有空时才被释放。

(2)若取信件时信箱中无信,则应把接收信件的进程置成 “等信件” 状态,直到信箱中有信件时才被释放。

3、间接通信中通信原语的功能及实现要求:

(1)send(N,M)

A.功能:把信件 M 送到指定的信箱 N 中。

B.实现要求:查指定信箱 N。若信箱未满,则按“可存信件的指针”把信件 M存入信箱且释放“等信件”者;若信箱已满,则把发送信件进程置为“等信箱”状态。

(2)receive(N,Z)

A.功能:从指定信箱 N 中取出一封信,存到指定的地址 Z 中。

B.实现要求:查指定信箱 N 。若信箱中有信,则取出一封信存于 Z 中,且释放“等信箱”者;若信箱中无信,则把接收信件进程置为“等信件”状态。

更多相关推荐:
学习操作系统心得体会

学习操作系统心得体会计算机操作系统是铺设在计算机硬件上的多层系统软件不仅增强了系统的功能而且还隐藏了对硬件操作的细节由它实现了对计算机硬件操作的抽象操作系统是管理计算机系统的全部硬件资源包括软件资源及数据资源控...

Linux操作系统学习小结

Linux操作系统与实践课程报告班级通信20xx1班姓名郑重学号20xx2599日期20xx725成绩1Linux的目录结构及常用命令介绍11Linux目录结构Linux是一个非常注重文件结构和管理的系统很多目...

Linux操作系统学习心得

Linux操作系统学习心得这学期有幸学习了《嵌入式系统设计》这门课,在胡佳文老师的教导下深入了解了有关于嵌入式系统,ARM9,Linux系统等很多方面的知识,获益良多,在学习过程中自己也遇到了很多问题,同时受到…

操作系统课程学习心得

操作系统课程学习心得1操作系统的功能:操作系统通常有这几方面功能:任务管理、进程管理、作业管理、设备管理等等。2操作系统的应用:操作系统是控制和管理计算机系统内各种硬件和软件资源、合理有效地组织计算机系统的工作…

Linux操作系统总结与心得

一知识总结我很荣幸选了“Linux操作系统”这门课程,因为在这门课程的学习过程中,我们通过老师的讲解以及在网上查阅资料,学到了许多关于Linux操作系统的知识,更重要的是学会了如何应用与操作Linux操作系统,…

OSE操作系统学习总结

OSEOSE理解OSE就是用于快速调度的操作系统其主要包括内存管理与进程管理两个方面OSE的全局变量与初始化OSE的Main函数就调用一个函数startOSE在startOSE函数中首先调用odoconfigs...

操作系统总结

第一章操作系统引论操作系统的目标方便性有效性可扩充性开放性操作系统的作用有作为用户与计算机硬件系统之间的接口作为计算机系统资源的管理者用作扩充机器用户使用计算机的三种方式命令方式系统调用方式图形窗口方式资源分为...

操作系统原理知识总结

第一章操作系统的定义操作系统是一个大型的程序系统它负责计算机的全部软硬件资源的分配调度工作控制协调多个任务的活动实现信息的存取保护并提供用户接口使用户获得良好的工作环境操作系统的基本功能存储器管理功能处理机管理...

操作系统期末复习重点概念总结

操作系统是配置在计算机硬件上的第一层软件是对硬件系统的首次扩充其主要的作用是管理好这些设备提高它们的利用率和系统吞吐量并为用户和应用程序提供一个简单的接口便于用户使用单批道处理系统工作方式首先由监督程序将磁带上...

计算机操作系统复习部分知识点总结(仅供参考)

计算机操作系统知识点部分总结仅供参考第一章1操作系统的定义目标作用操作系统是配置在计算机硬件上的第一层软件是对硬件系统的首次扩充设计现代OS的主要目标是方便性有效性可扩充性和开放性OS的作用可表现为aOS作为用...

操作系统常见问答题总结

操作系统常见问答题总结1简述操作系统的定义操作系统是计算机系统的一种系统软件它统一管理计算机系统的资源和控制程序的执行2在多道程序设计技术的系统中操作系统怎样才会占领中央处理器只有当中断装置发现有事件发生时它才...

华图军转干系统精讲班学习总结

这周一到周六我参加了华图的军转干申论的系统精讲班的培训要不是单位给报销我肯定不会参加培训班但是这几天课上下来还是有点收获的大致说一下上课的情况授课老师是张丽伟算的上是华图自己的一个名师讲课比较幽默看见大家下午上...

操作系统学习总结(43篇)