单项选择 15x2 = 30
判断 10x1 = 10
简答 3x10 =30
综合 3x10 =30
简答题
简述操作系统的四个基本特征。
并发性 共享性 虚拟性 异步性
并发性是最重要特性,其它三种特性以此为前提。
并发
并发(Concurrence): 多个进程通过时间片轮转的方式交替使用CPU
- 宏观上:多道程序同时在执行。
- 微观上:在单处理机系统中,任何时刻只有一道程序在执行,即微观上多道程序在CPU 上交替执行。
并行(Parallel):指多道程序在同一时刻执行,通常需要多个硬件支持。
并发执行能有效改善系统资源利用率,但使系统复杂化,因此操作系统必须对并发活动进行控制和管理。
共享
指系统中的资源不再为某道程序所独占,而是供多道程序共同使用。
并发性和共享性是操作系统的两个最基本的特征,二者互为存在条件
- 资源的共享是以程序的并发执行为条件。
- 程序的并发执行也以资源的共享为条件。若系统不能对资源共享实施有效管理,必然会影响到程序的并发执行,甚至程序无法并发执行,操作系统也就失去了并发性。
虚拟
虚拟是指把一个物理实体映射为若干个对应的逻辑实体。
- 时分复用,即分时使用方式。如:虚拟处理机、虚拟设备。
- 空分复用,用于提高存储空间的利用率。如:虚拟磁盘、虚拟存储器。
虚拟是操作系统管理系统资源的重要手段,可提高资源利用率。
异步
异步性也称不确定性,指进程在执行中,其执行时间、顺序、向前推进的速度和完成的时间等都是不可预知的。
“不确定性”不是说操作系统的功能不确定,也不是说同一程序在相同的数据集上的多次运行结果不确定,而是指同一道程序的多次运行所需的时间不确定,同一批程序的多次运行的运行序列和总运行时间不确定。
微内核OS的优点和缺点是什么?
微内核OS 技术的主要思想:在内核中只留下一些最基本的功能(进程管理、低级存储器管理、中断和陷入处理),而将其他服务分离出去( 如文件系统、网络协议等 ),由工作在用户态下的进程来实现,形成所谓“客户/服务器”模式。客户进程可通过内核向服务器进程发送请求,以取得OS 的服务。
优点
提高了系统的可扩展性
- 系统的各个模块可以独立开发、更新和替换,增加了系统的可扩展性。
提高了系统的可靠性
- 内核和接口的正确性容易保证
- 某个服务器出现错误时不会影响内核和其它服务器
可移植性好(服务器均与硬件平台无关)
适用于分布式系统
- 消息传递通讯机制+ 进程和服务器唯一标识+ 系统映射表
- 把消息发往目标,无论目标驻留在哪台机器上。
缺点
运行效率低:消息传递比直接调用效率要低,频繁的IPC和上下文切换,导致较高的性能开销
批处理操作系统、分时操作系统和实时操作系统各有什么特点?
批处理操作系统强调高效的批量处理,分时操作系统注重用户交互与任务并发,实时操作系统则优先保证任务按时完成,确保系统的可预测性和可靠性。
单道批处理系统
工作流程
合成一批作业输入到外存上,同时在系统中配上监控程序。Monitor 将作业逐个送入内存并运行。
CPU 必须等待I/O 的完成,特别因为I/O 设备的低速性,从而使机器的利用率很低。
特征:1. 自动性 2. 顺序性 3. 单道性
多道批处理系统
多个作业先在外存“后备队列”中排队,经作业调度选择若干个调入内存,使它们共享CPU 和系统中的各种资源
为解决多道批处理系统中的问题,在多道程序系统中增设一组软件(四大管理:处理机管理、内存管理、I/O 设备管理、文件及作业管理问题),方便用户使用计算机,这样便形成了操作系统。
特征:1. 调度性 2. 无序性 3. 多道性
优点:1. 资源的利用率高 2. 系统吞吐量大
缺点:1. 平均周转周期长 2. 无交互能力
分时系统:
根据时间片轮转技术,允许多个用户通过终端并发地访问计算机,并提供快速的响应时间
特征:
多路性:宏观上多个用户同时工作,微观上轮流运行。
独立性:用户独立操作,互不干扰。
及时性 交互性
实时操作系统
指系统能及时响应外部事件的请求,并控制所有实时任务协调一致地运行。 适合对时间敏感安全性要求高的场景
特征:实时性和可靠性、多路性、独立性、交互性
产生死锁的四个必要条件是什么?
互斥条件
进程对所分配到的资源进行排它性使用。
请求和保持条件
进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程被阻塞,但对自己已获得的资源保持不放。
不可剥夺条件
进程已获得的资源,在未使用完之前不能被抢占,只能在进程使用完时由自己释放。
环路等待条件
指在发生死锁时,必然存在一个进程-资源的循环链,即进程集合P0,P1,P2,…,Pn 中的P0,正在等待一个P1 占用的资源,P1 正在等待P2 占用的资源,……,Pn 正在等待已被P0 占用的资源。
简述利用假脱机技术实现打印机共享的基本处理过程
SPOOLing 是指在多道程序的环境下,利用多道程序中的一道或两道程序来模拟外围控制机,从而在联机的条件下实现脱机I/O 的功能,用一台主机完成脱机技术中需用三台计算机完成的工作。
以打印机为例,其核心思想是将打印任务从用户进程中分离出来,先存储在磁盘或内存中,然后由一个独立的进程按顺序将任务传送给打印机。通过假脱机技术,多个用户可以同时提交打印任务,而打印机按顺序逐一处理这些任务。
系统创建SPOOLing 打印守护进程,它是唯一获准使用打印机的进程,打印的文件首先被放入SPOOLing 目录,此后当打印机空闲时,守护进程可以定时地或者在SPOOLing 目录下的内容达到一定容量时,把SPOOLing 目录下的文件打印输出。
用户无需等待打印完成,可以继续使用计算机,系统通过调度提高了打印机的利用率,并确保多用户能够共享打印机资源。
分页存储管理和分段存储管理有何区别?
分页存储
空间划分
- 将一个用户进程的地址空间(逻辑空间)划分成若干个大小相等的区域,称为页或页面
- 内存空间也分成若干个与页大小相等的区域,称为块(物理块)或页框(frame)
内存分配
- 在为进程分配内存时以块为单位,将进程中若干页装入到多个不相邻的块中,最后一页常装不满一块而出现页内碎片。
页表
为了便于在内存找到进程的每个页面所对应块,分页系统中为每个进程配置一张页表,进程逻辑地址空间中的每一页,在页表中都对应有一个页表项。
页表存放在内存中,属于进程的现场信息。
用途:1. 记录进程的内存分配情况。2. 实现进程运行时的动态重定位。
访问一个数据需访问内存2 次(页表一次,内存一次)。
页表的基址及长度由页表寄存器给出。
分段存储
将用户作业的逻辑地址空间划分成若干个大小不等的段(由用户根据逻辑信息的相对完整来划分)。各段有段名(常用段号代替),首地址为0。
段表:
段表记录了段与内存位置的对应关系。
段表保存在内存中。
段表的基址及长度由段表寄存器给出。
访问一个字节的数据/指令需访问内存两次(段表一次,内存一次)。
逻辑地址由段号和段内地址组成。
分页与分段的主要区别
存储管理单位的不同
- 分页存储管理:
- 内存被划分为固定大小的页(Page),每一页的大小是相同的。程序的逻辑地址空间被分成相同大小的页,存储在物理内存中。
- 页表用于记录虚拟地址到物理地址的映射关系,每个虚拟页对应一个物理页框。
- 分段存储管理:
- 内存被划分为不同大小的段(Segment),每个段通常代表程序的一个逻辑部分,例如代码段、数据段、堆栈段等。段的大小不固定,可以根据实际需要动态分配。
- 段表用于记录虚拟段地址到物理内存地址的映射。
页是信息的物理单位,分页仅仅是由于系统管理的需要,对用户透明的。段是信息的逻辑单位,分段的目的是为了能更好的满足用户的需要。
页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分。段的长度却不固定,决定于用户所编写的程序。
分页的作业地址空间是一维的,分段的作业地址空间是二维的。
页和段都有存储保护机制。但存取权限不同:段有读、写和执行三种权限;而页只有读和写两种权限。
试说明关于索引文件和索引顺序文件的检索方法
索引文件(Index File)
索引文件是一种将数据记录的索引(类似目录)和数据存储文件分开管理的文件结构。索引文件存储着指向数据文件中具体记录位置的指针。常见的检索方法如下:
- 检索方法:
- 构建索引: 为了加速检索,首先根据某个字段(通常是关键字)建立索引。索引文件保存了关键字与数据记录之间的映射关系,记录每个关键字及其在数据文件中的位置(通常是文件的物理地址)。
- 查找索引: 检索时,先在索引文件中查找目标关键字。常用的索引查找方法包括:
- 顺序查找: 直接按顺序扫描索引,适用于索引规模较小的情况。
- 二分查找: 若索引文件已排序,可以使用二分查找来快速定位目标关键字。
- 访问数据文件: 找到对应的指针后,可以直接跳转到数据文件中的相应位置获取数据记录。
- 优点:
- 可分离索引和数据文件,便于管理。
- 通过索引的查找提高了查询效率。
索引顺序文件(Indexed Sequential File,ISF)
索引顺序文件结合了顺序文件和索引文件的特点,既有顺序存储数据记录的优势,又能利用索引加速检索过程。ISF的关键在于其在数据文件中采用了顺序存储,同时为提高检索效率,会在数据文件的特定位置建立索引。
- 检索方法:
- 顺序访问: 可以按顺序逐个访问记录,适用于批量读取或按顺序访问数据的场景。
- 索引检索: 在索引文件中查找关键字,利用索引跳转到数据文件中相应位置。这与索引文件的检索方法类似,通常使用二分查找来定位目标索引。
- 直接访问: 若数据记录已按某关键字顺序存储,可以根据索引找到数据的大致位置,再通过顺序访问进一步定位具体记录。由于数据记录已经按照某种规则(如关键字顺序)组织,检索时通常不需要全表扫描。
- 优点:
- 索引文件使得检索更加高效,尤其适用于需要频繁查找特定记录的情况。
- 顺序存储减少了存储空间的浪费。
总结:
- 索引文件: 是通过一个独立的索引文件映射关键字和数据文件中的位置来加速检索过程,适用于任意顺序存储的数据。
- 索引顺序文件: 是将索引和顺序存储结合起来,支持通过索引文件快速定位记录,同时保留顺序存储带来的优势,适用于数据按某个关键字顺序存储的情况。
文件的物理结构有哪几种?
顺序文件(Sequential File)
- 定义: 文件中的数据记录按照一定的顺序存储。常见的顺序为按时间、ID、或者其他字段进行排序。
- 存储方式: 所有记录依次排放,数据从文件的头到尾顺序排列。
- 优点:
- 存取方式简单,适用于批量处理和顺序访问,顺序存取速度快,。
- 存储密度高,磁盘访问顺序性好。
- 缺点:
- 查找某一记录时需要从头扫描至目标记录,效率较低。
- 插入、删除操作可能需要大量的文件重写。
索引文件(Index File)
- 定义: 文件记录和索引文件分开存储,索引文件保存着记录的索引信息(例如关键字及其在数据文件中的位置)。
- 存储方式: 索引文件中保存关键字与记录位置的映射关系,索引文件和数据文件是独立的。
- 优点:
- 通过索引可以加速检索操作。
- 数据文件和索引文件分开存储,易于维护。
- 缺点:
- 需要额外的存储空间来存放索引文件。
- 索引表的查找策略对文件系统的效率影响很大。
索引顺序文件(Indexed Sequential File,ISF)
- 定义: 结合顺序存储和索引的方式,数据记录按顺序存储,同时为加速查询建立索引。
- 存储方式: 数据记录按关键字顺序存储,并且建立一个或多个索引文件,索引文件保存记录的关键字及其位置。
- 优点:
- 顺序访问和索引检索相结合,兼具顺序读取和快速查找的优势。
- 缺点:
- 更新操作较复杂,可能需要重新组织索引。
- 对存储空间要求较高。
直接文件(Hashed File)
- 定义: 根据给定的记录键值,直接获得指定记录的物理地址。即记录键值本身就决定了记录的物理地址。
- 优点:
- 查找操作通常非常高效,时间复杂度为常数时间(O(1))。
- 缺点:
- 如果哈希冲突发生,需要处理冲突(例如链式处理或开放地址法)。
- 插入、删除操作复杂,可能导致哈希表的重新组织。