操作系统部分基础知识点手动整理

有道云笔记https://note.youdao.com/s/9gZUOB0J

 (乱序、自取)

第一章:

1.操作系统定义:管理系统资源、控制程序执行、改善人机界面、提供各种服务,并合理组织计算机工作流程和为用户方便有效地使用计算机提供良好运行环境的一种系统软件。

操作系统有权分配资源,而支撑软件和应用软件只能通过操作系统使用资源。

操作系统的特征是(并发),(共享),(异步性)和(虚拟)。

资源共享方式:同时访问(透明资源共享),互斥访问(独占资源共享)。

操作系统的主要目标是方便用户使用、扩充机器功能、管理各类资源、提高系统效率和构筑开放环境。

从资源分配的观点来看,操作系统的主要功能:处理器管理、存储管理、设备管理、文件管理、联网与通信管理、用户接口

系统软件:操作系统、实用程序、语言处理程序、数据库管理系统

2.操作系统在计算机系统中的作用:

服务用户观点-操作系统作为用户接口和公共服务程序;

进程交互观点-操作系统作为进程执行的控制者和协调者;

系统实现观点-操作系统作为扩展机或虚拟机;

资源管理观点-操作系统作为资源的管理者和控制着。

3.资源抽象:通过创建软件来屏蔽硬件资源的物理特性和实现细节,简化对硬件资源的操作、控制和使用。

4.三种资源管理技术:

复用(操作系统让众多进程共享物理资源)

虚拟(对资源进行转化、模拟或整合,把一个物理资源转变为多个逻辑上的对应物,也可把多个物理资源转换为一个逻辑上的对应物)

抽象(用于处理系统复杂性,重点解决资源易用性)

5.多道程序设计:指允许多个作业(程序)同时进入计算机系统的内存并启动交替计算的方法。

宏观上:并行(时间段)   微观上:串行(时间点)

根本目的:提高CPU资源利用率,充分发挥计算机硬部件的并行性

特点:间断性、共享性、制约性

     P:假设程序平均等待I/O操作的时间占其运行时间的比例为p

     n:称为多道程序的道数或度数

多道程序设计的优点是什么:

一是可以提高CPU、内存和设备的利用率;二是可以提高系统的吞吐率,使单位时间内完成的作业数量增加;三是可以充分发挥系统的并行性,使设备与设备之间、CPU与设备之间均可并行工作。

缺点:延长了作业的周转时间

多道程序设计技术提高了资源利用率和系统吞吐率,是以牺牲用户的响应时间为代价的。

三个问题:存储保护与程序浮动,处理器管理与分配,资源管理与调度

6.操作系统的构件:内核、进程、线程、类程、管程

操作系统三种基本类型(分类):批处理操作系统、分时操作系统、实时操作系统。

批处理操作系统:特征:批量集中处理,多道程序运行,作业脱机工作

            缺点:作业周转时间延长,不具备交互式计算能力,不利于程序开发和调试

分时操作系统的特点:同时性、独立性、及时性、交互性。

很好解决了人机交互问题,但不能处理紧急事务。

实时操作系统主要特征:及时性和可靠性

批处理操作系统与分时操作系统的区别:追求目标不同、适应作业不同、资源利用率不同。

实时操作系统与分时操作系统的不同点:

(1)及时性 实时操作系统要求比较短。

(2)可靠性 实时操作系统可靠性更加严格

(3)多路性 分时:多个用户 实时:对多路的现场信息进行采集,对多个对象执行机构进行控制。

实时:主要特点:提供及时响应,高可靠性

      过程控制系统:数据采集,加工处理,操作控制,及时反馈处理

6.并发:是指两个或多个活动在同一给定的时间间隔中进行。

6.并行:是指两个或多个活动在同一时刻同时执行的情况。

7.操作系统的体系结构:单体式结构、层次式结构、虚拟机结构、微内核结构

微机操作系统特点:开放性,通用性,高性能,采用微内核结构。

系统调用

应用程序可以通过系统调用来请求获得操作系统内核的服务

系统调用执行过程

用户进程

用户进程执行(传递系统调用参数)——调用系统调用(执行陷入指令)—(内中断由用户态进入内核态)—执行系统调用(内核态)—(由内核态进入用户态)—从系统调用返回(用户态)

陷入指令=trap指令=访管指令

若程序的运行由用户态转到核心态,则会用到访管指令,访管纸考是在用户态使用的,所以它不可能 

0.系统调用与过程(函数)调用的区别:

 调用形式不同(功能号/入口地址),被调用的代码位置不同(动态/静态),提供方式不同(OS/编译系统),调用的实现不同(中断/跳转指令)

0.试述API,库函数,系统调用之间的关系:

  在程序设计语言中,往往提供与各种系统调用对应的库函数,一个库函数就是一种API,它介于应用程序和操作系统之间,应用于程序通过对应库函数来使用系统调用。

操作系统通过程序接口和操作接口将其服务和功能提供给用户。

操作系统作为用户与计算机硬件系统之间的接口

(1)命令接口:用户可直接使用(如:命令解释器、shell)

(2)程序接口:用户通过程序间接使用(如:广义指令)

两个作业级接口:联机作业控制接口,脱机作业控制接口(用于批处理)。

实用程序(系统程序):非操作系统组成。

层次结构是分层单向依赖或单向调用关系,即低层为高层服务。

内核不是进程,是一组程序模块。

内核属性:由中断驱动,不可抢占,可以在屏蔽中断状态下执行,可使用特权指令。

计算机结构分类:单指令单数据流SISD、单指令多数据流SIMD、多指令单数据流MISD、多指令多数据流MIMD

特权指令:指只能提供给操作系统的核心程序使用指令,即不允许用户直接使用的指令,如I/O设备启动(指仅在内核态下才能使用的指令);

设置时钟、设置控制寄存器、启动I/O、控制中断屏蔽位、清内存、建立存储键,加载PSW等。

非特权指令:在目态和管态下都能工作。

操作系统程序能够执行全部机器指令,应用程序只能使用非特权指令。

CPU处于核心态时,可以执行特权指令;CPU处于用户态时只能执行非特权指令;用户自编程序运行在用户态,操作系统内核程序运行在核心态

多数计算机系统将处理器的工作状态划分为管态(核心状态、管理状态、系统模式、特权状态、特态)和目态(目标状态、用户状态、用户模式、常态)。后者一般指用户程序运行时的状态,又称为普通态或(用户态)。

处理器处于管理状态时,程序可以执行全部指令,使用所有资源,具有改变处理器状态的能力;处理器处于用户状态时,程序只能执行非特权指令。

工作状态的转换:

用户态内核态:

系统调用

中断事件

异常事件

内核态→用户态:加载程序状态字——修改psw的标志位为“用户态”

用户态→内核态:由“中断”引发,自动完成变态过程

程序状态字:操作系统将程序运行时的一组动态信息汇集在一起

中断:中断指在程序执行过程中遇到急需处理的事件时,暂时中止现行程序在CPU上的运行,转而执行相应的事件处理程序,待处理完成后再返回断点或调度其他程序执行的过程。

中断源:引起中断的原因,或者能够发出中断请求信号的来源统称为中断源。

中断响应由硬件子系统完成,中断处理由软件子系统完成。

提出原因:为了请求系统服务、实现并行工作、处理突发事件、满足实时要求,需要打断处理器正常工作流。

分类:(1)按中断事件的性质和激活方式划分:1.强迫性中断 2.自愿性中断

(2)按中断事件的来源和实现手段划分:1.硬中断 2.软中断

(3)由硬件发出或产生的中断称为硬中断,按硬中断的来源和实现手段可将中断分为外中断(异步中断,又称中断,处理器和主存之外)和内中断(同步中断,又称异常,处理器和主存内部)。

  • 内中断(异常、陷入)分为:访管中断(系统调用引起)、硬件故障中断(奇偶校验错误)、程序异常(非法操作、越界、除数为零、浮点溢出)
  • 访管指令:又叫做自陷指令或:陷入指令,出现在计算机操作系统中,用于实现在用户态下运行的进程调用操作系统内核程序,即当运行的用户进程或系统实用进程欲请求操作系统内核为其服务时,可以安排执行一条陷入指令引起一次特殊异常。
  • 外中断在处理高一级中断时,往往会部分或全部屏蔽低级中断;内中断(异常)不能被屏蔽,一旦出现应立即相应并加以处理。
  • 异常与CPU是同步的,大部分发生在用户态,内核态唯一异常“缺页中断”。
  • 中断处理程序不能阻塞,处理过程中绝不会被异常打断;异常处理过程可以阻塞,过程可能会产生中断。

中断和异常的区别:中断的发生与CPU当前的状态无关,既可发生在用户态,又可发生在内核态;异常由CPU控制单元产生,大部分异常发生在用户态,而内核态发生的唯一异常是“缺页异常”。

  • ⑴中断是由与现行指令无关的中断信号触发的(异步的),且中断的发生与CPU处在用户模式或内核模式无关,在两条机器指令之间才可响应中断;异常是由处理器正在执行现行指令而引起的,一条指令执行期间允许响应异常。(1分)
  • ⑵中断处理程序处理过程中是不能阻塞的,异常处理程序处理过程中是可以阻塞的。(1分)
  • ⑶中断允许发生嵌套,但异常大多为一重。(1分)
  • ⑷异常处理过程中可能会产生中断,但中断处理过程中决不会被异常打断。(1分)

中断/异常的响应顺序:发现中断源--保护现场--转向中断/异常事件处理程序执行--恢复现场

中断处理程序:保护未被硬件保护的一些必需的处理状态;识别各个中断源,分析产生中断的原因;处理发生的中断事件;恢复正常操作

中断优先级:中断装置所预设的响应顺序称为中断优先级。(中断优先级只表示中断装置相应中断的次序,并不表示处理它的先后顺序)

中断屏蔽:中断屏蔽是指禁止CPU响应中断或禁止中断的产生。

第二章: 

进程的定义:进程是一个可并发执行的具有独立功能的程序,关于某个数据集合上的一次运行过程,也是操作系统进行资源分配和保护的基本单位。

引入进程的目的:刻画程序的并发性,解决资源的共享性,正确描述资源的执行状态

属性:结构性、共享性、动态性、独立性、制约性、并发性(实现操作系统的最基本的两个特性:并发性和共享性)

进程的优缺点:便于资源的管理和保护,但执行开销大

进程映像(进程实体)包括进程控制块PCB、进程程序块、(进程核心栈、)进程数据块

运行态à等待态:等待使用资源或某事件发生

等待态à就绪态:资源得到满足或事件发生

运行态à就绪态:运行时间片到,出现更高优先权进程,当前进程被迫让出处理器

就绪态à运行态:CPU空闲时选择一个就绪进程

区别等待态和就绪态

就绪态:进程仅缺少处理机

等待态(阻塞态):需要其他资源(除了处理机)或等待某一事件

原语:原语(Primitive)是在管态下执行、完成系统特定功能不可被中断的过程。

  • 其特点是执行过程中不允许被中断,是一个不可分割的基本单位,原语的执行是顺序的而不可能是并发的。
  • 一种原语的实现方法是以系统调用方式提供原语接口,且采用屏蔽中断的方式来实现原语功能,以保证原语操作不被打断的特性。

进程的通信:进程之间的信息交换

低级通信方式:PV操作(基于数据结构的共享)

高级通信方式:共享存储(基于存储区的共享)、消息传递、管道通信

- 共享存储:一块可直接访问的共享空间,用户进程空间一般都是独立的,进程运行期间一般不能访问其他进程空间(进程内线程是自然共享进程空间的)

- 消息传递:数据交换以格式化的信息为单位,通过系统提供发送消息和接收消息两个原语进行数据交换。(1)直接通信方式:发送进程直接把消息发送给接收进程(2)间接通信方式:发送进程把消息发送到某个中间实体(信箱),又称为信箱通信方式

- 管道通信:指用于连接一个读进程和一个写进程以实现他们之间的通信的一个共享文件。管道机制需提供三方面的协调能力:互斥、同步和确定对方的存在。各进程要互斥的访问管道(由操作系统实现)。

管道中的数据一旦被读出,就彻底消失,因此当多个进程读同一管道时,可能会错乱

两种解决方案:(1)一个管道允许多个写进程,一个读进程 (2)允许有多个写进程多个读进程,但系统会让各个读进程轮流从管道中读数据。

 线程的定义:线程是进程中能够并发执行的实体,是进程的组成部分,也是处理器调度和分派的基本单位。

引入线程目的:为了减少程序并发执行时所付出的时空开销,使并发粒度更细、并发性更好。

线程的优缺点:一是快速线程切换;二是通信易于实现;三是减少管理开销;四是并发程度提高。         /但不利于资源的管理与保护

线程特性:并行性、共享性、动态性、结构性

线程是进程的组成部分,允许进程包含多个线程。系统调用的基本单位是线程(用户级线程以进程为单位)。

一个线程可以创建和撤销另一个线程,同一进程中的多个线程之间可以并发执行

引入线程后,线程时独立调度的基本单位,进程是拥有资源的基本单位

线程不拥有系统资源,但每个线程都应有一个唯一的标识符和一个线程控制块

同一进程中的各个线程共享该进程所拥有的资源

在多CPU的计算机系统中,各线程可同时占用不同的CPU;在单CPU中,各线程交替占用CPU

线程实现方式:用户级线程和内核级线程

用户级线程中,线程切换可以在用户态下完成,无需操作系统干预;而内核级线程,所有工作由内核完成

多线程模型:多对一、一对一、多对多

管程:管程是一种高级同步机制,一个管程定义一个数据结构和能为并发进程在其上执行的一组操作,这组操作能使进程同步和改变管程中的数据。

处理器调度分为:高级调度(进程创建)、中级调度(进程挂起/解挂)和低级调度(进程执行)。

即作业调度,(进程调度)和CPU交换调度;在一般操作系统中,必须具备的调度是(进程调度)

(1)高级调度:又称为作业调度,在多道批处理操作系统中,从输入系统的一批作业中按照预定的调度策略挑选若干作业进入内存,为其分配所需资源并创建对应作业的用户进程后,便完成启动阶段的高级调度任务。执行频率较低,作业调入时会建立PCB,调出时才撤销,对于每个作业只调入一次,调出一次。

外存->内存 (面向作业) 无--创建态--就绪态

(2)中级调度:又称平衡调度、内存调度,根据内存资源情况决定内存中所能容纳的进程数目,并完成外存和内存中的进程对换工作。作用时提高内存利用率和系统吞吐量。发生频率比高级更高

外存--内存(面向过程)挂起态--就绪态(阻塞挂起--阻塞态)

(3)低级调度:又称进程/线程调度,根据某种原则决定就绪队列中的那个进程/线程获得处理器。进程调度频率很高

内存--CPU 就绪态--CPU

挂起和阻塞区别

两种状态都是暂时不能获得CPU服务,但挂起态时将进程映像调到外存去了,而阻塞态下的进程映像还在内存中。

需要进行进程调度与切换的情况

(1)当前进程主动放弃处理机

进程正常终止、运行过程中发生异常而终止、进程主动请求阻塞(如等待I/O)

(2)当前允许的进程被动放弃处理机

分给进程的时间片用完、有更紧急的事需要处理(如I/O中断)、有更高优先级的进程进入就绪队列

不能进行进程调度与切换的情况

(1)进程在操作系统内核程序临界区中不能进行切换。

(2)在处理中断过程中

(3)其他需要完全屏蔽中断的原子操作过程中

互斥:在逻辑上本来完全独立的进程,由于竞争同一个资源而产生的相互制约的关系。

同步:是指进程间共同完成一项任务时直接发生相互作用的关系。也就是说,这些具有伙伴关系的进程在执行次序上必须遵循确定的规律。

9.作业和进程的关系:作业是任务实体,进程是完成任务的执行实体;没有作业任务,进程无事可做;没有进程,作业任务无法完成。作业的概念更多的用于批处理操作系统中,而进程则用于各种多道程序设计系统。

10.进程和程序的区别:

(1)进程是动态的,而程序是静态的。

(2)进程有一定的生命期,而程序是指令的集合,本身无“运动”的含义。没有建立进程的程序不能作为1个独立单位得到操作系统的认可。

(3)1个程序可以对应多个进程,但1个进程只能对应1个程序。进程和程序的关系犹如演出和剧本的关系。

11.进程控制块(PCB)的作用:

进程控制块是进程存在的唯一标识,是操作系统用来记录和刻画进程状态及环境信息的数据结构,是进程动态特性的汇集,也是操作操作系统掌握进程的唯一资料结构和管理进程的主要依据。(包含:标识信息、现场信息、控制信息)

12.进程上下文的作用:

进程是在操作系统支持下执行的,进程执行时需要操作系统为其设置相应的执行环境,把进程的物理实体与支持进程执行的物理环境合称为进程上下文。

作业调度算法

(1)先来先服务FCFS(非抢占,无饥饿)

算法简单,但效率低;对长作业比较有利,但对短作业不利;有利于CPU繁忙型作业,而不利于I/O繁忙型作业

(2)最短作业优先算法SJF  (非抢占,有饥饿)

追求最少的平均等待时间、平均周转时间、平均带权周转时间

非抢占式,对长作业不利,将导致长作业长期不被调度,即会出现饥饿现象

(3)短进程优先SPF 非抢占式

最短剩余时间优先SRTF  抢占式

(4)最高响应比优先HRRF   (非抢占,无饥饿)

(主要用于作业调度)

要总和考虑作业/进程的等待时间和处理时间

响应比=1+作业等待时间/作业处理时间  

不会发生饥饿现象,兼顾了长作业

(5)优先级

 (静态优先数会出现饥饿现象)

优先级设置原则1.系统进程 > 用户进程 2.交互型进程 > 非交互型进程 3.I/O型进程>计算型进程 (若将I/O型进程的优先级设置得更高,就更可能让I/O设备尽早开始工作,从而提升系统的整体效率)

(6)时间片轮转(抢占,无饥饿)

(主要用于分时系统)

抢占式,由时钟装置发出的中断来通知CPU时间片已到

(7)多级反馈队列MLFQ(抢占,有饥饿)

抢占式,可能会有饥饿现象

系统吞吐率:单位时间内CPU完成作业的数量 

作业周转时间:批处理用户从系统提交作业开始到作业完成为止的时间间隔

—周转事件 = 作业完成时间 - 作业提交时间

—平均周转时间 = n个作业的周转时间总和 / n

—带权周转时间 = 作业周转时间 / 作业实际执行时间 (带权周转时间越大反映作业或进程越短)

—平均带权周转时间 = n个作业的带权周转时间总和 / n

响应时间:用户提交请求到系统首次产生响应所用的时间

等待时间:进程处于等待处理机状态的时间之和

平均等待时间:各个进程/作业等待时间的平均值

1.顺序程序特性

执行的顺序性、环境的封闭性、结果的确定性、过程的可再现性

2.并发进程

  • 并发进程可能是无关的,也可能是并发的
  • 并发进程的无关性是进程的执行与时间无关的一个充分条件
  • 并发程序设计是把一个程序设计成若干个可同时执行的程序模块的方法
  • 并发程序设计特征:并行性、共享性、制约性、交互性
  • 并发程序设计是多道程序设计的基础,多道程序的实质是把并发程序设计进入到系统中

1.什么是临界区和临界资源?临界区管理的基本原则是什么?

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

    临界资源:共享变量代表的资源,即一次只能供给一个进程使用的资源

临界区管理原则:一次最多只有一个进程进入临界区执行,若已有进程在临界区内,试图进入临界区的进程应当等待,进入临界区的进程应当在有限时间内退出,方便等待队列中的其他进程进入;

2. 进程的互斥和同步:

    互斥:若干进程因互相争夺独占性资源而产生的竞争制约关系,是一种特殊的进程同步关系(间接制约关系)

  • 资源竞争会引发两个控制关系:死锁和饥饿

    同步:为完成共同任务的并发进程基于某个条件来协调活动,因为需要在某些位置上排定执行的先后顺序而等待、传递信号或消息,进而产生的协作制约关系。(直接制约关系)

为禁止两个进程同时进入临界区,同步机制应遵循以下原则

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

(前三个必须遵守)

实现临界区互斥的基本方法

1、软件实现方法

(1)单标志法

实现互斥,同一时刻最多只允许一个进程访问临界区,可能会违背“空闲让进”

(2)双标志法先检查

在每个进程访问临界区资源之前,先看临界资源是否正在被访问,可能违背“忙则等待”,问题在于检查和修改操作不能一次进行。

先检测对方的进程状态标志,在置自己的标志。

(3)双标志法后检查

先将自己的标志设置为TRUE,再检测对方的状态标志。

双方同时想进入临界区,双方互相谦让,可能会导致“空闲让进”和“有限等待”,导致饥饿现象。

(4)Peterson’s Algorithm

解决了进程互斥问题,遵循了“空,忙,有”,但可能违背了“让权等待”

2、硬件实现方法(低级方法/元方法)

(1)中断屏蔽法

使用“开/关”中断指令实现

限制了处理机交替执行程序的能力,执行效率会明显降低

(2)硬件指令法

TestAndSet指令:这条指令是原子操作,即执行代码时不允许被中断

Swap指令:该指令功能是交换两个字(字节)的内容,不可被中断

硬件方法的优点:适用于任意数目的进程,而不管是单处理机还是多处理机;简单、容易验证其正确性。可以支持进程内有多个临界区,只为每个临界区设立一个布尔变量。

硬件方法的缺点:进程等待进入临界区时要耗费处理机时间,不能实现“让权等待”。从等待进程中随机选择一个进入临界区,有的进程可能一直选不上,从而导致“饥饿”现象

6.什么是信号量?如何对其进行分类?

信号量:表示物理资源的实体,它是一个与队列有关的整型变量。 具体实现时,信号量是一种产量类型,用一个记录型数据结构表示,有两个分量,一个是信号量的值,另一个是信号量队列指针。(可以用一个信号量表示系统中某种资源的数量)

信号量按其用途可分为两种:

a.公用信号量,联系一组并发进程均可在此信号量上执行pv操作,初值置为1,用于实现进程互斥;

b.私有信号量,联系一组并发进程,仅允许此信号量所拥有的进程执行P操作,而其相关进程可在其上施行V操作,初值往往为0或正整数,多用于并发进程同步。

信号量按其取值可分为两种:

a.二值信号量,仅允许取值为0或1,主要作用用于解决进程互斥问题;

b.一般信号量,又称计数信号量,允许取大于1的整型值,主要用于解决进程同步问题。

7.从信号量和P、V操作的定义可以获得哪些推论?

推论1:若信号量s.value为正值,此值等于在封锁进程值钱对信号量s可行的P操作数,亦即s所代表的实际可用的物理资源数

推论2:若信号量s.value为负值,其绝对值等于登记排列在s信号量队列之中等待的进程个数,即恰好等于对信号量s实施P操作而被封锁并进入信号量s等待队列的进程数

推论3:P操作通常意味着请求一个资源,V操作意味着释放一个资源,在一定的条件下,P操作代表挂起进程的操作,而V操作代表唤醒被挂起进程的操作。

PS:现有语句S1:a=5-x;S2:b=a*x;S3:c=4x;S4:d=b+c;S5:e=d+3;

试使用bernstein条件证明语句S2 S3可以并发执行,S3 S4不能并发执行。

    R(S2)={x,a},W(S2)={b},R(S3)={x},W(S3)={c}

    可见,S2 与 S3 的读集与写集两两不相交,S2 与 S3 的读集之间也不相交,因而,他们满足 Bernstein条件,S2 与 S3 语句是可以并发执行的。同理可证 S3和S4不能满足 Bernstein 条件,是不能并发执行的

信号量

(1)整型信号量

整型信号量被定义为一个用于表示资源数目的整型量S

(2)记录型信号量

可实现资源的“申请”和“释放”,进程互斥,进程同步

除了需要一个用于代表资源数目的整型变量value外,再增加一个进程链表L,用于链接所有等待该资源的进程。

(3)利用信号量实现同步

“一前一后” ,前V后P

(4)利用信号量实现进程互斥

把临界区置于P和V之间

(5)利用信号量实现前驱关系

每一个前驱关系各设置一个同步信号量

管程

定义 :管程是由局部于自己的若干公共变量及其声明和所有访问这些公共变量的过程所组成的软件模块,它提供一种互斥机制,进程可互斥地调用管程中的过程。

属性:共享性、安全性、互斥性

(1)管程把对共享资源的操作封装起来,管程内的共享数据结构只能被管程内的过程所访问。一个进程只有通过调用管程内的过程才能进去管程访问共享资源。

(2)每次仅允许一个进程进入管程,从而实现进程互斥。

何谓管程?管程由几部分组成?说明引入管程的必要性

当共享资源用共享数据结构表示时,资源管理程序可用对该数据结构进行操作的一组过程来表示,如资源的请求和释放过程request和release。把这样一组相关的数据结构和过程一 并归为管程。Hansan为管程所下的定义是:“一个管程定义了一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作, 这组操作能同步进程和改变管程中的数据。”由定义可知,管程由四部分组成:

(1)管程的名称

(2)局部于管程内部的共享结构数据说明

(3)对该数据结构进行操作的一组过程(或函数)

(4)对局部于管程内部的共享数据设置一个初始值的语句

管程的引入是为了解决临界区分散所带来的管理和控制问题。在没有管程之前,对临界区的访问分散在各个进程之中,不易发现和纠正分散在用户程序中的不正确使用P,V操作等问题。管程将这些分散在各进程中的临界区集中起来,并加以控制和管理,管程一次只允许一 个进程进入管程内,从而既便于系统管理共享资源,又能保证互斥。

死锁

所谓死锁,是指多个进程因为竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程将无法向前推进。(至少两个或两个以上的进程—阻塞态)

区别:

饥饿:由于长时间得不到想要的资源,某进程无法向前推进的现象(只能一个进程—阻塞态)

死循环:某进程执行过程中一直跳不出某个循环的现象(可以上处理机运行—运行态)

死锁产生的必要条件(4个)以及解决死锁的方法(3个):

必要条件:(1).互斥条件:临界资源是独占资源,进程应互斥且排他地使用这些资源;

         (2).占有和等待条件:进程在请求资源得不到满足而等待时,不释放已占有资源;

         (3).不剥夺条件:又称不可抢占,已获资源只能由进程自愿释放,不允许被其他进程剥夺;

         (4).循环等待条件:又称环路条件,存在循环等待链,其中,每个进程都在等待    链中等待下一个进程所持有的资源,造成这组进程处于永远等待状态。

解决方法:死锁预防,死锁避免,死锁检测和恢复 。

死锁预防

(1)破坏互斥条件:允许系统资源能共享使用,如spooling技术

(2)破坏不剥夺条件:必须释放已经保持的所有资源,待以后需要时再重新申请。降低吞吐率,可能导致饥饿

方法一:是占有资源的进程若要申请新资源,必须主动释放已占用的资源

方法二:资源管理程序为进程分配新资源时,有则分配,否则将剥夺此进程所占有的全部资源

(3)破坏请求并保持条件:采用预先静态分配方式,即在进程执行之前就申请所需要的全部资源,且直到所要的资源都得到满足后才开始执行。系统资源严重被浪费,还会导致饥饿现象

(4)破坏循环等待条件:顺序资源分配法,采用层次分配策略,将系统中所有资源排列到不同的层次中。限制了新类型设备的增加,造成资源的浪费

死锁解除

资源剥夺、撤销进程、进程回退法

第三章 存储管理:

1.虚拟存储器:在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能,能从逻辑上为用户提供一个比物理内存容量大得多的、可寻址的“内存储器”。

在虚拟存储器系统的页表项中,决定是否会发生页故障的是合法位

内存的装入模块在装入内存时,同样有以下三种方式

(1)绝对装入:在编译时,若知道程序将驻留在内存的某个位置,则编译程序将产生绝对的地址目标代码。绝对装入程序按照装入模块中的地址,将程序和数据装入内存。程序中的逻辑地址与实际的内存地址完全相同,因此不需要对程序和数据的地址进行修改

(2)可重定位装入:根据内存当前情况,将装入模块装入内存的适当位置。装入时对目标程序中指令和数据的修改称为重定位,地址变换通常是在装入时一次完成的,所以又称为静态重定位。

将逻辑地址变为物理地址

静态重定位特点:一个作业装入内存时,必须给它分要求的全部内存空间,若没有足够的内存,则不能装入该作业

(3)动态运行时装入:装入内存后,并不立即把相对地址转换为绝对地址,而是要等到真正执行起来时。

动态重定位特点:将程序分配到不连续的存储区中;在程序运行之前可以只装入它的部分代码即可投入运行,然后在程序运行期间,根据需要动态申请分配内存;便于程序段的共享,可以向用户提供一个比存储空间大得多的地址空间。

2.逻辑地址(相对地址):是指相对于某个基准量(通常用0)编址时所使用的地址,相对地址常用于程序编写和编译过程中。

物理地址(绝对地址):需要区分存贮体中不同的存贮单元,统一编号, 这些编号称为地址。

不同进程可以有相同的逻辑地址,因为这些相同的逻辑地址以映射到主存的不同位置。

地址重定位(地址转换、可重定位):可执行程序逻辑地址转换为物理地址的过程称地址重定位、地址映射或地址转换。(例题)

静态地址重定位:在装入时实现调整,装入后不再变(静态)(由装载程序实现装载代码模块的加载和地址转换,把它装入分配给进程的内存指定区域,其中的所有逻辑地址修改成内存物理地址,称静态地址重定位。)

动态地址重定位:执行中,在执行寻址时重定位 ,访问地址时通过地址变换机构改变为内存地址(程序执行过程中,每当CPU引用内存地址(访问程序和数据)时,由硬件截取此逻辑地址,并在它被发送到内存之前加上重定位寄存器的值,以便实现地址转换,称动态地址重定位)

内存保护

对固定分区采用静态地址重定位,进程运行时使用绝对地址,可由加载程序进行地址越界检查。对可变长分区则采用动态地址重定位,进程的程序和数据的地址转换由硬件完成。

(1)在CPU中设置一队上、下限寄存器,存放用户作业在主存中的下限和上限地址,每当CPU要访问一个地址时,分别和两个寄存器的值相比,判断有无越界。

(2)采用重定位寄存器(或基址寄存器)和界地址寄存器(又称限长寄存器)来实现这种保护。重定位寄存器含最小的物理地址值,界地址寄存器含逻辑地址的最大值。每个逻辑地址值必须小于界地址寄存器;内存管理机构动态地将逻辑地址与界地址寄存器进行比较,若未发生地址越界,则加上重定位寄存器的值后映射成物理地址,再送交内存单元。若发生越界,此时不允许访问,以达到存储保护目的。

实现内存保护需要重定位寄存器和界地址寄存器,因此要注意两者的区别。重定位寄存器是用来“加”的,逻辑地址加上重定位寄存器中的值就能得到物理地址;界地址寄存器是用来“比”的,通过比较界地址寄存器中的值与逻辑地址的值来判断是否越界。

覆盖与交换(节省主存空间)

覆盖:在同一程序会进程中的

由于程序运行时并非任何时候都要访问程序及数据的各个部分,因此可把用户空间分成个固定区和若干覆盖区。将经常活跃的部分放在固定区,其余部分按调用关系分段。首先将那些即将要访问的段放入覆盖区,其他段放在外存中,在需要调用前,系统再将其调入覆盖区,替换覆盖区中原有的段。

覆盖技术的特点是,打破了必须将一个进程的全部信息装入主存后才能运行的限制,但当同时运行程序的代码量大于主存时仍不能运行,此外,内存中能够更新的地方只有覆盖区的段,不在覆盖区中的段会常驻内存。

可用于固定分区分配

交换:在不同进程(或作业)之间的

把处于等待状态(或在CPU调度原则下被剥夺运行权利)的程序从内存移到辅存,把内存空间腾出来,这一 过程又称换出;把准备好竞争CPU运行的程序从辅存移到内存,这一过程又称换入。

只要是固定分配的就会产生内部碎片,其余的会产生外部碎片

连续分配管理方式

(1)单一连续分配

存储空间分为OS连续区和用户连续区

优点:简单、无外部碎片,可以采用覆盖技术,不需要额外的技术支持

缺点:只能用于单用户、单任务的操作系统中,有内部碎片,存储器的利用率低,处理机和外部设备串行工作,一个作业独占存储空间

(2)固定分区连续分配

系统初次启动时,管理员根据当天的作业情况把作业划分成大小不等但数目固定的分区,当分区中的程序执行结束时归还内存区

优点:可用于多道程序设计的最简单的存储分配,无外部碎片

缺点:一是程序可能太大而放不进任何一个分区中,这时用户不得不使用覆盖技术来使用内存空间

二是主存利用率低,可能产生外部碎片

(3)动态分区分配

按照作业大小划分分区,但划分的时间、大小、位置都是动态的,实现多个作业对内存的共享,分区数目也是可变的,有利于多道程序设计 

3. 存储管理功能:

存储分配,地址映射,存储保护,存储共享,存储扩充

  • 常用可变分区算法P202

最先适应分配算法FF(首次) 空闲区按小到大排序,顺序查找

下次适应分配算法NF(邻近) 从上次扫描结束处顺序查找

最优适应分配算法BF(最佳) 最小分区开始 会产生外部碎片

最坏适应分配算法WF 最大分区开始

快速适应分配算法QF 为常用长度的空闲区设立单独链表

非连续分配管理方式 

4.分页存储管理:

基本概念:(1)页面:进程逻辑地址空间分成大小相等的区,每个区称为页面或页,页号从零开始依次编号。

(2)页框:把内存物理地址空间分成大小相等的区,其大小与页面大小相等,每个区是一个页框(物理块),块号从0开始依次编号。(页大小=块大小)

(3)逻辑地址:

页号

页内位移

(4)内存页框表

(5)页表:在内存分配时以页框为单位,进程有多少页,那么把它装入内存时就分配多少页框。是操作系统为系统建立的

  进程在内存中的每个页框内的地址是连续的,但页框之间的地址可以不连续。

  • 页号p、页内位移d、虚地址A、页大小(块大小)L
  • p=int(A/L) d=A mod L
  • 物理地址=页框号*块长+页内位移
  • P 208
  • 所有页面是等长的

分页存储空间分配和去配:位示图法、链表法

分页存储空间页面共享和保护:标志位保护方法(在页表中添加标志位)、键保护方法

基本地址变换机构:第一次访问内存:查找页表;第二次访问内存:访问目标内存单元

翻译快表:为了提高 运算速度,在硬件中设置相联存储器,用来存放进程最近访问的部分页表项,成为翻译快表,它是分页存储管理的重要组成部分。

快表命中只需一次访存,快表未命中需两次访存。快表主要用于地址变换

多级页表:页表和页面一样也进行分页,内存仅存放当前使用的页表,暂时不用部分放在磁盘上,待用时再行调进。

  • 多级页表不仅不会加快地址的变换速度,还会因为增加更多的查表过程,使地址变换速度减慢;也不会减少缺页中断的次数,反而如果访问过程中多级的页表都不在内存中,会大大增加缺页的次数,并不会减少页表项所占的字节数,而多级页表能够减少页表所占的连续内存空间,即当页表太大时,将页表再分级,把每张页表控制在一页之内, 减少页表所占的连续内存空间
  • 页目录表是一级页表,页表页是二级页表,共同构成二级页表机制。
  • 逻辑地址:

页目录位移

页表页位移

页内位移

  • 二级 页表地址转换需要三次访问内存,一次访问页目录,一次访问页表页,一次访问指令或数据,访问时间加了两倍。
  • 多级页表结构的本质是多级不连续,导致多级索引。
  • 在二级索引中,页目录项时页表页的索引,页表页项是程序页面的索引。
  • 为操作系统所感知的,内存分页管理是在硬件和操作系统层面实现的,对用户、编译系统、连接装配程序等上层是不可见的
  • 优点:减少页表所占存储空间

反置页表(IPT):IPT是为内存中的每一个物理块建立一个页表并按照块号排序,该表每个表项包含正在访问该页框的进程标识、页号及特征位,用来完成主存页框到访问进程的页号、即逻辑地址到物理地址的转换。

  • 若反置页表中未能找到匹配的IPT页表项,说明此页不在内存,触发缺页异常,请求操作系统通过页表调入。
  • 逻辑地址:进程标识符,页号,页内位移

分页存储管理

优点: 没有外部碎片,最后一页可能有内碎片但不大; 程序不必连续存放;便于改变程序占用空间大小。

缺点: 程序仍需要全部装入内存。

5.分段存储管理

  • 分页存储管理——一维地址结构
  • 分段存储管理——二维地址结构
  • 引入段式存储管理方式,主要是为了满足用户的下列需求:方便编程、分段共享、分段保护、动态链接和动态增长
  • 分段存储管理把进程逻辑地址空间分成多段,提供如下形式的二维逻辑地址:

段号S

段内位移W

  • 段号的位数决定了每个进程可以分几段,段内偏移量位数决定了每个段的最大长度是多少
  • 分段是在用户编程时决定的
  • 分段存储管理的实现基于可变分区存储管理,有利于程序的动态链接
  • 以段为单位来划分和连续存放的,为作业的各段分配一个连续的存储空间,而各段之间不一定连续
  • 段表表项实际上起到基址/限长寄存器作用,进程运行时通过段表可将逻辑地址转换成物理地址,由于每个用户作业都有自己的段表,地址转换应按各自的段表进行。
  • 段表中段号S对应的段表项地址=段表始址F+段号S×段表项长度
  • 段的共享与保护:在分段系统中,段的共享是通过两个作业的段表中相应表项指向被共享的段的同一个物理副本来实现的。当一个作业正从共享段中读取数据时, 必须防

止另一个作业修改此共享段中的数据。不能修改的代码称为纯代码或可重入代码(它不属于临界资源),这样的代码和不能修改的数据可以共享,而可修改的代码和数据不能共享。

  • 在一个进程中,段表只有一个,而页表可能有多个
  • 有内部碎片

段页式存储管理

  • 段式存储是基于用户程序结构的存储管理技术,有利于模块化程序设计,便于段的扩充、动态链接、共享和保护,但会生成段内碎片浪费存储空间;页式存储是基于系统存储器结构的存储管理技术, 存储利用率高,便于系统管理,但不易实现存储共享、保护和动态扩充。把两者结合起来就是段页式存储管理。
  • 基本原理:

1、虚地址以程序的逻辑结构划分成段(段页式存储管理的段式特征)

2、实地址划分成位置固定、大小相等的页框(段页式存储管理的页式特征)

3、将每一段的线性地址空间划分成与页框大小相等的页面,于是形成了段页式存储管理的特征。

  • 逻辑地址:段号s、段内页号p、页内位移d
  • 数据结构包括作业表、段表、页表

6. 页式存储(实)与段式存储的异同点:(逻辑地址的组成,求解)

分段是信息的逻辑单位,由源程序的逻辑结构及含义所决定,是用户可见的,段长由用户根据需要来确定,段起始地址可从任何内存地址开始。在分段方式中,源程序(段号、段内位移)经链接装配后仍保持二维(地址)结构,引入目的是满足用户模块化程序设计的需要。

分页是信息的物理单位,与源程序的逻辑结构无关,是用户不可见的,页长由系统(硬件)确定,页面只能从页大小的整数倍地址开始。在分页方式中,源程序(页号、页内位移)经链接装配后变成一维(地址)结构,引入目的是实现离散分配并提高内存利用率。

7.虚拟存储器

  • 思想: 基于程序局部性原理,通过部分装入、部分替换,当进程使用某部分地址空间时,将相应部分加载到内存中,能从逻辑上为用户提供一个比物理内存容量大得多的、可寻址的“内存储器”。
  • 虚存的容量与物理内存(主存外存)大小无关,而受限于计算机地址结构和磁盘容量
  • 为了实现虚存,必须解决以下问题:内存与外存(磁盘)统一管理问题、逻辑地址和物理地址转换问题、部分装入和部分替换问题。
  • 虚存管理主要采用以下技术实现:请求分页、请求分段和请求段页式虚存储管理

8.程序的局部性原理:指程序在执行过程中的一个较短时间内,所执行的指令地址或操作数地址分别局限于一定的存储区域中,又可细分时间局部性和空间局部性。

1)时间局部性。程序中的某条指令一 旦执行,不久后该指令可能再次执行;某数据被访问过,不久后该数据可能再次被访问。产生时间局部性的典型原因是程序中存在着大量的循环操作。

2)空间局部性。一旦程序访问了 某个存储单元,在不久后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,因为指令通常是顺序存放、顺序执行的,数据也一般是以向量、数组、表等形式簇聚存储的。

9.请求分页虚拟存储管理

  • 如何发现页面不在内存中?页面不在内存中该如何处理?扩充页表项内容,增加驻留标志位以及用来跟踪页面使用情况和对页面实施保护及淘汰等所需的各项控制位。
  • 优点:进程的程序和数据可按页分散存放在内存中,减少移动开销,有效解决了碎片问题;既有利于提高内存利用率,又有利于多道程序运行。
  • 缺点:要有一定的硬件支持,要进行缺页异常处理,机器成本增加,系统开销大。
  • 主要特点是扩充了内存
  • 需一定硬件支持、页表机制、缺页中断机构和地址变换机构
  • 页面装入主存,有两种策略:

(1)请求调页策略(请页式):进程运行中需要访问的页面不在内存而提出的请求,由系统将所需页面调入内存

(2)预调页策略(预调式):根据局部性原理,一次调入若干相邻的页可能会比一次调入一页跟高效。主要用于进程首次调入

  • 清除策略:请页式清除、预清除
  • 页面分配策略
  • 固定分配:进程保持页框数固定不变
  • 可变分配:进程分得的页框数可变
  • 页面替换策略:局部替换(固定分配)和全局替换(动态分配)

基于这些因素,现代操作系统通常采用三种策略:

1)固定分配局部置换。它为每个进程分配。一定数目的物理块,在整个运行期间都不改变。

(若进程在运行中发生缺页,则只能从该进程在内存中的页面中选出一页换出, 然后调入需要的页面。实现这种策略时,难以确定应为每个进程分配的物理块数目:太少会频繁出现缺页中断,太多又会使CPU和其他资源利用率下降。)

2)可变分配全局置换。这是最易于实现的物理块分配和置换策略,它为系统中的每个进程分配一定数目的物理块, 操作系统自身也保持一个空闲物理块队列。当某进程发生缺页时,系统从空闲物理块队列中取出个物理 块分配给该进程,并将欲调入的页装入其中。

(这种方法比固定分配局部置换更加灵活,可以动态增加进程的物理块,但也存在弊端,如它会盲目地给进程增加物理块,从而导致系统多道程序的并发能力下降。)

3)可变分配局部置换。它为每个进程分配一定数目的物理块,当某个进程发生缺页时,只允许从该进程在内存的页面中选出一页换出,因此不会影响其他进程的运行。

若进程在运行中频繁地缺页,则系统再为该进程分配若干物理块,直至该进程缺页率趋于适当程度:反之,若进程运行中的缺页率特别低,则可适当减少分配给该进程的物理块。比起可变分配全局置换,这种方法不仅可以动态增加进程物理块的数量,还能动态减少进程物理块的数量,在保证进程不会过多地调页的同时,也保持了系统的多道程序并发能力。当然它需要更复杂的实现,也需要更大的开销,但对比频繁地换入/换出所浪费的计算机资源,这种牺牲是值得的。)

  • 采用固定分配算法,系统把页框分配给进程,采用:①平均分配②按比例分配③优先权分配
  • 何处调入页面

1)系统拥有足够的对换区空间。可以全部从对换区调入所需页面,以提高调页速度。为此,在进程运行前,需将与该进程有关的文件从文件区复制到对换区。

2)系统缺少足够的对换区空间。凡不会被修改的文件都直接从文件区调入:而当换出这些

页面时,由于它们未被修改而不必再将它们换出。但对于那些可能被修改的部分,在将它们换出时须调到对换区,以后需要时再从对换区调入(因为读的速度比写的速度快)。

3) UNIX方式。与进程有关的文件都放在文件区,因此未运行过的页面都应从文件区调入。曾经运行过但又被换出的页面,由于放在对换区,因此下次调入时应从对换区调入。进程请求的共享页面若被其他进程调入内存,则无须再从对换区调入。

10. 试比较请求分页虚存管理与请求分段虚存管理

    系统把用户作业进行分页,对用户是透明的。页是物理单位。每段都有完整的意义,是信息的逻辑单位。

    页的大小固定,且由系统决定。段的长度不固定,取决于用户所编写的程序结构。

分页时,作业的地址空间是一维的;分段时,作业的地址空间是二维的。

虚拟存储器和非虚拟存储区别

在非虚拟存储器中,

1)一次性

2)驻留性:作业必须全部装入内存且在运行过程中也一直驻留内存;

在虚拟存储器中,

1)多次性

2)对换性:作业不必全部装入内存且在运行过程中也不用一直驻留内存,允许作业在允许过程中,进行换出和换进

3)虚拟性

 11. 抖动:刚被淘汰的页面立即又要调用,而调入不久随即被淘汰,淘汰不久再被调入,如此反复,是的整个系统的页面调用非常频繁,以致大部分时间都花费在来回调度页面上,而不是执行计算任务,这种现象叫做“抖动”。

防止抖动:撤销部分进程可以减少所要用到的页面数

12. 影响缺页中断率因素:内存页框数,页面大小,页面替换算法,程序特性

13.全局页面替换策略

(1)最佳页面替换算法OPT:淘汰以后不再访问的页或距现在最长时间后才访问的页

(2)先进先出页面替换算法FIFO:总是淘汰最先调入内存的页面

(3)最近最少使用页面替换算法LRU:淘汰最近一段时间内最久未被访问的那一页,记录未使用次数

最近未使用页面替换算法NRU:

最不经常使用页面替换算法NFU/LFU:记录使用的次数,淘汰最少的,次数相同,则先进先出

(4)第二次机会页面替换算法SCR:

(5)时钟页面替换算法Clock:

13.什么是Belady现象?试找出一个Belady现象的例子。

Belady现象:可用页框增多,缺页率反而升高的现象。

(当用FIFO法进行页面置换,分配给进程的物理页面数增加时,缺页次数反而增加,这一现象称为异常现象 )

例子:

假设进程P共有5个页,访问顺序是:1,2,3,4,1,2,5,1,2,3,4,5的缺页情况。

分配3个页面,缺页9次:缺页率9/12=75%

分配4个页面,缺页10次:缺页率

10/12=83.3%

此例就出现分配的页面数增多,缺页次数反而增加的奇怪现象,即Belady现象。

页面分配策略

驻留集:给一个进程分配的物理页框的集合就是这个进程的驻留集,驻留集大小一般小于进程总大小

(页数过少:缺页频繁;页数过大:多道程序并发度下降)

固定分配局部置换:

可变分配全局(局部)置换 

14.工作集:在未来的时间间隔内,一个进程运行时所需访问的页面集。

为了避免系统发生抖动,就应该限制系统内的作业数,使它们的工作集总尺寸不超过主存块总数。

虚拟内存是怎么解决问题的?会带来什么问题?

虚拟内存使用外存上的空间来扩充内存空间,通过一定的换入/换出, 使得整个系统在逻辑上能够使用一个远远超出其物理内存大小的内存容量。因为虚拟内存技术调换页面时需要访问外存,会导致平均访存时间增加,若使用了不合适的替换算法,则会大大降低系统性能。

15.试述存储管理中的碎片。列出各种存储管理方法中可能产生何种碎片。

碎片:由于进程不断地装入和撤销,导致内存中常常出现分散的小空闲区。

    内部碎片:系统已经分配给用户使用、用户自己没有用到的那部分存储空间

    外部碎片:系统无法把它分配出去供用户使用的那部分存储空间。

              单一连续区存储管理、固定分区存储管理:较大内部碎片

              分页式存储管理、请求页式存储管理:较小内部碎片

    可变分区存储管理:外部碎片。

第四章 文件管理

1.名词解释:

文件系统:文件与管理信息资源的管理程序的集合。

文件:由文件名标识的一组信息的集合,文件名是字母或数字组成的字母数字串,其格式和长度因系统而异

文件控制块(FCB):是操作系统为每个文件建立的唯一数据结构,其中包含了全部的文件属性,其目的是为方便操作系统队文件的管理、控制和存取。通常包含三类信息:基本信息、存取控制信息、使用信息。

文件目录:是文件控制块的集中管理

目录文件:全部由文件目录项构成的文件

操作系统提供文件系统的优点:(1)便于用户使用 (2)文件安全可靠 (3)系统能有效地利用存储空间 (4)提供文件共享功能

引入文件系统的目的

从系统角度看,文件系统是对文件的存储空间进行组织、分配,负责文件的存储并对存入文件进行保护、检索

从用户角度看,文件系统根据一定的格式将用户的文件存放到文件存储器适当的地方,当用户需要使用文件时,系统根据用户所给的文件名能够从文件存储器中找到所需要的文件。(按名存取)

  • 文件目录项即FCB,通常由文件基本信息、存取控制信息和使用信息组成。基本信息包括文件物理地址。
  • 打开文件操作时将该文件的FCB存入内存的活跃文件目录表
  • 目录文件是FCB的集合,目录文件中存放的是子目录和数据文件的信息
  • 对一个文件的访问,常由用户访问权限和文件属性共同控制

2.文件组织结构(文件分类):

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

      按保护级别分:只读文件、读写文件、不保护文件;

      按数据类型分:源程序文件、可执行文件;

      按设备类型分:磁盘文件、磁带文件、光盘文件;

      Linux下:普通文件、目录文件、特殊文件

文件的基本操作

1)创建文件。一是在文件系统中为文件找到空间;二是在目录中为新文件创建条目

2)写文件 write

3)读文件 read

4)文件重定位(文件寻址)

5)删除文件

6)截断文件

3.文件属性:文件基本属性、文件类型属性、文件保护属性、文件管理属性、文件控制属性

  • 防止系统崩溃造成文件破坏的方法:定时转储,多副本
  • 文件存取方式:顺序存取、直接存取、索引存取
  • 有了FCB可以方便实现文件的按名存取

 4.物理卷和物理设备不总是一致的

卷是存储介质的物理单位,块是 存储介质上连续信息所组成的一个区域,也称物理记录,快是内存和外存进行信息交换的物理单位。

什么是记录的成组和分解操作?采用这种技术有什么优点?

    成组:若干逻辑记录合并成一组,写入一块

    分解:当存储介质上的一个物理块读进系统输入缓冲区后,把逻辑记录从块中分离出来的操作

    节省存储空间;减少I/O操作次数;提高系统效率

记录键:用于标识某条逻辑记录的数据项

主键:能唯一标识某条记录的记录键

3.什么是文件的逻辑结构?他有几种组织方式?

文件的逻辑结构是从用户的观点出发,研究用户概念中抽象的组织方式,这是用户所能观察到的,可以加以处理的数据集合

文件的逻辑结构于

     组成方式:流式文件;记录式文件;

无结构文件(流式文件)

  • 文件内部的数据就是一系列二进制流或字符流组成的
  • 最简单的文件组织形式
  • 将数据按顺序组织成记录并积累、保存,它是有序相关信息项的集合,以字节为单位

有结构文件(记录式文件)

  • 由一组相似的记录组成,每条记录又有若干个数据项组成

1)顺序文件:串结构,记录之间的顺序与关键字无关;顺序结构,指文件中所有记录按关键字顺序排列。(顺序文件对查找、修改、增加或删除单条记录的操作比较困难)

  • 优点:顺序存取记录时速度快
  • 缺点:建立文件之前需要预先确定文件长度,以便分配存储空间;修改、插入和添加文件记录有一定的难度;

对于变长记录的处理很困难;对磁盘作连续分配会造成空闲块的浪费。

2)索引文件:由逻辑文件和索引表组成

  • 对于定长记录,要查找第i条记录,可直接计算得到第i条记录相对于第1条记录的地址;
  • 对于变长记录文件,要查找第i条,必须顺序的查找前i-1条记录,从而获得相应记录的长度,进而计算出第i条记录首址
  • 变长记录文件只能顺序查找,索引表本身就是定长记录的顺序文件

3)索引顺序文件:为顺序文件建立一张索引表,对含有N条记录的索引问津,共需要查找根号N次。索引顺序文件提高了查找效率,若记录数很多,则可采用两级或多级索引

4)直接文件或散列文件

4.什么是文件的物理结构?他有几种组织方式?

文件的物理结构是指逻辑文件在物理存储空间中的存放方法和组织关系

物理结构于存储介质的特性有很大的关系

组成方式:顺序文件;连接文件;索引文件;直接文件;

文件控制块

文件控制块(FCP)是用来存放控制文件需要的各种信息的数据结构,以实现“按名存取”。FCB 的有序集合称为文件目录,一个FCB就是一个文件目录项。为了创建一个新文件,系统将分配一个 FCR并存放在文件目录中,成为目录项。

FCB主要包含以下信息:

基本信息:如文件名、文件的物理位置、文件的逻辑结构、文件的物理结构等。

存取控制信息:如文件存取权限等

使用信息:如文件建立时间、修改时间等。

索引结点:

存在磁盘上的称为磁盘索引结点

UNIX中每个文件都有一个唯一的磁盘索引结点

目录结构

1)单级目录结构

2)两级目录结构

3)多级目录结构

从根目录出发的路径称为绝对路径

从当前目录出发的的路径称为相对路径

4)无环图目录结构

树形目录结构便于实现文件的分类,但不便于实现文件共享,为此引入了无环图目录结构

文件共享

1)基于索引结点的共享方式(硬链接)

  • 文件属性等信息存放在结点中,在文件目录中只设置文件名及指向相应索引结点的指针

2)利用符号链实现文件共享(软链接)

  • 为使用户B能共享用户A的一个文件F,可以由系统创建一个LINK类型的新文件,也取名为F,并将文件F写入用户B的目录中,以实现用户B的目录与文件F的链接。在新文件中只包含被链接文件F的路径名。这样的链接方法被称为符号链接。
  • 在利用符号链方式实现文件共享时,只有文件的拥有者才拥有指向其索引结点的指针。而共享该文件的其他用户只有该文件的路径名,并不拥有指向其索引结点的指针
  • 在符号链的共享方式中,当其他用户读共享文件时,需要根据文件路径名逐个地查找目录,直至找到该文件的索引结点。
  • 符号链方式有一个很大的优点,即网络共享只需提供该文件所在机器的网络地址及该机器中件路径。

建立符号链接时,引用计数值直接复制:建立硬链接时,引用计数值加1。删除文件时,删除操作对于符号链接是不可见的,这并不影响文件系统,当以后再通过符号链接访问时,发现文件不存在,直接删除符号链接;但对于硬链接则不可直接删除,引用计数值减1,若值不为0,则不能删除此文件,因为还有其他硬链接指向此文件。

当建立F2时,F1和F2的引用计数值都为1。当再建立3时,F1和F3的引用计数值就都变成了2。当后来删除F1时,F3的引用计数值为2-1=1,F2的引用计数值不变。

文件保护

  • 文件保护是针对文件访问权限的保护
  • 文件保护通过口令保护,加密保护和访问控制等方式实现。
  • 口令和加密保护是为了防止用户文件被他人存取或窃取,而访问控制则用于控制用户对文件的访问方式

文件实现的分配方式

1)连续分配

  • 连续分配方式要求每个文件在磁盘上占有一组连续的块。磁盘地址定义了磁盘上的一个线性排序。这种排序使作业访问磁盘时需要的寻道数和寻道时间最小。
  • (逻辑块号,块内地址)->(物理块号,块内地址) 物理块号=起始块号+逻辑块号
  • 连续分配支持顺序访问和直接访问
  • 优点:实现简单,存取速度块
  • 缺点:文件长度不宜动态增加,反复增删文件后会产生外部碎片,且很难确定一个文件需要的大小空间
  • 只适用于长度固定的文件

2)链接分配

  • 采取了离散分配的方式,消除了外部碎片,显著提高了磁盘的空间利用率,可动态地为文件分配盘块;对增删改也非常方便
  • 隐式链接:每个文件对应一个磁盘块的链表:磁盘块分布在磁盘的任何地方,除最后个盘块外, 每个盘块都有指向下个盘块的指针,这些指针对用户是透明的。目录包括

文件第一块的指针和最后一块的指针。

  • 缺点是无法直接访问盘块,只能通过指针顺序访问文件,且盘块指针会消耗一定的存储空间。隐式链接分配的稳定性也是个问题,系统在运行过程中由于软件或硬件错误导致链表中的指针丢失或损坏,会导致文件数据的丢失。
  • 显式链接是指把用于链接文件各物理块的指针,从每个物理块的块末尾中提取出来,显式地存放在内存的一张链接表中。该表在整个磁盘中仅设置一张,称为文件分配表( FAT)。 每个表项中存放对应块的下一块链接指针,即下一个盘块号。文件的第一个盘块号记录在目录中,后续的盘块可通过查FAT找到。
  • 优点:FAT表在系统启动时会被读入内存,查找FAT的过程是在内存中进行的,显著提高了检索速度,明显减少了访问磁盘的次数。支持顺序和随机访问,地址转换不需要磁盘。
  • 缺点:文件分配表占用了一定的连续空间。

3)索引分配

  • 索引文件支持直接访问,它把每个文件的所有盘号都集中放在一起构成索引块,记录各个逻辑块对应的物理块。没有外部碎片问题
  • 优点:可以随机访问,文件易于增删
  • 缺点:由于索引块的分配,增加了系统存储空间的开销,索引表的查找策略对文件系统效率影响较大
  • m级需要访问m+1次

文件存储空间管理

  • 一般来说,一个文件存储在一个文件卷中
  • 在一个文件卷中,文件数据信息的空间(文件区)和存放文件控制信息的FCB的空间(目录区)是分离的
  • 逻辑卷在提供文件服务前,必须由对应的文件程序进行初始化,划分好目录区和文件区,建立空闲空间管理表格及存放逻辑卷信息的超级块
  • 文件存储设备分成许多大小相同的物理块,并以块为单位交换信息,因此,文件存储设备的管理实质上是对空闲块的组织和管理,它包括空闲块的组织、分配与回收等问题。

1)空闲表法

  • 空闲表法属于连续分配方式,为每个文件分配一块连续的存储空间
  • 空闲盘区的分配与内存的动态分配类似,采用首次适应算法、循环适应算法等
  • 系统对用户所释放的存储空间进行回收时,对相邻接者进行合并

2)空闲链表法

  • 分为空闲盘块链和空闲盘区链
  • 空闲盘块链将磁盘上的所有空闲空间以盘块为单位拉成一条链。 当用户因创建文件而请求分配存储空间时,系统从链首开始,依次摘下适当数且的空闲盘块分配给用户。当用户因删除文件而释放存储空间时,系统将回收的盘块依次插入空闲盘块链的末尾。这种方法的优点是分配和回收一个盘块的过程非常简单,但在为个文件分配盘块时可能要重复多次操作。(离散分配的物理结构)
  • 空闲盘区链将磁盘上的所有空闲盘区(每个盘区可包含若干盘块)拉成一条链。 在每个盘区上除含有用于指示下一个空闲盘区的指针外,还应有能指明本盘区大小(盘块数)的信息。分配盘区的方法与内存的动态分区分配类似,通常采用首次适应算法。在回收盘区时,同样也要将回收区与相邻接的空闲盘区合并。(离散和连续分配都适用)

3)位示图法

  • 利用二进制的一位来表示磁盘中的一个盘块的使用情况,磁盘上的所有盘块都有一个二进制位与之对应
  • 盘块的分配
  • 从1开始,b=n(i-1)+j
  • 从0开始,b=ni+j
  • 盘块的回收
  • 从1开始
  • i=(b-1) DIV n + 1
  • j=(b-1) MOD n +1
  • 空闲表法和空闲链表法都不适用于大型文件系统,因为这会使空闲表或空闲链表太大。

4)成组链接法

  • 在UNIX系统中采用的是成组链接法,这种方法结合了空闲表和空闲链表两种方法,克服了表太大的缺点。通过这种方式可以迅速找到大批空闲块地址。
  • 表示文件存储器空闲空间的“位向量”表或第一个成组链块,以及卷中的目录区、文件区划分信息都需要存放在辅存储器中,一般放在 卷头位置,在UNIX系统中称为超级块。在对卷中的文件进行操作前,超级块需要预先读入系统空闲的主存,并且经常保持主存超级块与辅存卷中超级块的一致性。

在目录中查找某个文件可以使用什么方法?

可以采用线性列表法或哈希表法。线性列表把文件名组织成一- 个线性表,查找时依次与线性表中的每个表项进行比较。若把文件名按序排列,则使用折半查找法可以降低平均的查找时间,但建立新文件时会增加维护线性表的开销。哈希表用文件名通过哈希函数得到一个指向文件的指针,这种方法非常迅速,但要注意避免冲突。

文件的逻辑结构和物理结构有何区别?单个文件的逻辑结构和物理结构之间是否存在着某些制约关系?

文件的逻辑结构是用户可见的结构,即用户使用文件的结构。文件的物理结构是文件在存储器上的组织结构,它表示一个文件在辅存上安置、链接、编目的方法。它和文件的存取方法以及辅存设备的特性等都有着密切的联系。单个文件的逻辑结构和物理结构之间虽无明显的制约或关联关系,但是如果物理结构选择不慎,也很难体现出逻辑结构的特点,比如一个逻辑结构是顺序结构,而物理结构是隐式链接结构的文件,即使理论上可以很快找出某条记录的地址,而实际找时仍然需要在磁盘上一块一块地找。

磁盘结构

  • 磁盘盘面上的数据存储在组同心圆中, 称为磁道。每个磁道 与磁头一样宽,
  • 一个盘面有 上千个磁道。
  • 磁道又划分为几百个扇区,每个扇区固定存储大小(通常为512B),
  • 一个扇区称为一个盘块。
  • 由于扇区按固定圆心角度划分,所以密度从最外道向里道增加,磁盘的存储能力受限于最内道的最大记录密度。
  • 磁盘安装在一个磁盘驱动器中,它由磁头臂、用于旋转磁盘的主轴和用于数据输入/输出的电子设备组成。
  • 所有盘片上相对位置相同的磁道组成柱面。
  • 按照这种物理结构组织,扇区就是磁盘可寻址的最小存储单位,磁盘地址用“柱面号●盘面号●扇区号(或块号)”表示。

磁盘的调度算法

读写一个磁盘块所需时间:一次磁盘读写操作由寻道时间、旋转延迟时间和传输速度决定(减少寻道时间可提高系统性能)

  • 寻找时间Ts = m × n + s

m是与磁盘驱动器速度有关的常数(约为0.2),n是跨越n条磁道,s是启动磁臂时间

  • 旋转延迟时间Tr = 1/2r

r是磁盘旋转速度

  • 传输时间Tt = b / rN

b为每次所读写的字节数,r是磁盘每秒转数,N为一个磁盘上的字节数

  • 总平均存取时间Ta = Ts + Tr + Tt

1)先来先服务(FCFS)

  • 最简单的调度算法,磁盘臂是随机移动的,寻道性能较差
  • 缺点:平均寻道距离大,仅应用再磁盘I/O较少的场合

2)最短寻找时间优先(SSTF)算法

  • 选择离当前磁头最近的一个服务,存在”饥饿“现象
  • 优点:性能比FCFS好
  • 缺点:不能保证平均寻找时间最小,会产生饥饿现象

3)扫描算法(SCAN,又称电梯调度算法)

  • 移臂每次延一个方向移动,先处理最近的请求,直到到达最后一个柱面,再向相反的方向移回,计算包含最后一个柱面号
  • 要知道磁头移动方向
  • 磁头需要移动到磁盘端点处,才可折返
  • LOOK算法-磁头移动只需移动到最远端的一个请求即可返回
  • 优点:寻道性能较好,可避免饥饿现象
  • 缺点:不利于远离磁头一端的访问请求

4)循环扫描算法(C-SCAN)

  • 磁头要从一个端点直接移到另一个端点,再进行扫描
  • C-LOOK算法--磁头移动只需移动到最远端的一个请求即可返回到距另一端最远的请求
  • 优点:消除了对两端磁道请求不公平

若在盘面上按交替编号连续存放,则连续读写多条记录时能减少磁头的延迟时间;同柱面不同盘面的扇区若能错位编号,连续读写相邻的两个盘面逻辑记录时也能减少磁头延迟时间。

磁盘管理

1)磁盘初始化

2)引导块

3)坏块

x=k×m×a+k×b+c

磁盘组共有n个柱面,m个磁头,每个磁道内有k个信息块

x表示逻辑磁盘号,用a、b、c分别表示任意逻辑磁盘块的柱面号、磁头号、磁道内的块号

第五章:输入输出I/O设备

1.试述设备管理的基本功能

设备中断处理,缓冲区管理,设备分配去配,设备驱动调度,实现虚拟设备

按信息交换的单位分类

1)块设备。数据存取以数据块为单位,属于有结构设备,如磁盘,其基本特征是传输速率较高、可寻址,即对它可随机地读写任一块

2)字符设备。其传输基本单位是字符,属于无结构类型,如交互式终端、打印机等。它地基本特征是传输速率低、不可寻址,并且在输入输出时常采用中断驱动方式

2.I/O系统

  • 通常把I/O设备及其接口线路、控制部件、通道和管理软件称为I/O系统,把计算机的内存和设备介质之间的信息传送操作称为I/O操作。
  • 输入设备和输出设备是字符型设备,存储型设备通常是块设备

3.I/O控制方式以及主要差别:

轮询方式,中断方式,DMA方式,通道方式

差别:CPU和设备并行工作的方式和程度不同。

  • 轮询方式(程序直接控制方式):程序直接控制方式,使用查询指令测试设备控制器的忙闲状态位,确定内存和设备是否能交换数据。 

优缺点:简单且易于实现,但由于CPU和I/O设备只能串行工作,长期处于“忙等”状态,导致CPU的利用率相当低

  • 中断方式:CPU与设备之间的传输过程:(1)进程发出启动I/O(2)设备控制器检查状态寄存器的内容(3)CPU收到并响应I/O中断后,转向设备的I/O中断处理程序执行 (4)中断处理程序执行数据读取操作 (5)进程调度程序在适当时刻让得到数据的进程恢复执行

优缺点:CPU和I/O设备可并行工作,由于数据中的每一个字在存储器与I/O控制器之间的传输都必须经过CPU,这就导致了中断驱动方式仍然会消耗过多的CPU时间。

  • DMA方式:设备能直接与内存交换数据而不占用CPU,CPU资源利用率还可以提高

优点:数据传输以块为单位,CPU介入频率进一步降低,数据传输不再需要经过CPU,再写入内存,传输效率进一步增加,CPU和I/O并行性得到提升。

缺点:CPU每发出一条I/O指令,只能读写一个或多个连续的块

DMA寄存器:命令/状态寄存器、内存地址寄存器、数据寄存器、数据计数器

  • 通道方式(字节多路通道、选择通道、数组多路通道):通道又称I/O处理器,能完成内存和设备之间的信息传送,与CPU并行地执行操作。是一种硬件机制
  • (1)能完成主存和外围设备间的信息传送,与CPU并行地执行操作。通道技术解决了I/O操作的独立性和各部件工作的并行性。(2)由通道管理和控制I/O操作,减少了外围设备和CPU的逻辑联系。把CPU从琐碎的I/O操作中解放出来。(3)外围设备和CPU能实现并行操作;通道和通道之间能实现并行操作;各通道上的外围设备也能实现并行操作,达到提高整个系统效率这一根本目的。

优点:实现CPU、通道、I/O设备三者并行操作,更有效地提高整个系统的资源利用率

缺点:实现复杂,需专门的通道硬件支持

4.设备控制器(I/O逻辑)

设备控制器是CPU和设备之间的一个接口,它接收从CPU发来的命令,控制I/O设备操作,实现主存和设备之间的数据传输。设备控制器是一个可编址设备,当它连接多台设备时,则应具有多个设备地址。

  • 设备控制器主要功能:

①接收和识别CPU或通道发来的命令;

②实现数据交换,包括设备和控制器间的数据传输;

③发现和记录设备及自身的状态信息,供CPU处理使用;

④设备地址识别。

  • 设备控制器必须包含的组成部分

1)设备控制器与CPU接口。用于实现CPU与控制器之间的通信

2)设备控制器与设备接口。用于实现控制器与设备之间的通信

3)I/O逻辑控制。负责接收和识别CPU的各种命令,并负责对设备发出命令

5.I/O软件原理

 I/O软件总体设计目标:

  • 高效率
  • 通用性 。

 I/O软件总体设计要考虑的问题:

  • 设备无关性
  • 出错处理
  • 同步(阻塞)/异步(中断驱动)传输
  • 缓冲技术(独占性外围设备和共享性外围设备)

操作系统把I/O软件依次组织成四个层次

  •  I/O中断处理程序
  • I/O设备驱动程序
  • 独立于设备的I/O软件
  • 用户空间的I/O软件

I/O子系统的层次结构

用户层I/O软件

  • 实现与用户交互的接口,用户可直接调用在用户层提供的、与I/O操作有关的库函数,对设备进行操作

设备独立性软件(设备无关软件)

  • 用于实现用户程序与设备驱动器的统一接口、设备命令、设备保护及设备分配与释放等,为设备管理和数据传输提供必要的存储空间

设备驱动软件

  • 与硬件直接相关,负责具体的实现系统对设备发出的操作命令,驱动I/O设备工作饿驱动程序,他是I/O进程与设备控制器之间的通信程序

中断处理程序

  • 用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完并恢复被中断进程的现场后,返回到被中断进程

硬件

  • I/O设备通常包括一个机械部件和一个电子部件
  • 电子部件称为设备控制器(或适配器)

DMA与中断控制方式的主要区别

DMA与通道方式的主要区别

6.I/O设备驱动程序所包含的三部分功能

  • 设备初始化
  • 执行设备驱动例程
  • 调用和执行中断处理程序

7.具有通道的I/O系统管理

  • 具有通道的计算机系统,I/O程序设计涉及: CPU执行I/O指令,通道执行通道命令,以及CPU和通道之间的通信。
  • 通道方式I/O时,使用两个固定存储单元:通道地址字CAW、通道状态字CSW
  • 通道状态字字段含义通道命令地址、设备状态、通道状态、剩余字节个数
  • lCPU是主设备,通道是从设备,CPU和设备之间是主从关系,需要相互配合协调才能完成I/O操作。
  • 通道方式I/O过程分成三个阶段:I/O启动阶段、I/O 操作阶段  、I/O结束阶段

8.为什么要引入缓冲技术?其基本思想是什么?

为了解决CPU与设备之间速度不匹配的矛盾及协调逻辑记录大小与物理记录大小不一致的问题;提高CPU和设备的并行性,减少I/O操作对CPU的中断次数,放宽对CPU中断响应时间的要求,解决基本数据单元大小(即数据粒度)不匹配问题

    当进程执行写操作,先向系统申请输出缓冲区,然后将数据送入缓冲区。若是顺序写,则不断地把数据填入直到装满。此后进程可以继续计算,同时系统把缓冲区的数据写到设备上。

当进程执行读操作,先向系统申请输入缓冲区,然后将设备上的一条物理记录读到缓冲区,然后根据要求把当前所需要的逻辑记录从缓冲区中选出来传送给进程。

常用的缓冲技术有单缓冲、双缓冲和多缓冲。

块设备输入时,假定从磁盘把一块数据输入缓冲区的时间为T,操作系统将该缓冲区中的数据传送到用户区的时间为M,而CPU对这一块数据的处理时间为C。

  • 单缓冲:(工作方式串行)max(C,T)+M
  • 双缓冲:(工作方式并行)max(C+M,T)
  • 多缓冲:多缓冲是把主存中的多个缓冲区组织成两部分,一部分用做输入缓冲区,另一部分做输出缓冲区(互斥进行)。
  • 缓冲池:在主存中,一种双向缓冲技术,缓冲区整体利用率高

9.存储设备的物理结构

  • 磁盘是一种直接存取存储设备,又称随机存取存储设备,它的每条物理记录都有确定位置和唯一地址。
  • 文件信息通常并不记录在同一盘面的磁道上,而是记录在同一柱面的不同磁道上,三个参数:柱面号、磁头号、扇区号
  • 设备驱动程序:从独立于设备的软件中接收并执行I/O请求

12.设备独立性:

设备独立性:用户通常不指定物理设备,而是指定逻辑设备,使得用户作业和物理设备分离开来,再通过其他途径建立逻辑设备和物理设备之间的映射,设备的这种特性称为“设备独立性”。

设备独立性带来的好处:

(1)     应用程序与具体物理设备无关,系统增减或变更设备时对源程序不必加以任何修改。

(2)     易于应对I/O设备故障

 13.设备分配方式

  • 从物理特性来看可分为:独占型设备、共享设备、虚拟设备
  • 相应管理和分配设备的技术就分为:静态分配、动态分配、虚拟分配
  • 设备分配的数据结构:设备控制表(DCT)、控制器控制表(COCT)、通道控制表(CHCT)、系统设备表(SDT)

14.虚拟设备

  • 利用假脱机技术(SPOOLing, 也称为虚拟设备技术,以空间换时间的技术)可把独享设备转变成具有共享特征的虚拟设备,从而提高独占设备利用率。
  • 为了缓和CPU的高速性与I/O设备低速性之间的矛盾,引入脱机输入输出技术
  • 在多道批处理系统中,专门利用一道程序(SPOOLing程序)来完成对设备的I/O操作。无需使用外围I/O处理机。
  • 在SPOOLing技术的系统中,用户打印结果最先被送到磁盘固定区域。
  • SPOOLing系统的三个重要组成部分是输入井与输出井、输入缓冲与输出缓冲区、输入进程与输出进程
  • SPOOLing系统主要特点:提高I/O设备速度,将独占设备改造为共享设备,实现了虚拟设备功能
  • “井”是用作缓冲的存储区域,采用井的技术能调节供求之间的矛盾,消除人工干预带来的损失。
  • “预输入程序”,“缓输出程序”,“井管理程序”
  • 井文件:存放在井中的文件。井文件空间被划分成等长的物理块,用于存放一个或多个逻辑记录。
  • 输入井和输出井是在磁盘上开辟的存储空间,而输入/输出缓冲区则是在内存中开辟的,因为CPU速度比I/O设备高很多,缓冲池通常在主存中建立。不需要外围计算机的支持。

你可能感兴趣的:(操作系统)