2026年操作系统精髓与设计原理·第五版复习题及答案_第1页
2026年操作系统精髓与设计原理·第五版复习题及答案_第2页
2026年操作系统精髓与设计原理·第五版复习题及答案_第3页
2026年操作系统精髓与设计原理·第五版复习题及答案_第4页
2026年操作系统精髓与设计原理·第五版复习题及答案_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2026年操作系统精髓与设计原理·第五版复习题及答案1.进程的三种基本状态是什么?状态转换的典型触发事件有哪些?进程的三种基本状态为就绪态、执行态、阻塞态。就绪态是进程已获得除CPU外的所有必要资源,等待调度;执行态是进程正在CPU上运行;阻塞态是进程因等待I/O、信号等事件暂时无法继续执行。状态转换触发事件包括:就绪→执行(调度程序分配CPU)、执行→就绪(时间片耗尽或更高优先级进程进入)、执行→阻塞(进程请求I/O或等待资源)、阻塞→就绪(等待的事件完成,如I/O结束)。需注意,阻塞态无法直接转换为执行态,必须先转为就绪态等待调度。2.比较先来先服务(FCFS)、短作业优先(SJF)、时间片轮转(RR)三种调度算法的优缺点。FCFS实现简单,公平性好,但对长作业有利,短作业等待时间长,平均周转时间大,适用于批处理系统。SJF平均周转时间最小,能有效减少短作业等待,但需要预知作业运行时间(实际中多用估计值),可能导致长作业饥饿(“护航效应”),且对紧急任务响应差。RR通过时间片(通常10-100ms)轮转保证公平性,响应时间短,适合分时系统;但时间片过大会退化为FCFS,过小则上下文切换开销增加,需根据系统负载动态调整时间片长度。3.死锁的四个必要条件是什么?如何通过破坏这些条件预防死锁?死锁的必要条件:互斥(资源独占)、请求与保持(进程持有资源并请求其他资源)、不可抢占(资源不可强行剥夺)、循环等待(进程间形成资源请求环)。破坏互斥:使资源可共享(如只读文件),但多数资源(如打印机)无法共享;破坏请求与保持:采用静态分配(进程运行前申请所有资源),但降低资源利用率;破坏不可抢占:允许系统抢占资源(如优先级高的进程抢占CPU),但需考虑资源状态保存;破坏循环等待:对资源编号,强制进程按递增顺序申请资源,避免环的形成。4.虚拟内存的核心思想是什么?分页与分段技术如何支持虚拟内存?虚拟内存通过部分装入程序到内存,利用磁盘作为内存扩展,使程序地址空间大于物理内存。核心是地址空间与物理内存解耦,实现进程隔离与内存复用。分页技术将虚拟地址空间划分为固定大小的页(如4KB),物理内存划分为页框,页表记录页到页框的映射。当访问的页不在内存时触发缺页中断,从磁盘调入。分段技术将地址空间按逻辑功能划分为段(如代码段、数据段),段表记录段基址和长度,支持动态增长和共享(如共享库)。分页面向内存管理,分段面向程序逻辑,现代系统常结合分页与分段(如x86的段页式管理)。5.解释页面置换算法中的Belady异常现象及其产生原因。Belady异常指当分配给进程的物理页框数增加时,缺页次数反而增多的现象。FIFO算法(先进先出)是唯一被证实可能出现该异常的算法。例如,页访问序列为1,2,3,4,1,2,5,1,2,3,4,5,当页框数为3时缺页次数为9次,页框数为4时缺页次数增至10次。原因是FIFO仅按进入顺序淘汰页面,未考虑页面的使用频率,可能淘汰即将被访问的页面(如早期进入但后续频繁访问的页)。LRU(最近最少使用)等基于局部性原理的算法可避免此问题。6.进程与线程的本质区别是什么?用户级线程与内核级线程的优缺点有哪些?进程是资源分配的基本单位,线程是CPU调度的基本单位。进程拥有独立的地址空间、文件描述符等资源,线程共享进程资源(如内存、文件),仅拥有少量私有数据(如寄存器、栈)。用户级线程由用户空间的线程库管理(如pthread),切换无需内核干预,速度快(约100ns),但一个线程阻塞会导致整个进程阻塞(内核感知不到线程);内核级线程由操作系统直接管理,调度更灵活(多线程可并行运行在多核),但切换开销大(需陷入内核,约1μs),且线程数受内核限制(通常数万级)。现代系统多采用混合模型(如Java线程),用户线程映射到内核轻量级进程(LWP)。7.信号量机制如何实现进程互斥与同步?试举例说明。信号量(Semaphore)是一种整型变量,通过P(wait)和V(signal)操作实现同步。互斥场景:设互斥信号量mutex=1,进程进入临界区前执行P(mutex)(若mutex>0则减1,否则阻塞),退出时执行V(mutex)(加1并唤醒等待进程)。同步场景:生产者-消费者问题中,设empty(空闲缓冲区数)=n,full(满缓冲区数)=0。生产者执行P(empty)(获取空闲区)→放入产品→V(full)(通知消费者);消费者执行P(full)(获取满区)→取出产品→V(empty)(通知生产者)。需注意信号量初始值设置(互斥为1,同步为资源初始数),且P/V操作需成对出现以避免死锁。8.文件逻辑结构与物理结构的分类及特点是什么?逻辑结构是用户可见的文件组织方式,分为:①顺序文件(记录按顺序存放,支持顺序访问,随机访问需计算偏移,如日志文件);②索引文件(为每个记录建立索引表,支持快速随机访问,如数据库索引);③索引顺序文件(结合顺序与索引,先按顺序分组,再对组建立索引,平衡空间与时间,如B+树);④直接文件(通过哈希函数将关键字映射到物理地址,支持O(1)访问,如缓存系统)。物理结构是文件在磁盘上的存储方式,分为:①连续分配(文件占连续磁盘块,支持顺序/随机访问,但扩展困难,易产生外部碎片);②链接分配(块间用指针链接,无碎片,扩展灵活,但随机访问慢,指针易损坏);③索引分配(通过索引块记录所有块地址,支持快速随机访问,空间开销大,需考虑多级索引(如UNIX的i节点支持12个直接块+1个一级间接块+1个二级间接块))。9.磁盘调度算法中,SCAN与C-SCAN的区别是什么?如何选择调度算法?SCAN(电梯算法):磁头在盘面上往返移动,沿一个方向扫描所有请求,到达端点后反向。优点是避免饥饿,平均寻道时间较短;缺点是中间区域访问频率高于边缘。C-SCAN(循环扫描):磁头单向扫描(如从内到外),到达最外端后快速回到最内端(不处理返回路径的请求),再重复扫描。优点是减少边缘区域的等待时间,各位置访问公平性更高;缺点是返回时无处理,可能增加延迟。选择算法时需考虑:实时性要求(如数据库用SCAN)、公平性(如分时系统用C-SCAN)、负载情况(高负载时SCAN更高效,低负载时FCFS简单)。10.I/O控制方式经历了哪些发展阶段?各阶段的特点是什么?①程序查询方式:CPU不断查询I/O设备状态(忙/闲),I/O完成后读取数据。CPU利用率极低(90%时间用于查询),适用于简单设备(如早期打印机)。②中断驱动方式:I/O设备完成操作后向CPU发中断,CPU暂停当前任务处理I/O。减少CPU等待时间,但每次中断处理需保存/恢复上下文(约1000时钟周期),适用于中低速设备(如键盘)。③DMA(直接内存访问)方式:DMA控制器直接在内存与设备间传输数据,仅在传输完成或出错时中断CPU。减少CPU参与(仅控制传输起始/结束),适用于高速设备(如磁盘、网卡)。④通道(I/O处理器)方式:通道执行独立的I/O指令序列(通道程序),CPU仅需发送启动命令,完全解放CPU,适用于大型主机系统(如IBM的ESCON通道)。11.设备独立性(设备无关性)的含义是什么?如何实现?设备独立性指应用程序无需关心具体设备类型,通过统一接口访问不同设备。实现方式:①逻辑设备名到物理设备名的映射(如UNIX的/dev目录,用户使用逻辑名如“/dev/sda1”,系统通过设备驱动程序映射到具体磁盘);②统一的设备访问接口(如read/write系统调用,屏蔽磁盘、键盘等设备的差异);③设备驱动程序层(内核为每种设备提供驱动,处理具体I/O操作,向上提供标准接口)。优点是提高程序可移植性(如读写文件无需修改代码适配不同磁盘),简化系统管理(设备替换不影响应用)。12.解释管程(Monitor)的结构与作用,与信号量的主要区别是什么?管程是一种用于实现进程同步的高级抽象,由共享变量、对变量的操作过程、初始化代码组成。管程保证同一时间仅一个进程进入(互斥),其他进程在入口队列等待;若进程需等待条件(如缓冲区满),则进入条件变量队列(如not_full),并释放管程。条件变量支持wait(阻塞当前进程,唤醒入口队列进程)和signal(唤醒条件队列中的一个进程)操作。与信号量的区别:信号量需程序员手动管理P/V操作,易出错;管程将同步逻辑封装,隐藏实现细节,提高代码可读性和正确性(如Java的synchronized关键字本质是管程)。13.内存保护的主要目的是什么?现代操作系统如何实现内存保护?内存保护防止进程越界访问或修改其他进程的内存空间,确保系统稳定性和安全性。实现方式:①基址-限长寄存器:每个进程的逻辑地址空间起始地址(基址)和长度(限长)存入寄存器,访问时检查逻辑地址是否在[0,限长)范围内,越界则触发中断(如早期单道批处理系统)。②页表保护:页表项中设置访问权限位(读、写、执行),CPU访问内存时通过MMU(内存管理单元)将虚拟地址转换为物理地址,并检查权限(如写只读页触发页错误)。③段表保护:段表记录段基址和段长,访问时检查偏移量是否超过段长,同时段表项可设置权限(如代码段不可写)。④地址空间隔离:每个进程有独立的虚拟地址空间(如x86的4GB虚拟地址空间),通过页表映射到不同物理内存,进程间无法直接访问对方内存(需通过共享内存或IPC通信)。14.实时操作系统(RTOS)的关键特性有哪些?硬实时与软实时的区别是什么?RTOS需满足任务的时间约束(截止时间),关键特性包括:①可预测性(任务执行时间可精确计算);②快速响应(中断延迟通常<1μs);③抢占式调度(高优先级任务可立即抢占CPU);④资源管理(如内存分配无碎片,避免动态分配导致的不可预测延迟)。硬实时系统中,任务超过截止时间会导致严重后果(如医疗设备、航空控制系统),必须保证100%按时完成;软实时系统允许偶尔超时(如视频流播放),但需保证平均性能(如延迟<100ms)。RTOS常用调度算法为EDF(最早截止时间优先)和RM(速率单调调度),EDF动态根据截止时间排序,RM静态根据任务周期(周期短的优先级高)。15.解释分布式操作系统中RPC(远程过程调用)的工作流程及关键问题。RPC允许程序调用远程主机上的过程,仿佛调用本地过程。流程:①客户端调用本地stub(存根)过程,参数压栈;②stub将参数序列化(如用XDR标准),发送到网络;③服务端stub接收消息,反序列化参数,调用实际过程;④实际过程执行后返回结果,服务端stub序列化结果并回传;⑤客户端stub接收结果,反序列化后返回给调用者。关键问题:①网络延迟与可靠性(需处理丢包、超时,如设置重试机制);②参数类型支持(需处理不同体系结构的字节序、数据类型差异);③进程命名(如何定位远程服务,如使用DNS或目录服务);④状态一致性(远程过程是否有副作用,需定义幂等性)。16.文件系统的空闲空间管理有哪些方法?各方法的优缺点是什么?①空闲块表(FreeList):记录连续空闲块的起始地址和长度,适用于连续分配的文件系统(如早期FAT)。优点是分配连续块效率高;缺点是空闲块分散时表项增多,查找困难。②空闲块位图(Bitmap):用二进制位表示块是否空闲(1表示空闲),占用空间小(如1GB磁盘需128KB位图)。优点是分配/回收单个块快速(按位操作),支持随机访问;缺点是分配连续块需扫描多个位,可能产生内部碎片(如文件大小非块整数倍)。③空闲块链表(LinkedList):将空闲块用指针链接(如FAT文件系统的空闲簇链)。优点是无额外空间开销(指针存于块内);缺点是需遍历链表分配块,可靠性差(指针损坏导致空闲块丢失)。④成组链接法(如UNIX的空闲块管理):将空闲块分组,每组最后一个块记录下一组的块数和起始地址。结合了链表与位图的优点,分配/回收效率高,可靠性好(损坏一组仅影响部分块)。17.操作系统安全的主要目标是什么?访问控制的常见模型有哪些?操作系统安全目标包括:①confidentiality(机密性,防止信息泄露);②integrity(完整性,防止非法修改);③availability(可用性,保证资源可访问)。访问控制模型:①自主访问控制(DAC):资源所有者决定访问权限(如UNIX的文件权限rwx),灵活但易因用户误操作泄露信息;②强制访问控制(MAC):系统根据安全标签(如绝密、机密、公开)强制控制访问,主体(进程)和客体(文件)都有标签,仅当主体标签≥客体标签时可读取(向下读),主体标签≤客体标签时可写入(向上写),适用于高安全等级系统(如军事系统);③基于角色的访问控制(RBAC):根据用户角色(如管理员、普通用户)分配权限,权限与角色绑定,用户通过角色获得权限,简化大规模系统的权限管理(如企业OA系统)。18.解释微内核(Microkernel)与宏内核(MonolithicKernel)的架构差异及优缺点。宏内核将所有核心功能(进程调度、内存管理、文件系统、设备驱动)集成在一个大内核中,模块间直接调用,性能高(如Linux、早期UNIX)。优点是系统调用开销小(函数调用),实现简单;缺点是内核庞大,模块间耦合度高,修改易引入错误,扩展性差(新增功能需修改内核代码)。微内核仅保留最小核心功能(如进程间通信IPC、线程调度、基本内存管理),其他功能(如文件系统、设备驱动)作为用户态服务运行。优点是模块化程度高,便于维护和扩展(新增服务无需修改内核),安全性好(服务崩溃不影响内核);缺点是IPC开销大(用户态与内核态切换频繁),性能低于宏内核(如QNX、Mach)。现代系统多采用混合架构(如WindowsNT),关键功能在内核态,次要功能在用户态。19.解释工作集(WorkingSet)模型的含义及其在虚拟内存管理中的应用。工作集是进程在最近Δ时间内访问的页面集合(Δ为窗口大小)。根据局部性原理,进程的执行具有时间局部性(最近访问的页可能再次访问)和空间局部性(相邻页可能被访问),工作集反映了进程当前所需的最小内存集合。虚拟内存管理中,若分配给进程的物理页框数≥工作集大小,则缺页率低;若小于,缺页率急剧上升(“颠簸”现象)。操作系统通过监控工作集大小(如记录页面访问时间戳,定期清理超出Δ时间的页),动态调整分配给进程的页框数(如增加页框防止颠簸,减少页框回收内存)。工作集模型为页面置换(如WSClock算法)和内存分配策略提供了理论依据。20.比较对称加密与非对称加密的原理及适用场景。对称加密(如AES、DES)使用同一密钥加密和解密,密钥需安全传输。优点是速度快(AES-256加密1MB数据仅需几毫秒),适合大数据加密;缺点是密钥分发困难(需安全信道传输),密钥管理复杂(n个用户需n(n-1)/2个密钥)。非对称加密(如RSA、ECC)使用公钥(公开)加密,私钥(保密)解密。优点是密钥分发方便(公钥可公开),支持数字签名(私钥签名,公钥验证);缺点是速度慢(RSA加密1KB数据需数十毫秒),适合小数据加密(如加密对称密钥)。实际应用中常结合两者:用非对称加密传输对称密钥,再用对称加密传输数据(如TLS协议)。21.解释容器(Container)与虚拟机(VM)的核心区别及各自优势。虚拟机通过Hypervisor(如VMware、KVM)模拟硬件,每个VM运行独立的操作系统(GuestOS),资源隔离彻底(VM崩溃不影响其他VM)。容器通过操作系统级虚拟化(如Linux的namespace和cgroup)实现进程隔离,共享宿主机内核,仅封装应用及其依赖库。核心区别:①资源占用:VM需为每个实例分配独立内核、内存(通常GB级);容器仅需MB级内存,资源利用率更高(如1台物理机可运行数百个容器)。②启动速度:VM启动需加载OS(分钟级);容器启动仅需启动应用(秒级)。③隔离性:VM完全隔离(不同GuestOS);容器共享内核,存在内核漏洞风险(如脏牛漏洞)。优势:VM适合需要完全隔离的场景(如多租户云主机);容器适合微服务架构(快速部署、弹性伸缩)。22.磁盘阵列(RAID)的常见级别及特点是什么?①RAID0:条带化(数据分块存储到多磁盘),无冗余,读写速度提升(n磁盘带宽×n),但可靠性低(任一磁盘损坏数据丢失),适用于视频编辑等高性能需求场景。②RAID1:镜像(数据同时写入两个磁盘),冗余度100%,读性能提升(可从任一磁盘读取),写性能与单盘相同,适用于数据库日志等关键数据。③RAID5:条带+校验(校验数据分布在各磁盘),冗余度1/n(n≥3),支持单盘故障恢复,读写性能均衡(校验增加写开销),是最常用的企业级方案。④RAID10:RAID1+RAID0(先镜像再条带),结合高可靠性(镜像)和高性能(条带),冗余度50%,适用于高并发数据库(如MySQL集群)。23.解释内核态(KernelMode)与用户态(UserMode)的区别及切换原因。CPU通过模式位(如x86的CPL)区分内核态(0级)和用户态(3级)。内核态可访问所有内存和I/O端口,执行特权指令(如设置页表、关闭中断);用户态仅能访问自身地址空间,执行非特权指令(如加法、跳转)。切换原因:①系统调用(用户程序请求OS服务,如read(),通过int0x80或syscall指令陷入内核);②异常(如页错误、除以零,CPU自动切换到内核态处理);③中断(I/O设备完成操作,CPU暂停当前任务,切换到内核态执行中断处理程序)。切换开销包括保存/恢复寄存器、切换页表(若进程切换)、执行内核代码,通常需数百到数千时钟周期。24.解释原子操作(AtomicOperation)在并发控制中的作用,常见实现方式有哪些?原子操作是不可中断的操作序列,执行期间不会被其他线程或进程干扰,保证数据一致性。在并发控制中,原子操作用于实现互斥(如测试并设置TSL)、计数器(如无锁队列)等。实现方式:①硬件支持(如x86的LOCK前缀指令,保证总线锁,使操作原子执行);②内存屏障(如C++的std::atomic,通过编译器插入屏障指令,防止指令重排序);③软件算法(如Dekker算法、Peterson算法,通过共享变量协调进程,但仅适用于双进程)。现代系统多依赖硬件原子指令(如CAS(比较并交换)),CAS操作(比较内存值与期望值,相等则更新)是实现无锁数据结构(如无锁栈)的基础。25.解释文件系统的一致性检查(FSCheck)的触发场景及实现原理。触发场景:①系统崩溃(如断电)导致文件系统元数据(如inode、块位图)不一致;②强制卸载文件系统(如未正常umount的U盘);③人为执行检查命令(如fsck)。实现原理:遍历文件系统元数据,验证逻辑一致性:①检查inode的链接计数(linkcount)是否与目录中的硬链接数匹配(避免悬空inode);②检查块位图与inode的块指针是否一致(避免块被多个文件占用或未被标记为已用);③检查目录项的父inode是否指向正确的父目录(避免目录树断裂)。对于错误,一致性检查工具(如e2fsck)会尝试修复(如清除无效块指针、重建丢失的目录项),严重错误需人工干预(如文件数据损坏无法恢复)。26.解释动态链接(DynamicLinking)与静态链接(StaticLinking)的区别及优缺点。静态链接在编译时将库函数代码(如C标准库)复制到可执行文件中,提供独立执行文件。优点是运行时无需依赖外部库,兼容性好;缺点是文件体积大(如复制glibc需数MB),多个程序重复占用内存(浪费资源)。动态链接在运行时加载共享库(如Linux的.so文件),程序仅存储库的引用(地址),运行时通过动态链接器(ld.so)将库映射到内存,多个程序共享同一份库代码。优点是节省内存(一份库供多个进程使用),方便库升级(只需更新共享库,无需重新编译程序);缺点是运行时依赖库的存在和版本(可能出现“DLL地狱”问题,如库版本不兼容)。现代操作系统默认使用动态链接,关键库(如启动代码)采用静态链接保证启动可靠性。27.解释时间局部性(TemporalLocality)与空间局部性(SpatialLocality)的含义,举例说明其在操作系统中的应用。时间局部性:最近访问过的信息很可能再次被访问(如循环变量、函数调用栈中的数据)。空间局部性:最近访问过的信息的邻近信息很可能被访问(如数组遍历、顺序执行的指令)。应用:①缓存(CPU缓存、磁盘缓存):利用时间局部性,将最近访问的数据保留在高速缓存中;利用空间局部性,预取相邻数据(如CPU缓存的行填充,磁盘的预读)。②虚拟内存的页面置换(如LRU):基于时间局部性,替换最久未使用的页;③文件系统的连续分配:基于空间局部性,将文件数据存放在连续磁盘块,减少寻道时间。28.解释操作系统的引导过程(BootProcess)的主要步骤。①BIOS/UEFI启动:开机后CPU执行ROM中的BIOS/UEFI代码,检测硬件(如内存、磁盘),初始化关键设备(如显卡),然后查找启动设备(按优先级:硬盘、U盘、网络)。②MBR/GPT读取:从启动设备的引导扇区(MBR的前512字节或GPT的引导分区)读取

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论