第1章 操作系统概论
1 早期操作系统设计的主要目标是什么?
方便性:方便用户使用计算机。用户通过操作系统来使用计算机。
有效性:使计算机系统能高效可靠地运转,提高系统资源的利用率。
还要便于操作系统的设计、实现和维护。
2 操作系统是资源管理程序,它管理系统中的什么资源?
操作系统控制和管理计算机系统中的各种硬件和软件资源,使之得到更有效的利用;主要功能有:存储器管理、处理机管理、设备管理、文件管理、作业管理五大功能。
3 为什么要引入多道程序系统?它有什么特点?
引入多道程序设计技术的根本目的是提高CPU的利用率,充分发挥系统设备的并行性。这包括程序之间、CPU与设备之间、设备与设备之间的并行操作。
4 叙述操作系统的基本功能。
(1)处理机管理:进程管理。处理机如何调度的问题:FCFS、优先级、时间片轮转
(2)存储器管理:主存管理。存储分配、存储保护、主存扩充。
(3)设备管理:涉及对系统中各种输入、输出设备的管理和控制。分配设备,控制设备传输数据。
(4)文件管理:将程序、数据、操作系统软件等组织成文件,存放在磁盘或磁带上,方便用户访问。
- 批处理系统、分时系统和实时系统各有什么特点?各适合应用于哪些方面?
批处理系统:
目标是提高系统资源的利用率。适用于比较成熟的大型作业。可在后台执行。不需要用户频繁干预。
系统吞吐量大,资源利用率高。
分时系统:
目标是对用户请求的快速响应。适用于短小作业。终端键入命令。
同时性、独立性、交互性、及时性
实时系统:
是指计算机能对随机发生的外部事件做出及时的响应和处理。是一个专用系统。不以作业为处理对象,只有几个由外部事件触发的任务。
实时性、可靠性、确定性
- 操作系统的特性?
(1)并发性:并发是指系统中存在着若干个逻辑上相互独立的程序,它们都已被启动执行,都还没有执行完,并竞争系统资源。
(2)共享性:是指系统中的资源可供系统中多个并发执行的进程共同使用。如打印机、磁带机、磁盘等。
(3)虚拟性:把共享资源的一个物理实体变为若干个逻辑上的对应物。如,CPU的分时共享;虚拟存储器技术。
(4)异步性(随机性):有限的资源共享使并发进程之间产生相互制约关系。各个进程何时执行、何时暂停、以怎样的速度向前推进、什么时候完成等都是不可预知的。
- 衡量OS的性能指标有哪些?什么是吞吐量、响应时间和周转时间?
资源利用率:指在给定时间内,系统中某一资源(如CPU、存储器、外部设备等)实际使用时间所占比率。
吞吐量(Throughput):指单位时间内系统所处理的信息量。它通常是用每小时或每天所处理的作业个数来度量。
周转时间:指从作业进入系统到作业退出系统所用的时间。而平均周转时间是指系统运行的几个作业周转时间的平均值。
- 什么是嵌入式系统?
以实际应用为中心、以计算机技术为基础、软硬件可裁剪的专用计算机系统。软件要求固化存储。通常是一个多任务可抢占式的实时操作系统。
iOS, Android, VxWorks。
- 什么是对称多处理?它有什么好处?
对称多处理(SMP):操作系统和用户程序可安排在任何一个处理机上运行,各处理机共享主存和各种I/O设备。
- 为了实现系统保护,CPU通常有哪两种工作状态?各种状态下分别执行什么程序?什么时候发生状态转换?状态转换由谁实现的?
用户态和核心态
用户态:只允许执行处理机的非特权指令,访问指定的寄存器和存储区
核心态:允许执行处理机的全部指令集,访问所有的寄存器和存储区
用户态和核心态的状态转换:
- 系统中断
- 系统异常
- 系统调用
用户态到核心态的转换由硬件完成;管态到目态的转换由操作系统程序执行后完成
- 什么是系统调用?什么是特权指令?特权指令执行时,CPU处于哪种工作状态?
系统调用:系统调用就是操作系统内核提供的一些子程序。操作系统内核向用户提供了一组系统调用接口。用户通过系统调用接口,向操作系统提出资源请求或获得系统服务。
特权指令:指具有特殊权限的指令。这类指令只用于操作系统或其他系统软件,一般不直接提供给用户使用。由于这类指令的权限最大,如果使用不当,将导致整个系统崩溃。比如:清内存、置时钟、分配系统资源、修改虚存的段表和页表,修改用户的访问权限等。
特权指令在运行时,CPU处于核心态。
12 操作系统通常向用户提供哪几种类型的接口?其主要作用是什么?
操作接口:命令行或窗口界面是用户使用计算机系统的主要接口。
编程接口:系统调用是用户与操作系统之间的编程接口。
第2-3章 进程管理
- 程序顺序执行的特点
封闭性:程序在运行时独占全机资源,因此,这些资源的状态只能由该程序决定和改变,不受外界因素影响。
可再现性:只要初始条件相同,无论程序连续运行,还是断断续续地运行,程序的执行结果不变。
优点: 由于顺序程序的封闭性和可再现性,为程序员调试程序带来了很大方便。
缺点: 由于资源的独占性,使得系统资源利用率非常低。
- 何谓进程,进程由哪些部分组成?试述进程的四大特性(动态性、独立性、并发性、结构性)及进程和程序的区别。
操作系统用“进程” 来描述系统中各并发活动,进程(process)又叫做任务(task),进程是程序的一次执行过程,进程是程序在一个数据集合上顺序执行时发生的活动。
进程包括程序、数据和进程控制块。
动态性:进程是程序的一次执行过程,是临时的,有生命期的。
独立性:进程是系统进行资源分配和调度的一个独立单位。
并发性:多个进程可在处理机上交替执行。
结构性:系统为每个进程建立一个进程控制块。
进程是动态的,程序是静态的。通常,进程不可以在计算机之间迁移,而程序可以复制。进程是暂时的,程序是永久的。
通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。进程可创建其他进程,而程序不能形成新的程序。
- 进程控制块的作用是什么?它主要包括哪几部分内容?
PCB是进程存在的唯一标识
进程标识数:用于唯一地标识一个进程,通常是一个整数。
进程的状态、调度、存储器管理信息:是调度进程所必需的信息,包括进程状态、优先级、程序在主存地址、在外存的地址等。
进程使用的资源信息:分配给进程的I/O设备、正在打开的文件等。
CPU现场保护区:保存进程运行的现场信息。包括:程序计数器(PC)、程序状态字、通用寄存器、堆栈指针等。
记帐信息:包括使用CPU时间量、帐号等。
进程之间的家族关系:类UNIX系统,进程之间存在着家族关系,父/子进程。
进程的链接指针:链接相同状态的进程。
- 进程的基本状态,试举出使进程状态发生变化的事件并描绘它的状态转换图。
(1) 运行态(running):进程正在CPU上运行。单CPU系统一次只有一个运行进程;多CPU系统可能有多个运行进程。
(2) 阻塞态(blocked):又称等待态。当进程因等待某个条件发生而不能运行时所处的状态。等待I/O完成,等待一个消息
(3) 就绪态(ready):已获得除CPU之外的全部资源,只要再获得CPU,就可执行。
(4) 创建态:刚刚建立,未进就绪队列。
(5) 终止态:已正常结束或故障中断,但尚未撤消。暂留在系统中,方便其它进程去收集该进程的有关信息。
- 什么是原语?什么是进程控制?
原语:一个不可拆分的操作或一组不可拆分的操作,他必须被当作一个整体对待,要么成功,要么失败,不能执行到一半被打断
进程控制:是指系统使用一些具有特定功能的程序段来创建、撤消进程,以及完成进程各状态之间的转换。进程控制是由操作系统内核实现的。是属于原语一级的操作,不能被中断。
- 进程调度的功能、方式、时机、算法。作业调度,交换调度。作业的周转时间和作业的带权周转时间?
功能:
(1) 记录系统中各进程的执行状况
(2) 选择就绪进程占有CPU
(3) 进行进程上下文的切换
方式:
① 非抢先方式(非剥夺方式, Non-preemptive)
某一进程占用CPU,直到运行完或不能运行为止,其间不被剥夺。用在批处理系统。主要优点:简单、系统开销小。
② 抢先方式(剥夺方式, Preemptive)
允许调度程序基于某种策略(优先级、时间片等)剥夺现行进程的CPU给其它进程。用在分时系统、实时系统。
时机:
(1)现行进程完成或错误终止;
(2)提出I/O请求,等待I/O完成时;
(3)在分时系统,按照时间片轮转,分给进程的时间片用完时;
(4)优先级调度,有更高优先级进程就绪;
(5)进程执行了某种原语操作,如阻塞原语和唤醒原语,都可能引起进程调度。
算法:
- 先来先服务(FCFS):简单,节省机器时间。缺点:容易被大作业垄断,使得平均周转时间延长。
- 最短作业优先(SJF):选取运行时间最短的作业运行。对短作业有利,作业的平均周转时间最佳。
- 响应比高者优先(HRN)
Rp = (作业等待时间+作业估计运行时间)/作业估计运行时间
= 1+作业等待时间/作业估计运行时间 - 先级调度法
将CPU分配给就绪队列中优先级最高的进程
静态优先级:在进程创建时确定的,运行时保持不变。通常赋予系统进程较高优先级;申请资源量少的赋予较高优先级。可能导致低优先级的长进程没有机会运行。
动态优先级:原优先级可随进程的推进而改变。根据进程占用CPU时间的长短或等待CPU时间的长短动态调整。
- 轮转法(Round Robin)
用在分时系统,轮流调度所有就绪进程。
利用一个定时时钟,使之定时地发出中断。时钟中断处理程序在设置新的时钟常量后,立即转入进程调度程序。
时间片长短的确定原则:既要保证系统各个用户进程及时地得到响应,又不要因时间片太短而增加调度的开销,降低效率。
- 多级反馈队列轮转法
因就绪原因不同,系统通常设置多个就绪队列。多个就绪队列可采用前后台运行。
前台队列采用RR调度;后台采用FCFS。
高优先级进程的时间片较短,低则较长。
刚创建的进程和因请求I/O而未用完时间片的进程排在高优先级队列。
运行2~3个时间片还未完成的进程降级。
- 线程的定义,线程与进程的比较。系统对线程的支持(用户级线程、核心级线程、两级组合)。
线程(thread):是进程内的一个可执行实体,是处理机调度的基本单位。
比较:
(1)拥有的资源
进程拥有一个独立的地址空间,用来存放若干代码段和数据段。若干打开文件,以及至少一个线程。
一个进程内的多线程共享该进程的所有资源,线程自己拥有很少资源。
(2)调度
进程调度需进行进程上下文的切换,开销大。
同一进程内的线程切换,仅把线程拥有的一小部分资源变换了即可,效率高。同一进程内的线程切换比进程切换快得多。不同进程的线程切换…
(3)并发性
引入线程后,使得系统的并发执行程度更高。进程之间、进程内的多线程之间可并发执行。
(4)安全性
同一进程的多线程共享进程的所有资源,一个线程可以改变另一个线程的数据,而多进程实现则不会产生此问题。共享方便。
系统对线程的支持:
1)用户级线程
有关线程的所有管理工作都由用户进程通过调用用户态运行的线程库完成。自己设计线程调度算法。
内核以进程为单位进行调度。一个线程阻塞,其依附的进程也阻塞。
多线程对应核心级一个进程。
2)核心级线程
有关线程的管理工作都由内核完成。应用程序通过系统调用来创建或撤销线程。
一个线程的阻塞,不影响其他线程的执行。
3)两级组合
既支持用户级线程,也支持核心级线程。
用户级多个线程对应核心级多个线程。
当内核了解到一个线程阻塞后,通知运行时系统,重新调度其他线程。
- 并发执行的进程在系统中通常表现为几种关系?各是在什么情况下发生的?
(1)对资源的共享引起的互斥关系
进程之间本来是相互独立的,但由于共享资源而产生了关系。间接制约关系,互斥关系。
(2)协作完成同一个任务引起的同步关系
一组协作进程要在某些同步点上相互等待发信息后才能继续运行。直接制约关系,同步关系。
(3)进程之间的前序关系
由于进程之间的互斥同步关系,使得进程之间具有了前序关系,这些关系决定了各个进程创建和终止的时间。
- 什么叫临界资源?什么叫临界区?对临界区的使用应符合的四个准则(互斥使用、让权等待、有空让进、有限等待)。
临界资源:就是一次仅允许一个进程使用的系统中共享资源。
临界区(critical section):就是并发进程访问临界资源的那段必须互斥执行的程序。
临界区使用的四个准则:
不能同时有两个进程在临界区内执行
等待进入临界区的进程,应释放处理机后阻塞等待
在临界区外运行的进程不可阻止其他进程进入临界区
不应使要进入临界区的进程无限期等待在临界区之外
互斥使用;让权等待;有空让进;有限等待
10 解决进程之间互斥的办法:
开、关中断,加锁、开锁(又叫测试与设置,通常由一条机器指令完成),软件方法,信号量与P、V操作。
11 若信号量S表示某一类资源,则对S执行P、V操作的直观含意是什么? 当进程对信号量S执行P、V操作时,S的值发生变化,当S>0、S=0、和S<0时,其物理意义是什么?
P、V操作的引入,克服了加锁操作的忙等待现象,提高了系统的效率。
操作系统正是利用信号量的状态来对进程和资源进行管理的。
当S>0时,说明还有可用的资源能提供给进程进行使用;
当S=0时,说明所有的此类资源被申请此资源的进程使用中;
当S<0时,说明所有的此类资源已经被申请使用中,同时有一些进程申请了资源但未被分配到资源而在等待中。
- 在用P/V操作实现进程通信时,应根据什么原则对信号量赋初值?
用P、V操作实现进程同步,信号量的初值应根据具体情况来确定。 若期望的消息尚未产生,则对应的初值应设为0;若期望的消息已经存在,则信号量的初值应设为一个非0的正整数。
- 经典的IPC问题。
- 进程高级通信有哪些实现机制?
高级通信:是指进程采用系统提供的多种通信方式来实现通信。如消息缓冲、信箱、管道、共享主存区等。
- 死锁产生的必要条件及解决死锁的方法
产生的必要条件:
- 互斥条件。独占性的资源。
- 保持和等待条件。进程因请求资源而阻塞时,对已经获得的资源保持不放。
- 不剥夺条件。已分配给进程的资源不能被剥夺,只能由进程自己释放。
- 循环等待条件。存在一个进程循环链,链中每个进程都在等待链中的下一个进程所占用的资源。
解决死锁的方法:
- 鸵鸟算法。忽略死锁。
- 死锁的预防。通过破坏产生死锁的四个必要条件中的一个或几个,来防止发生死锁。
- 死锁的避免。是在资源的动态分配过程中,用某种方法去防止系统进入不安全状态,从而避免发生死锁。
- 死锁的检测和恢复。允许死锁发生,通过设置检测机构,及时检测出死锁的发生,然后采取适当措施清除死锁。
16 理解银行家算法的实质。能够利用银行家算法避免死锁。
1. 检查剩余请求矩阵R是否有一行,其剩余请求向量小于等于系统剩余资源向量A。若不存在这样的行,系统将会死锁。
2. 若找到这样一行,则可以假设它获得所需的资源并运行结束,将该进程标记为终止,并将其资源加到向量A上。
3. 重复以上两步,直到所有进程都标记为终止;或者直到死锁发生,出现不安全状态。
第4章 存储器管理
1 存储器管理的功能。名字空间、地址空间、存储空间、逻辑地址、物理地址。
储存器管理的功能:
(1)存储器分配:解决多道程序或多进程共享主存的问题
(2)地址转换或重定位:研究各种地址变换方法及相应的地址变换机构。
(3)存储器保护:防止故障程序破坏OS和其它信息
(4)存储器扩充:采用多级存储技术实现虚拟存储器及所用的各种管理算法。
(5)存储器共享:并发执行的进程如何共享主存中的程序和数据。
符号名字空间:源程序中的各种符号名的集合所限定的空间。
地址空间:经编译连接后的目标代码所限定的空间。用地址码替换符号地址。
存储空间:物理存储器中全部物理存储单元的集合所限定的空间。
2 什么是地址重定位?分为哪两种?各是依据什么和什么时候实现的?试比较它们的优缺点。
地址重定位:把程序地址空间的逻辑地址转换为存储空间的物理地址。
种类:静态重定位和动态重定位。
优缺点:
静态重定位特点:
1)无硬件变换机构;
2)为每个程序分配一个连续的存储区;
3)在程序执行期间不能移动,主存利用率低;
4)难以做到程序和数据的共享;
5)用于单道批处理系统。
动态重定位优点:
- 主存利用充分。可移动用户程序。移动后,只需修改重定位寄存器。
- 程序不必占有连续的存储空间。
- 便于多用户共享存储器中的同一程序和数据。
3 内存划分为两大部分:用户空间和操作系统空间。存储器管理是针对用户空间进行管理的。
4 存储保护的目的是什么?对各种存储管理方案实现存储保护时,硬件和软件各需做什么工作?
目的:
防止地址越界:进程运行时产生的所有存储器访问地址都要进行检查,确保只访问为该进程分配的存储区域。
正确地进行存取:对所访问的存储空间的操作方式(读、写、执行)进行检查,以防止由于误操作,使其数据的完整性受到破坏。
5 试述可变式分区管理空闲区的方法及存储区的保护方式。覆盖与交换有什么特点?
可变式分区:根据作业的大小动态地划分分区,使分区的大小正好等于作业大小。
管理方式:1. 分区说明表(未分配区表+已分配区表) 2. 空闲区链
储存区保护:
固定分区
静态重定位,进程运行时使用主存物理地址。
设置上、下界寄存器来实现存储器保护
可变式分区
动态重定位,进程运行时CPU给出的是程序的逻辑地址。
基址+限长寄存器。世界上第一台超级计算机CDC 6600使用该方案。
可变式分区--分配算法:
(1)首次适应(first fit)法:
要求空闲区表或空闲区链中的空闲区按地址从小到大排列。
分配内存时,从起始地址最小的空闲区开始扫描,直到找到一个能满足其大小要求的空闲区为止。分一块给请求者,余下部分仍留在其中。
(2)最佳适应(best fit)法:
存储分配程序要扫描所有空闲区,直到找到能满足进程需求且为最小的空闲区为止。
(3)最坏适应(worst fit)法:
要扫描所有的空闲区,直到找到满足进程要求且为最大的空闲区为止。一分为二,一部分分给进程,另一部分仍留在链表中。
覆盖:是指同一主存区可以被不同的程序段重复使用
特点:打破了必须将一个进程的全部信息装入主存后才能运行的限制。在逻辑上扩充了主存。小主存可运行大进程。
交换:系统根据需要把主存中暂时不运行的进程中的部分或全部信息移到外存,而把外存中的进程移到主存,并使其投入运行。
特点:打破了一个程序一旦进入主存,便一直运行到结束的限制。
6 页表的作用是什么?简述页式管理的地址变换过程。能利用页表实现逻辑地址转换成物理地址。管理内存的数据结构有哪些?
页框(主存块):把主存分成大小相等的若干块。块的大小一般为1024或4096字节等2的整次幂。
页:进程的地址空间被划分成与主存块大小相等的页。
页表:系统为每个进程建立一张页面映像表,记录逻辑页与主存块的映射关系。
过程:
管理内存的数据结构:储存分块表、位示图
- 什么是页式存储器的内零头?它与页的大小有什么关系?可变式分区管理产生什么样的零头(碎片)?
内零头是指进程在向操作系统请求内存分配时,系统满足了进程所需要的内存需求后,还额外还多分了一些内存给该进程。
(此题在PPT中未涉及到)
- 段式存储器管理与页式管理的主要区别是什么?
(1) 段是由用户划分的;页是为了方便管理由硬件划分的,对用户是透明的。
(2) 页的大小固定;段的大小不固定。
(3) 段式用二维地址空间;页式用一维地址空间。
(4) 段允许动态扩充,便于存储保护和信息共享。
(5) 段可能产生主存碎片;页消除了碎片。
(6) 段式管理便于实现动态链接,页式管理只能进行静态链接。
(7) 段与页一样,实现地址变换开销大,表格多。
9 什么是虚拟存储器。虚拟存储器的容量能大于主存容量加辅存容量之和吗?
虚拟存储器:是系统为了满足应用对存储器容量的巨大需求而构造的一个非常大的地址空间。其容量由计算机的地址结构确定。系统的指令地址部分能覆盖的地址域大于实际主存的容量。
显然,虚拟存储器的容量能大于主存容量加辅存容量之和。
- 实现请求页式管理,需要对页表进行修改,一般要增加状态位、修改位、访问位。试说明它们的作用。
(1) 有效位(状态位):用来指示某页是否在主存。
为1表示该页在主存,完成正常的地址变换;
为0表示该页不在主存,由硬件发出一个缺页中断,转操作系统进行缺页处理。
(2) 修改位:指示该页调入主存后是否被修改过。“1”表示修改过,“0”表示未修改过。
(3) 访问位(引用位):指示该页最近是否被访问过,“1”表示最近访问过,“0”表示最近未访问。
- 产生缺页中断时,系统应做哪些工作?
- 根据当前指令的逻辑地址查页表的状态位。
- 状态位为0,缺页中断。
- 操作系统处理缺页中断,寻找一个空闲的页框。
- 若有空闲页,则把从磁盘读入信息装入该页框。
- 若无空闲页,则按某种算法选择一个已在内存的页面,暂时调出内存。若修改过还要写磁盘。调入需要的页。之后要修改相应的页表和内存分配表。
- 恢复现场,重新执行被中断的指令。
- 会利用FIFO、LRU、OPT以及时钟页面置换算法描述页面置换过程,计算产生的缺页率。Belady异常。
页面置换算法:
最佳置换算法(OPT算法)
选择以后不再访问的页或经很长时间之后才可能访问的页进行淘汰
先进先出置换算法(FIFO)
当淘汰一页时,选择在主存驻留时间最长的那一页。由操作系统维护一个所有当前在内存中的页面的链表(链队列),最老的页面在表头,最新的页面在表尾。当发生页面失效时,淘汰表头的页面,把新调入的页面加到表尾。
最近最少使用的页面置换算法(LRU)
根据局部性原理,淘汰那些在最近一段时间里最少使用的一页。
时钟页面置换算法
第二次机会算法,近似LRU算法。
页表中的引用位:0表示最近未被引用;1。
将进程所访问的页放在一个像时钟一样的循环链中。链中的节点数就是为之分配的主存块数。
系统设有一个指针指向最早进入主存的页。
淘汰时,检查指针所指页。若引用位为0,则用新页置换之,指针向前走一个位置。若引用位为1,清0,指针前进,直到找到引用位为0的页。
缺页率:
进程在运行过程中的缺页率:f=F/A
其中:A=S+F,
A为进程执行过程中总的访问次数;
S为成功的访问次数;
F为不成功的访问次数。
- 什么是程序的局部性原理?什么叫系统抖动?工作集模型如何防止系统抖动?
程序访问的局部性原理
时间局部性:程序中往往含有许多循环,在一段时间内会重复执行该部分。
空间局部性:程序中含有许多分支,在一次执行中,只有满足条件的代码运行,不满足条件的代码不运行。即使顺序执行程序,程序的地址域在短时间内变化不大。
在进程运行过程中,用到哪部分程序或数据再由系统自动装入。
14 多级页表的概念,多级页表中页表建立的时机。写时复制技术的概念。
大页表:(地址空间4GB)/(页4KB)=1M个页表项。若每个页表项占4B,则最大的页表为4MB。
多级页表结构:页表在内存不必连续存放。
页表的建立不再是在进程装入主存时,而是推迟到要访问页时,才为包含该页的页表分配空间和建立页表页。
写时复制的页面保护:若没有进程向共享主存页写时,两个进程就共享之。若有进程要写某页,系统就把此页复制到主存的另一个页框中,并更新该进程的页表,使之指向此复制的页框,且设置该页为可读/写。
15 页的共享问题。需要一个专门数据结构来记录进程间共享页。
第5章 文件系统
1 什么是文件和文件系统? 文件系统的主要功能。UNIX系统如何对文件进行分类?它有什么好处?
文件:是存储在外部存储器上的具有符号名的相关信息的集合。
文件系统:OS中管理文件的软件机构。包括管理文件所需的数据结构、相应的管理软件和被管理的文件。
文件系统的主要功能:
- 管理文件存储器。记录空间使用情况,分配空间,调整或回收空间。
- 实现按名存取。利用目录结构快速定位文件。
- 应具有灵活多样的文件结构和存取方法,便于用户存储和加工处理信息。
- 提供一套使用方便、简单的操作命令。
- 保证文件信息的安全性。
- 便于文件的共享。
UNIX系统中的文件分类
普通文件:通常的文件。
目录文件:由文件目录构成的一类用来维护文件系统结构的文件。对其处理同普通文件。
特别文件:输入设备和输出设备(字符型特别文件),输入/输出型设备(字符块特别文件),管道文件。
2 文件目录的作用是什么?文件目录项通常包含哪些内容? 文件控制块。
引入文件系统的主要目的是使用户实现按名存取文件。
文件目录表目至少要包含文件名、文件内部标识、文件的类型、文件存储地址、文件的长度、访问权限、建立时间和访问时间等内容。
3 文件的逻辑结构有几种形式?文件的存取方法?
文件的逻辑结构:
无结构的字节流式文件:由无结构的先后到达的相关字节组成,其文件长度就是所包含的字节个数。
有结构的记录式文件:分为定长记录式文件和变长记录式文件。
文件的存取方法:
- 顺序存取
按照文件信息的逻辑顺序依次存取。是在前一次存取的基础上进行的。 - 直接存取(随机存取)
基于文件的磁盘模型,磁盘允许对任意文件块进行随机读和写。
对记录式文件而言。根据记录的编号来直接存取文件中的任意一个记录。
对字节流文件而言。根据系统调用命令把读/写指针调整到欲读/写位置上,然后读/写指定字节数的信息。
4 文件的物理结构有哪几种?对于不同的结构,文件系统是如何进行管理的?
种类:
- 连续文件(顺序文件)
- 链接文件
- 索引文件
- 索引顺序文件
5 DOS文件卷的结构,DOS系统的文件物理结构是什么?
DOS系统的文件物理结构采用链接结构
6 了解记录的组块和分解。
一个物理块可以存放若干个逻辑记录,一个逻辑记录可以存放在若干个物理块中。把一个块中存放的逻辑记录的个数叫做块因子。
必须使用主存缓冲区:信息交换是以块为单位进行的。用户将要写的记录先写入主存缓冲区,当缓冲区满时,再写磁盘。
用户使用记录时,先将包含该记录的物理块读入内存缓冲区,然后进行记录分解。
7 文件存储空间的管理方法有几种?它们各是如何实现文件存储空间的分配和回收的?
常用的对磁盘存储空间的管理方法:
- 空白文件目录 (是一种最简单的方法)
- 空闲块链表
- 位映像表(bit map)或位示图
8 建立多级目录有哪些好处?文件的重名和共享问题是如何得到解决的?
优点:层次结构清晰,便于管理和保护;有利于文件分类;解决重名问题;提高文件检索速度;能够控制存取权限。
二级和多级目录解决解决文件的重名和共享
- 文件系统中,常用的文件操作命令有哪些?它们的具体功能是什么?打开和关闭文件命令的目的是什么?
(1) 创建(Create)文件
主要功能:在指定设备上为指定路径名的文件建立一个目录项,并设置文件的有关属性。
(2) 删除(Delete)文件
主要功能:根据文件的路径名找到指定的目录项,回收其占用的各个物理块,再将该目录项置为空。
(3) 打开(Open)文件
根据文件路径名找到目录项,将文件的目录项复制到主存一个专门区域,返回文件在该区域的索引。建立进程与文件的联系。
目的:避免多次重复地检索文件目录。
系统维护了一个系统当前打开文件表。当读/写文件时,通过这个表的索引找到文件的主存目录项。不需要重复地对磁盘进行检索。
(4) 关闭(Close)文件
释放文件在主存专门区域中的目录项,切断用户与文件的联系。
若该目录项被修改过,则复制到磁盘。
若文件作过某些修改,应将其写回辅存。
(5) 读(Read)文件
命令中必须指出要读的数据个数,以及存放数据的主存地址。
根据文件所在设备、文件类型的不同,系统设置不同的读命令。
(6) 写(Write)文件
命令中必须指出要写的数据个数,以及存放数据的主存地址,将主存中的数据写到指定的文件中。
(7)追加(Append)文件
限制了写文件的形式,将数据追加到文件尾。
(8)随机存取(Seek)文件
重新定位文件的读/写位置指针。
(9)得到文件属性(Get Attributes)
进程在执行时常常需要了解文件的属性。在UNIX系统中,一个软件开发项目通常由多个源文件组成,make程序用来管理这些软件开发项目。当make被调用时,它检查所有源文件和目标文件的修改时间,并且编排出需要重新编译的文件数。
(10)设置文件属性(Set Attributes)
修改文件的一些属性,以适应用户的要求。
(11)重命名(Rename)文件
重新命名一个已经存在的文件。
10 存取控制表ACL的概念。
存取控制矩阵很少用,因为矩阵中的空项很多,浪费存储空间。
为存取控制矩阵中的每一列建立一张存取控制表(ACL),用一有序对(域, 权集)表示。
11 理解内存映射文件(memory mapped file)的过程。
存储器映射文件:将文件映射到进程地址空间的一个区域,返回虚拟地址,仅当需要对文件存取时,才传输实际的数据。
第6章 设备管理
1 I/O设备通常大致可分为哪两大类?各自传输的信息单位有什么特点?
I/O设备大致可以分为两类: 块设备(block device)和字符设备(character device)。
块设备:人机交互设备。是以字符为单位发送和接收数据的,通信速度比较慢。键盘和显示器、鼠标、扫描仪、打印机、绘图仪等。
字符设备:外部存储器。以块为单位传输数据。常见块尺寸:512B~32KB。如磁盘、磁带、光盘等。
2 常用的四种数据传输方式。
- 程序查询方式(polling)
- 中断方式
- 直接存储器访问(DMA)方式
- 通道控制方式
3 根据设备的使用方式,设备被分为几种类型?何为虚拟设备?它是通过什么技术实现的?
按设备的工作特性分类
存储设备
输入输出设备
按设备上数据组织方式分类
块设备
字符设备
按资源分配的角度分类
独占设备
共享设备
虚拟设备
虚拟设备
这是指通过虚拟技术将一台独占设备变换为若干逻辑设备,供若干个用户(进程)同时使用。
其实现所依赖的关键技术是SPOOLING 技术。
4 按照设备管理的层次结构,I/O软件划分为几层?各层主要实现哪些功能?
- 中断处理程序
进程在启动一个I/O操作后阻塞起来,I/O操作完成,控制器产生一个中断 - 设备驱动程序
①设备初始化。②启动设备传输数据的例程。③中断处理例程。 - 独立于设备的软件
实现所有设备都需要的功能,且向用户提供一个统一的接口。 - 用户层的I/O接口
大部分I/O软件都包含在操作系统中,有一小部分是由与用户程序连接在一起的库函数构成的
5 何为设备的独立性?
设备独立性是指用户及用户程序不受系统配置的设备类型和具体设备的台号的影响。用户只是使用逻辑设备,具体的映射由操作系统完成。
6 什么是SPOOLING技术?以输出为例,说明它的实现原理。(SPOOLING技术是以空间换时间)
SPOOLING技术:
将独占设备改造为共享设备
由于Spooling技术把所有用户进程的输出都送入输出井,然后再由输出进程完成打印工作,而输出井在磁盘上,为共享设备。这样,Spooling技术就把打印机等独占设备改造成立共享设备。
7 一个特定磁盘上的信息如何进行编址?
盘面号、磁道号和扇区号(或柱面号、磁头号和扇区号)。
8 要将磁盘上一个块的信息传输到主存需要系统花费哪些时间?(寻道时间、旋转延迟时间和读/写传输时间)
访问磁盘块的时间:寻道时间、旋转延迟时间、读/写传输时间。
- 常用的磁盘调度算法:先来先服务、最短寻道时间优先、扫描法(SCAN, C_SCAN, LOOK, C_LOOK)。
Linux文件系统
- Ext2文件卷的布局?各部分的作用是什么?
Ext2把磁盘块分为组,每组包含存放在相邻磁道的数据块和索引节点。块组的大小相等并顺序安排。
Ext2用“块组描述符”来描述这些块组本身的结构信息,同时将超级块和所有的块组描述符重复存储于每个块组中。
Ext2通过“位图”来管理每个块组中的磁盘块和索引节点。盘块位图,索引节点位图。
- Linux系统把一般的文件目录项分成哪两部分?这样做的好处是什么?
通常的文件目录项分成简单目录项和索引节点两部分
简单目录项包含了文件名和索引节点号等,可以提高文件目录的检索速度。
系统只保留一个索引节点,就可实现多条路径共享文件,减少信息冗余。
- Linux文件系统的索引节点中,索引表划分成几级?文件的索引表是如何增长的?要求能够利用索引表实现将文件中的字节地址转换成文件的物理块的操作。
- 硬链接和符号链接的区别?
符号链接与硬链接的区别
1、含义不同
符号链接是一类特殊的文件, 其包含有一条以绝对路径或者相对路径的形式指向其它文件或者目录的引用。
硬链接就是一个文件的一个或多个文件名。
2、英文名不同
硬链接:hard link
符号链接:Symbolic link
- Linux文件系统如何管理空闲存储空间?
磁盘块和索引节点的分配和回收
文件的数据块和其索引节点尽量在同一个块组中。
文件和它的目录项尽量在同一个块组中。
父目录和子目录尽量在同一个块组中。
每个文件的数据块尽量连续存放。