计算机操作系统复习知识点汇总

计算机操作系统复习知识点汇总
计算机操作系统复习知识点汇总

计算机操作系统复习知识点汇总

第一章绪论

1、操作系统的定义、目标、作用

(1)OS是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。(2)OS的主要目标是:方便性,有效性,可扩充性和开放性.

(3)OS的作用可表现为:

a. OS作为用户与计算机硬件系统之间的接口;(一般用户的观点)

b. OS作为计算机系统资源的管理者;(资源管理的观点)

c. OS实现了对计算机资源的抽象.

2、脱机输入输出方式和SPOOLing系统(联机输入输出方式)的联系和区别

脱机输入输出技术(Off-Line I/O)是为了解决人机矛盾及CPU的高速性和I/O设备低速性间的矛盾而提出的.它减少了CPU的空闲等待时间,提高了I/O速度.

由于程序和数据的输入和输出都是在外围机的控制下完成的,或者说,它们是在脱离主机的情况下进行的,故称为脱机输入输出方式;反之,在主机的直接控制下进行输入输出的方式称为联机输入输出方式

联机输入输出技术也提高了I/O的速度,同时还将独占设备改造为共享设备,实现了虚拟设备功能。

3、多道批处理系统需要解决的问题

处理机管理问题、存管理问题、I/O设备管理问题、文件管理问题、作业管理问题

4、OS具有哪几个基本特征?它的最基本特征是什么?

a. 并发性(Concurrence),共享性(Sharing),虚拟性(Virtual),异步性(Asynchronism).

b. 其中最基本特征是并发和共享.

c. 并发特征是操作系统最重要的特征,其它特征都是以并发特征为前提的。

5、并行和并发

并行性和并发性是既相似又有区别的两个概念,并行性是指两个或多个事件在同一时刻发生;而并发性是指两个或多少个事件在同一时间间隔发生。

6、操作系统的主要功能,各主要功能下的扩充功能

a. 处理机管理功能:

进程控制,进程同步,进程通信和调度.

b. 存储管理功能:

存分配,存保护,地址映像和存扩充等

c. 设备管理功能:

缓冲管理,设备分配和设备处理,以及虚拟设备等

d. 文件管理功能:

对文件存储空间的管理,目录管理,文件的读写管理以及文档的共享和保护

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

a. 用户接口:是给用户使用的接口,用户可通过该接口取得操作系统的服务

b. 程序接口:是给程序员在编程时使用的接口,是用户程序取得操作系统服务的惟一途径。

第二章进程管理

1、进程的定义、特征,进程实体的组成

(1)进程是进程实体的运行过程,是系统进行资源分配的一个独立单位。(2)进程具有结构特征、动态性、并发性、独立性和异步性。

(3)进程实体由程序段、相关的数据段和PCB三部分构成。

2、进程的三种基本状态及其转换

运行中的进程可能具有就绪状态、执行状态、阻塞状态三个基本状态。

3、引起进程进入挂起状态的原因如下:

a. 终端用户的请求

b. 父进程请求

c. 负荷调节的需要

d. 操作系统的需要

具有挂起状态的进程转换图— P39

4、创建进程的主要步骤

a. 为一个新进程创建PCB,并填写必要的管理信息。

b. 把该进程转入就绪状态并插入就绪队列之中。

5、进程控制块(PCB)的作用

1)系统为了管理进程设置的一个专门的数据结构,存放了用于描述该进程情况和控制进程运行所需的全部信息。

2)系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志3)进程与PCB是一一对应的

为什么说PCB是进程存在的唯一标志?

在进程的整个生命周期中,系统总是通过其PCB对进程进行控制,系统是根据进程的PCB而不是任何别的什么而感知到该进程的存在的,所以说,PCB是进程存在的唯一标志。

6、进程控制块的组织方式

方式、索引方式

7、原语的定义、组成、作用

原语是由若干条指令组成的,用于完成一定功能的一个过程,与一般过程的区别在于:它们是“原子操作”,是一个不可分割的基本单位,在执行过程中不允许中断。原子操作在管态下执行,常驻存。

原语的作用是为了实现进程的通信和控制,系统对进程的控制如不使用原语,就会造成其状态的不稳定性,从而达不到进程控制的目的。

8、引起创建进程的事件

用户登录、作业调度、提供服务、应用请求

9、引起进程终止的事件

正常结束、异常结束、外界干预

10、引起进程阻塞和唤醒的事件

请求系统服务、启动某些操作、新数据尚未到达、无新工作可做

11、临界资源和临界区

(1)临界资源是指每次仅允许一个进程访问的资源。

属于临界资源的硬件有打印机、磁带机等,软件有消息缓冲队列、变量、数组、缓冲区等。诸进程间应采取互斥方式,实现对这种资源的共享。

(2)每个进程中访问临界资源的那段程序称为临界区(Critical Section),不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。12、同步机制应遵循的规则

空闲让进、忙则等待、有限等待、让权等待

13、进程通信的类型

进程间通信机制包括:共享存系统、消息传递系统以及管道通信系统。

14、线程的定义、属性

在多线程OS中,通常一个进程中包含多个线程,每个线程都是作为利用CPU 的基本单位,是花费最小开销的实体。

线程具有下述属性:(1)轻型实体—线程中的实体基本上不拥有系统资源,只是有一点必不可少的、能保证其独立运行的资源。

(2)独立调度和分派的基本单位(3)可并发执行。(4)共享进程资源。

15、进程和线程的比较

a. 调度性。在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程,在引入线程的OS中,则把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位;

b. 并发性。在引入线程的OS中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间,亦可并发执行,因而使OS具有更好的并发性;

c. 拥有资源。无论是传统的操作系统,还是引入了线程的操作系统,进程始终是拥有资源的一个基本单位,而线程除了拥有一点在运行时必不可少的资源外,本身基本不拥有系统资源,但它可以访问其隶属进程的资源;

d. 系统开销。由于创建或撤销进程时,系统都要为之分配和回收资源,如存空间等,进程切换时所要保存和设置的现场信息也要明显地多于线程,因此,操作系统在创建、撤销和切换进程时所付出的开销将显著地大于线程。

16.进程与程序的区别

①程序是静态的,进程是动态的;

②进程更能真实地描述并发,而程序不能;

③进程具有创建其他进程的功能,而程序没有

④进程只是一次执行过程,有生命周期;而程序可作为软件资源长期保存,

是相对长久的;

进程是系统分配调度的独立单位,能与其他进程并发执行;

17.进程互斥与同步的基本概念

i.进程互斥:由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程

间竞争使用这些资源,进程的这种关系为进程的互斥。

ii.进程同步:在并发执行过程中,合作完成同一个任务的多个进程,在执行速度或某些时序点上必须相互协调的合作,这种制约性关系叫作进程同步。

18、同步机制应遵循的规则

空闲让进、忙则等待、有限等待、让权等待

19.常用的几种信号量机制

整型信号量、记录型信息量、AND型信息量、信号量集。

第三章处理机调度

1、高级调度与低级调度的区别

高级调度又称为作业调度或长程调度,调度对象是作业,作业调度往往发生于一个(批)作业运行完毕,退出系统,而需要重新调入一个(批)作业进入存时,故作业调度的周期长;低级调度又称为进程调度和短程调度,调度物件为进程(或核级线程),进程调度的运行频率最高,是最基本的一种调度,多道批处理、分时、实时三类OS中必须配置这种调度。

引入中级调度的主要目的:是为了提高系统资源的利用率和系统吞吐量

2、低级调度的功能

保存处理机的现场信息、按某种算法选取进程、把处理器分配给进程

3、进程调度方式

(1)非抢占方式—实现简单、系统开销小、适用于大多数的批处理系统环境(2)抢占方式——原则:优先权原则、短作业(进程)优先原则、时间片原则4、同时具有三级调度的调度队列模型

当在OS中引入中级调度后,人们可把进程的就绪状态分为存就绪和外存就绪,类似的阻塞状态也可以同样划分。

5、调度算法▲

1、先来先服务FCFS

2、短作业(进程)优先SJF(SPF)

3、高优先权优先

4、高响应比优先调度算法(HRN)。

5、时间片轮转法

1) 要求:掌握算法思想。并能对前4种算法根据算法思想计算周转时间、平均周转时间、带权周转时间、平均带权周转时间,

周转时间= 完成时间–到达时间=等待时间+服务时间

2) 掌握先来先服务、短作业(进程)优先、高响应优先调度算法三种算法性能评价:

a.先来先服务算法即适合于作业调度也适用于进程调度,且算法较为简单,比较适合长作业(或长进程)不适合短作业(或进程)。

b.短作业(进程)优先算法,能有效降低作业的平均等待时间,提高系统吞吐量。但该算法与用户做出的估计运行时间有很大的关系,对长作业(进程)不利,有利于短作业(进程)。

c.高响应比优先调度算法,即照顾了短作业又考虑了长作业到达的先后次序,它不会使长作业长期得不到服务。

6高响应比优先调度算法

优先权=等待时间+要求服务时间\要求服务时间

响应比=(等待时间+要求服务时间)/要求服务时间=响应时间/要求服务时间7、最低松弛度优先调度算法即LLF算法

该算法是根据任务紧急(或松弛)的程度,来确定任务的优先级。

8、何谓死锁?产生死锁的原因和必要条件是什么?

a.死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进;

b.产生死锁的原因有二,一是竞争资源,二是进程推进顺序非法;

c.必要条件是: 互斥条件,请求和保持条件,不剥夺条件和环路等待条件。

互斥条件:一个资源一次只能被一个进程使用。

请求和保持条件:保留已经得到的资源,还要求其它的资源。

不剥夺条件:资源只能被占有者释放,不能被其它进程强行抢占。

环路等待条件:系统中的进程形成了环形的资源请求链。

9、处理死锁的基本方法

(1)预防死锁—破坏产生死锁的四个必要条件中的一个或几个条件

(2)避免死锁—破坏产生死锁的四个必要条件

(3)检测死锁—通过系统设置的检测机构,及时检测出死锁的发生

(4)解除死锁—撤销或挂起一些进程

10、预防死锁的方法

a.摒弃"请求和保持"条件

b.摒弃"不剥夺"条件

c.摒弃"环路等待"条件

11、银行家算法▲

要求掌握能够根据安全性检测算法,通过查找安全序列来判断某个时刻系统是否处于安全状态。能利用银行家算法来计算:当某进程提出资源请求时,系统是否分配。

12、死锁检测

掌握死锁定理的概念:当且仅当一组进程某个状态S的资源分配图是不可完全简化的,则说明S状态为死锁状态。

知道在进行死锁的检测常用的工具是资源分配图,并通过对资源分配图的化简判断一组进程是否处于安全状态(无环)。

第四章存储管理

1、存储器按存储量、速度怎么划分?

至少应具有三级:最高层为CPU寄存器、中间为主存、最底层为辅存;

较高档点的根据具体功能还可细分为:寄存器;高速缓存、主存储器、磁盘缓存;固定硬盘、可移动存储介质等6层。

主存储器(简称存或主存):容量一般为数十MB到数GB,其访问速度远低于CPU执行指令的速度。为此引入寄存器和高速缓存,寄存器访问速度最快,价格昂贵,容量不大;高速缓存容量大于或远大于寄存器,从几十KB到几十MB,访问速度快于主存储器。

2、程序的装入方式

绝对装入方式、可重定位装入方式、动态运行时装入方式

3、程序的方式分类

静态、装入时动态、运行时动态

4、对换的定义、分类、实现

对换是把存中暂时不能运行的进程或者暂时不用的程序和数据调到外存上,以便腾出足够的存空间,再把已具备运行条件的进程或进程所需要的程序和数据调入存。

以整个进程为单位,称为“整体对换”或“进程对换”;以“页”或“段”为单位,分别称为“页面对换”和“分段对换”,又称为“部分对换”

为了实现进程对换,系统必须能实现三方面的功能:对换空间的管理、进程的换出,以及进程的换入。

6、基本分页存储管理方式(重点考查)

1)、分页的基本原理

分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,将这些页面装入到存一些不连续的存块中。

若将一个进程的所有页面一次全部装入到存叫基本分页;若按进程的运行情况分多次部分装入到存叫请求式分页。

由于进程的最后一页经常装不满一块而形成不可利用的碎片,称为页碎片系统为每个进程建立一页面映像表,简称页表。页表的作用是实现从页号到物理块号的地址映射。

2)、分页系统的地址变换机构▲

掌握:能根据给定的逻辑地址和页表容转换出物理地址(注意在进行地址变换前要注意判断页号是否越界),并能掌握地址变换机构图。

7 、基本分段存储管理方式

1)、分段存储管理方式的引入原因

引入分段存储管理方式,主要是为了满足用户和程序员的一些需要:

方便编程、信息共享、信息保护、动态增长、动态

2)、分段系统的基本原理

在分段存储管理方式中,作业的地址空间被划分为若干个(二维)段,每个段定义了一组逻辑信息,逻辑地址由段号和段地址组成。每个段在表中占有一个表项,其中记录了该段在存中的起始地址(又称为“基址”)。段表是用于实现从逻辑段到物理存区的映射。将一个作业的这些段装入到存一些不连续的区域中(在分段中一个作业获得的地址空间是不连续的,但是每个段获得的空间是连续的)。当将一个作业的所有段一次全部装入到存的是基本分段;若按作业的运行情况分多次部分装入到存的是请求式分段。在分段中也会出现碎片。

8、分段系统的地址变换机构▲

掌握:能根据给定的逻辑地址和段表容转换出物理地址(注意在进行地址变换前要注意判断段号和段地位移量是否越界。)

9、分段和分页的主要区别

a. 分页和分段都采用离散分配的方式,且都要通过地址映射机构来实现地址变换,这是它们的共同点;

b. 对于它们的不同点有三,第一,从功能上看,页是信息的物理单位,分页

是为实现离散分配方式,以消减存的外零头,提高存的利用率,即满足系统管理的需要,而不是用户的需要;而段是信息的逻辑单位,它含有一组其意义相对完整的信息,目的是为了能更好地满足用户的需要;

c. 页的大小固定且由系统确定,而段长度不固定,决定于用户所编写的程序;

d. 分页的作业地址空间是一维的,而分段的作业地址空间是二维的.

10、虚拟存储器的特征及其部关联

a. 虚拟存储器具有多次性,对换性和虚拟性三大主要特征;

b. 其中所表现出来的最重要的特征是虚拟性,它是以多次性和对换性为基础

的,而多次性和对换性又必须建立在离散分配的基础上。

11、页面置换算法▲

1、先进先出FIFO

2、最佳置换算法OPT

3、最近最久未使用(LRU)置换算法

4、Clock置换算法

5、最少使用(LFU)置换算法

1)要求:掌握算法思想、名称缩写。并能对前3种算法根据算法思想计算缺页中断次数和缺页中断率,参考书P150页和作业题。)

2)掌握先进先出FIFO、最佳置换算法OPT、最近最久未使用(LRU)置换算法的性能评价

–先进先出:实现简单;性能最差,与进程实际的运行不相适应,且有可能会出现Belady现象(即在未给进程或作业分配它所要求的全部页面时,有时会出现

分配给作业的存块数增多,缺页次数反而会增多的奇怪现象)

–最佳置换算法OPT:理论上,性能最佳;实际上,无法实现;通常只用在研究其它算法时,做参考评价。

最近最久未使用(LRU)置换算法:性能较好;实现复杂,需要硬件支持。

12、分段保护

采取以下措施保证信息安全:越界检查、存取控制检查、环保护机构

第五章设备管理

1、I/O设备按使用特性、传输速率、信息变换、共享属性如何分类按设备的使用特性分类:存储设备(又称外存、后备存储器、辅助存储器);输入输出设备(又可具体划分:输入设备(键盘、鼠标、扫描仪、视频摄像、各类传感器)、输出设备(打印机、绘图仪、显示器、数字视频显示设备、音响输出设备)、交互式设备)

按传输速率分类:低速设备(键盘、鼠标、语音的输入输出设备);中速设备(行式打印机、激光打印机);高速设备(磁带机、磁盘机、光盘机)。

按信息交换的单位分类:块设备(磁盘);字符设备(交互式终端、打印机)按设备的共享属性分类:独占设备;共享设备(磁盘);虚拟设备

2、设备控制器的组成

设备控制器由以下三部分组成:(1)设备控制器与处理机的接口,该接口用于实现CPU与设备控制器之间的通信,提供有三类信号线:数据线、地址线和控制线。(2)设备控制器与设备的接口,可以有一个或多个接口,且每个接口连接一台设备。每个接口都存在数据、控制和状态三种类型的信号。(3)I/O逻辑,用于实现对设备的控制。其通过一组控制线与处理机交互,处理机利用该逻辑向控制器发送I/O命令,I/O逻辑对收到的命令进行译码。

3、I/O通道设备如何引入

虽然在CPU和I/O设备之间增加了设备控制器后,已能大大减少CPU对I/O

的干预,但当主机配置的外设很多时,CPU的负担仍然很重,为此,在CPU和设备控制器之间又增设了通道。

I/O通道是一种特殊的处理机,它具有执行I/O指令的能力,并通过执行通道(I/O)程序来控制I/O操作。

通道与普通处理机的区别:1)没有自己的存,且与主机共享主机存2)执行的指令单一,主要执行与I/O有关的指令。

通道分为:字节多路通道(主要连接低速字符设备);数组选择通道(主要连接高速块设备);数组多路通道(主要连接中高速块设备)

4、有哪几种I/O控制方式?各适用于何种场合?

(1)I/O控制方式:程序I/O方式、中断驱动I/O控制方式、

DMAI/O控制方式、I/O通道控制方式。

(2)程序I/O方式适用于早期的计算机系统中,并且是无中断的计算机系统;

中断驱动I/O控制方式是普遍用于现代的计算机系统中;

DMA I/O控制方式适用于I/O设备为块设备时在和主机进行数据交换的一种I/O控制方式;

当I/O设备和主机进行数据交换是一组数据块时通常采用I/O通道控制方式,但此时要求系统必须配置相应的通道及通道控制器。

5、DMA控制器的组成

(1)DMA控制器由三部分组成:主机与DMA控制器的接口、DMA控制器与块设备的接口、I/O控制逻辑。

(2)DMA方式与中断控制方式的区别:

相同点是都是以块为单位进行传输。

区别是:1)CPU处理中断的时间:

●中断控制方式:是在数据缓冲寄存器满之后要求CPU进行中断处理

●DMA方式:是在所要求转送的数据块全部传送结束时要求CPU进行

中断处理。这就大大减少了CPU进行中断处理的次数。

2)数据传送的完成者:

●中断控制方式:是在中断处理时由CPU控制完成的,

●DMA方式:是DMA控制器完成的。

6、为了实现主机与控制器之间成块数据的直接交换,需设置DMA控制器中四类寄存器

DR:数据寄存器,暂存从设备到存或从存到设备的数据

MAR:存地址寄存器

DC:数据计数器,存放本次CPU要读或写的字(节)数

CR:命令\状态寄存器,接收从CPU发来的I/O命令,或相关控制信息,或设备状态

7、缓冲的引入原因

操作系统引入缓冲机制的主要原因可归结为以下几点:(1)缓和CPU与I/O设备间速度不匹配的矛盾;(2)减少对CPU的中断频率,放宽对中断响应时间的限制;(3)提高CPU与I/O设备之间的并行性。

8、缓冲池的组成、工作方式

三个队列:空缓冲队列、输入队列、输出队列

四种工作缓冲区:(1)用于收容输入数据的工作缓冲区;(2)用于提取输入数据的工作缓冲区;(3)用于收容输出数据的工作缓冲区;(2)用于提取输出数据的工作缓冲区;

9、SPOLLing系统的定义、组成、特点

SPOOLing系统是对脱机I/O工作的模拟,其必须有高速随机外存(通常采用磁盘)

的支持。SPOOLing系统主要有以下四个部分:

(1)输入井和输出井,为磁盘上开辟的两大存储空间,分别模拟脱机输入/出时的磁盘,并用于收容I/O设备输入的数据和用户程序的输出数据;(2)输入缓冲区和输出缓冲区,在存中开辟,分别用于暂存由输入设备和输出井送来的数据;(3)输入进程SPi和输出进程SPo,分别模拟脱机输入/出时的外围控制机,用于控制I/O过程;(4)I/O请求队列,由系统为各个I/O请求进程建立的I/O请求表构成的队列。

SPOLLing系统的特点:提高了I/O的速度;将独占设备改造为共享设备;实现了虚拟设备功能。

10、磁盘的类型和访问时间组成

磁盘分为两类:固定头磁盘(一般为大容量磁盘)和移动头磁盘(一般为中小型容量磁盘)。

磁盘访问时间=寻道时间+旋转延迟时间+数据传输时间

11、磁盘磁盘调度算法▲

1、先来先服务FCFS

2、最短寻道时间优先SSTF

3、扫描(Scan)算法(又称为“电梯调度算法“)

4、循环扫描(CScan)算法

1)要求:掌握算法思想、名称缩写。并能根据算法思想计算碰头的寻道轨迹,寻道距离和寻道时间,参考书P194页和作业题。)

2)掌握算法性能评价

●先来先服务FCFS:公平、简单;平均寻道时间可能较长,

●最短寻道时间优先SSTF:平均寻道时间比FCFS算法短,但可能会出现“饥

饿现象”和“磁臂粘着”现象。

●扫描(Scan)算法:消除了“饥饿”现象,但可能会出现“磁臂粘着”现象。

●循环扫描(CScan)算法:改进了对于边缘区磁道访问的不公平,但可能会

出现“磁臂粘着”现象。

5.N-Step-Scan和FSCAN算法:可避免出现“磁臂粘着”现象。

第六章文件管理

1、文件的定义、属性

文件是指由创建者所定义的、具有文件名的一组相关信息的集合,可分为有结构文件和无结构文件。

文件的属性包括:文件类型、文件长度、文件的物理位置、文件的建立时间2、文件类型按用途、文件中数据的形式、存取控制属性、组织形式和处理方式如何划分?

按用途分类:系统文件、用户文件、库文件

按文件中数据的形式分类:源文件、目标文件、可执行文件

按存取控制属性分类:只执行文件、只读文件、读写文件

按组织形式和处理方式划分:普通文件、目录文件、特殊文件

(其中目录文件:由文件的目录信息构成的文件特殊文件:被视为文件的设备称为设备文件,也叫特殊文件。)

3、有结构文件按不同方式组织形成哪几种文件?

顺序文件、索引文件、索引顺序文件

4、顺序文件的适用场合、优缺点

最佳适用场合是在对诸记录进行批量存取时。

批量存取时对顺序文件的存取速率是所有逻辑文件中最高的;只有顺序文件能存储在磁带上,并能有效地工作。

在交互应用场合,顺序文件表现出来的性能很差;如果想增加或删除一个记录都比较困难。

5、外存分配方式

1.连续分配

2.分配

3.索引分配

要求:掌握三种分配方式如何实现对一个文件分配外存空间,及三种方式的优缺点。

1)连续分配:要求为每一个文件分配一组相邻接的盘块;应在文件的目录项中记录第一个记录所在的盘块号和文件长度;(优点:(1)顺序访问容易;(2)顺序访

问速度快;(3)所需的磁盘寻道次数和寻道时间最少。缺点:(1)要求有连续的

存储空间(有外碎片问题);(2)必须事先知道文件的长度,文件不能动态增长(3)

不利于文件插入和删除。

2)分配:一个文件的信息存放在若干不连续的物理块中,各块之间通过指针连接,由前一个物理块指向下一个物理块,将同属于一个文件的多个离散的盘块成一

个链表,由次所形成的物理文件称为文件。

方式又可分为隐式和显式。

优点:(1)提高了磁盘空间利用率,不存在外部碎片问题;(2)有利于文件

插入和删除;(3)有利于文件动态扩充。缺点:只适合顺序存取,不适于

随机存取;(2)不可靠,如指针出错;(3)需更多的寻道次数和寻道时间;

3)索引分配:一个文件的信息存放在若干不连续物理块中,系统为每个文件建立一个专用数据结构——索引表,将这些分配给文件的所有物理块号的块号都存

放在该索引表中,并在文件目录项中填上指向该索引表的指针。

相应的文件结构称为“索引结构”,相应的物理文件称为“索引文件”。

分类:单级索引分配、多级索引分配、混合索引分配。

优点:(1)即能顺序存取,又能随机存取;(2)满足了文件动态增长、插入

删除的要求;(3)也能充分利用外存空间。缺点:需更多的寻道次数和寻道

时间。

6、对目录管理的要求有哪些?

有以下要求:a) 实现“按名存取”b) 提高对目录的检索速度c) 文件共享d) 允许文件重名

7、目录的三种结构

单级目录结构、双级目录结构、树型目录结构。

1)单级目录结构:在整个文件系统中建立一目录表,每个文件占一个目录项。优点:简单,能实现目录管理的基本功能----按名存取。缺点:查找速度慢;不允许重名;不便于文件共享。

2)双级目录结构:为每个用户建立一个单独的目录UFD;系统中再建立一个主文件目录MFD,在主文件目录中,每个目录文件都占用一个目录项。优点:检索速度较快;不同的用户目录中文件可以同名;不同用户可以共享文件。

3)树型目录结构:若在两级目录结构中,进一步允许用户创建自己的子目录并相应地组织自己的文件,便可将两级目录变为三级文件目录。依次类推,可进一步形成四级、五级

文件目录。把三级及以上文件目录结构称树型目录结构。

树型目录具有检索效率高、允许重名、便于实现文件共享等一系列优点。

8、文件存储空间常用的管理方法

1空闲表法和空闲链表法(分为:空闲盘块链和空闲盘区链);

2位示图法;

3成组法

其中位示图是利用二进制的一位来表示磁盘中一个盘块的使用情况。由所有盘块对应的位构成一个集合,称为位示图。

9、常用的两种文件共享方式

基于索引结点的共享方式、利用符号链实现文件共享

10、文件的访问控制方式有:

访问控制矩阵、访问控制表、访问权限表、口令、密码

进程/线程同步与通信总结

一、进程/线程间同步机制。

临界区(Critical Section)、互斥量(Mutex)、信号量(Semaphore)、事件(Event)的区别

1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任意时刻只允许一个线程对共享资源进行访问,如果有多个线程试图访问公共资源,那么在有一个线程进入后,其他试图访问公共资源的线程将被挂起,并一直等到进入临界区的线程离开,临界区在被释放后,其他线程才可以抢占。

2、互斥量:采用互斥对象机制。只有拥有互斥对象的线程才有访问公共资源的权限,因为互斥对象只有一个,所以能保证公共资源不会同时被多个线程访问。互斥不仅能实现同一应用程序的公共资源安全共享,还能实现不同应用程序的公共资源安全共享.互斥量比临界区复杂。因为使用互斥不仅仅能够在同一应用程序不同线程中实现资源的安全共享,而且可以在不同应用程序的线程之间实现对资源的安全共享。

3、信号量:它允许多个线程在同一时刻访问同一资源,但是需要限制在同一时刻访问此资源的最大线程数目.信号量对象对线程的同步方式与前面几种方法不同,信号允许多个线程同时使用共享资源,这与操作系统中的PV操作相同。它指出了同时访问共享资源的线程最大数目。

信号量S是一个整数,S大于等于零时代表可供并发进程使用的资源实体数,但S小于零时则表示正在等待使用共享资源的进程数。

P操作申请资源:

(1)S减1;

(2)若S减1后仍大于等于零,则进程继续执行;

(3)若S减1后小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转入进程调度。

V操作释放资源:

(1)S加1;

(2)若相加结果大于零,则进程继续执行;

(3)若相加结果小于等于零,则从该信号的等待队列中唤醒一个等待进程,然后再返回原进程继续执行或转入进程调度。

4、事件:通过通知操作的方式来保持线程的同步,还可以方便实现对多个线程的优先级比较的操作.

总结:

1.互斥量与临界区的作用非常相似,但互斥量是可以命名的,也就是说它可以跨越进程使用。所以创建互斥量需要的资源更多,所以如果只为了在进程部是用的话使用临界区会带来速度上的优势并能够减少资源占用量。

2.互斥量(Mutex),信号量(Semaphore),事件(Event)都可以被跨越进程使用来进行同步数据操作,而其他的对象与数据同步操作无关,但对于进程和线程来讲,如果进程和线程在运行状态则为无信号状态,在退出后为有信号状态。所以可以使用WaitForSingleObject来等待进程和线程退出。

3.通过互斥量可以指定资源被独占的方式使用,但如果有下面一种情况通过互斥量就无法处理,比如现在一位用户购买了一份三个并发访问许可的数据库系统,可以根据用户购买的访问许可数量来决定有多少个线程/进程能同时进行数据库操作,这时候如果利用互斥量就没有办法完成这个要求,信号灯对象可以说是一种资源计数器。

二、进程间通信方式

进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享存区。除此以外,那就是双方都可以访问的外设了。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它数据库中的某些表项和记录交换信息。广义上这也是进程间通信的手段,但是一般都不把这算作“进程间通信”。因为那些通信手段的效率太低了,而人们对进程间通信的要要有一定的实时性。

进程间通信主要包括管道, 系统IPC(包括消息队列,信号量,共享存储), SOCKET.

a.管道分为命名管道和非命名管道,非命名管道只能用于亲属进程之间的通信,而命名管道则可用于无亲属关系的进程之间。命名管道就是FIFO,管道是先进先出的通讯方式

b.消息队列用于运行于同一台机器上的进程间通信,与管道相似。首先在一个进程中创建一个消息队列,然后再往消息队列中写数据,而另一个进程则从那个消息队列中取数据。需要注意的是,消息队列是用创建文件的方式建立的,如果一个进程向某个消息队列中写入了数据之后,另一个进程并没有取出数据,即使向消息队列中写数据的进程已经结束,保存在消息队列中的数据并没有消失,也就是说下次再从这个消息队列读数据的时候,就是上次的数据!

c.共享存通常由一个进程创建,其余进程对这块存区进行读写。得到共享存有两种方式:映射/dev/mem设备和存映像文件。前一种方式不给系统带来额外的开销,但在现实中并不常用,因为它控制存取的是实际的物理存;

d.本质上,信号量是一个计数器,它用来记录对某个资源(如共享存)的存取状况。一般说来,为了获得共享资源,进程需要执行下列操作:

(1)测试控制该资源的信号量;

(2)若此信号量的值为正,则允许进行使用该资源,进程将进号量减1;

(3)若此信号量为0,则该资源目前不可用,进程进入睡眠状态,直至信号量值大于0,进程被唤醒,转入步骤(1);

(4)当进程不再使用一个信号量控制的资源时,信号量值加1,如果此时有进程正在睡眠等待此信号量,则唤醒此进程。

e.套接字通信并不为Linux所专有,在所有提供了TCP/IP协议栈的操作系统中几乎都提供了socket,而所有这样操作系统,对套接字的编程方法几乎是完全一样的

以上几种方式的比较:

1.管道:速度慢,容量有限,只有父子进程能通讯

2.FIFO:任何进程间都能通讯,但速度慢

3.消息队列:容量受系统限制,且要注意第一次读的时候,要考虑上一次没有读完数据的问题

4.信号量:不能传递复杂消息,只能用来同步

5.共享存区:能够很容易控制容量,速度快,但要保持同步,比如一个进程在写的时候,另一个进程要注意读写的问题,相当于线程中的线程安全,当然,共享存区同样可以用作线程间通讯,不过没这个必要,线程间本来就已经共享了同一进程的一块存

相关主题
相关文档
最新文档