版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年计算机操作系统期末试卷简答题(答案)1.描述进程从运行态转为阻塞态的典型场景,并说明该过程中操作系统需要完成的关键操作。典型场景:进程在运行过程中需要等待外部事件完成,如向磁盘写入数据时等待I/O操作结束、请求访问已被其他进程占用的临界资源(如共享文件锁)、或调用系统调用(如read()读取键盘输入)时等待用户输入。此时进程无法继续执行,必须放弃CPU转为阻塞态。关键操作:①保存当前进程的上下文:操作系统需将CPU寄存器(如程序计数器PC、通用寄存器、状态寄存器PSW)的内容保存到该进程的进程控制块(PCB)中,确保后续恢复执行时能正确继续;②修改进程状态:将PCB中的状态字段从“运行态”改为“阻塞态”;③选择新的就绪进程调度:通过调度算法(如时间片轮转或优先级调度)从就绪队列中选择一个进程,将其状态改为“运行态”,并将保存的上下文加载到CPU寄存器中,使其开始执行;④将阻塞进程加入对应事件的等待队列:根据阻塞原因(如I/O设备、信号量等),将该进程的PCB插入到相应的等待队列(如磁盘I/O等待队列)中,待事件完成(如I/O结束)时由中断处理程序或设备驱动程序唤醒。2.比较请求分页系统中LRU与Clock页面置换算法的实现原理及实际应用中的优缺点。实现原理:LRU(最近最久未使用)算法基于“局部性原理”,选择最近最长时间未被访问的页面置换,需记录每个页面的最后访问时间戳;Clock算法(改进的NRU算法)通过循环检查页面的访问位(R位)实现,将页面组织成环形链表,扫描时若R位为1则置0并继续,若为0则置换该页,类似钟表指针转动。优缺点对比:LRU理论上性能接近最优(Belady算法),但需为每个页面维护精确的访问时间,硬件支持(如时间戳寄存器)或软件记录(如维护链表)的开销较高,尤其在页表项较多时,时间复杂度为O(n),实时性较差;Clock算法仅需维护R位(部分改进版本还使用修改位M位),通过单次扫描即可完成置换,时间复杂度为O(1)(平均情况),实现简单、开销低,但由于仅记录最近是否被访问(而非具体时间),可能无法准确识别“最久未使用”的页面,在某些访问模式下(如周期性顺序访问)置换效率低于LRU。实际应用:LRU常见于对性能要求高且硬件支持的场景(如高端服务器操作系统),或通过近似实现(如用栈模拟LRU)降低开销;Clock算法因实现简单、开销小,广泛应用于嵌入式系统(如Android)和通用操作系统(如早期Linux内核的页置换策略)。3.说明UNIX/Linux系统中硬链接与软链接的实现差异,以及在文件共享和删除操作中的行为区别。实现差异:硬链接通过在文件系统目录项中添加一个指向同一inode的条目实现,与原文件共享相同的inode号和数据块,不占用额外磁盘空间;软链接(符号链接)则是一个独立的文件,其内容为目标文件的路径名(如“/home/user/doc.txt”),拥有独立的inode和数据块(存储路径字符串)。文件共享行为:硬链接共享的文件在修改时会直接反映到所有链接,因为它们指向同一inode;软链接的修改仅影响软链接文件本身,访问时需解析路径名找到目标文件(若目标文件被删除,软链接变为“断链”)。删除操作区别:删除原文件时,硬链接的引用计数(inode的链接数)减1,仅当链接数为0时才真正删除数据块;软链接的删除不影响目标文件,仅删除软链接自身的inode和目录项。若目标文件被删除,软链接仍然存在但无法访问(提示“没有那个文件或目录”),而硬链接只有在所有链接都被删除后才会释放数据。4.对比程序直接控制I/O、中断驱动I/O、DMA方式和通道方式的工作流程,分析各自适用的设备类型。工作流程:-程序直接控制I/O:CPU通过循环查询I/O设备状态寄存器(如“忙/闲”位),当设备就绪时执行数据读写。CPU需全程参与数据传输,期间无法执行其他任务。-中断驱动I/O:CPU向设备发出I/O命令后继续执行其他程序,设备完成数据准备(如读入一个字节)时向CPU发送中断请求,CPU响应中断并执行中断处理程序完成数据传输。-DMA方式(直接内存访问):CPU向DMA控制器发送传输参数(源/目的内存地址、传输字节数)后,DMA控制器接管总线,直接在内存与I/O设备间传输数据,仅在传输完成或出错时向CPU发送中断。-通道方式:通道(I/O处理机)接收CPU的I/O指令(如“执行通道程序”),独立完成设备控制、数据传输和错误处理,仅在整个I/O任务完成时向CPU报告。适用设备:-程序直接控制:适用于低速、非频繁传输的设备(如早期的串行打印机),或硬件无中断支持的简单系统。-中断驱动:适用于中低速、数据传输单位较小的设备(如键盘、鼠标),每次传输一个字节或字,避免CPU空转。-DMA方式:适用于高速、批量数据传输的设备(如磁盘、网卡),传输单位为块(如512字节-4KB),减少CPU中断次数。-通道方式:适用于大型多设备系统(如主机的磁盘阵列、磁带机),通道可同时管理多个设备的I/O任务,进一步减轻CPU负担。5.解释用户级线程与内核级线程的调度差异,说明为何用户级线程在多处理器系统中可能无法充分利用CPU资源。调度差异:用户级线程(ULT)的调度由用户空间的线程库(如pthread)完成,内核仅感知进程(主线程)的存在,不参与ULT的调度;内核级线程(KLT)的调度由内核直接管理,每个线程对应一个内核调度实体(如Linux的task_struct),内核可独立调度KLT到不同CPU核心。多处理器利用问题:ULT的调度在用户空间进行,内核将整个进程视为一个调度单位。当进程中的一个ULT因I/O阻塞时,内核会调度其他进程执行,但该进程内的其他ULT无法被调度到其他CPU核心(因为内核不知道它们的存在);若一个ULT在CPU上运行(如计算密集型任务),即使系统有多个空闲CPU核心,其他ULT也无法并行执行,因为线程库无法强制内核分配多个CPU给该进程。而KLT中,每个线程可被内核独立调度到不同核心,实现真正的并行。例如,在4核系统中,一个包含4个计算型ULT的进程只能在1个核心上串行执行;而包含4个KLT的进程可同时在4个核心上并行运行,充分利用多核资源。6.说明死锁预防与死锁避免在设计思想上的根本差异,并各举一种具体实现方法。设计思想差异:死锁预防通过破坏死锁产生的必要条件(互斥、占有并等待、不可抢占、循环等待),从根本上杜绝死锁发生的可能性;死锁避免则允许必要条件存在,但通过动态检查资源分配状态(如银行家算法),确保系统始终处于安全状态,避免进入死锁的危险状态。具体实现:-死锁预防:破坏“占有并等待”条件,可采用“一次性分配”策略(进程运行前申请所有所需资源,否则不运行),或“逐步分配”策略(仅当进程释放当前资源后才能申请新资源)。例如,数据库管理系统中事务的锁机制要求事务在开始时锁定所有需要的记录(一次性分配),避免运行中等待其他锁。-死锁避免:使用银行家算法,系统维护可用资源向量(Available)、最大需求矩阵(Max)、分配矩阵(Allocation)和需求矩阵(Need)。当进程申请资源时,模拟分配后的状态,检查是否存在一个安全序列(所有进程可按此序列完成),若存在则分配,否则拒绝。例如,操作系统在为进程分配内存页面时,通过银行家算法判断是否会导致后续无法满足其他进程的最小需求。7.描述虚拟内存中页面抖动(Thrashing)的产生原因及操作系统的应对策略。产生原因:页面抖动指系统频繁进行页面置换(缺页率极高),导致CPU大部分时间用于处理页面置换(如磁盘I/O、修改页表),而真正用于执行用户程序的时间极少。根本原因是多道程序度(内存中同时运行的进程数)过高,每个进程分配的物理页面数不足,无法满足其局部性访问需求,导致进程在运行中频繁缺页,置换出的页面很快又被访问,形成“置换-缺页”的恶性循环。应对策略:-降低多道程序度:通过调度算法(如负载控制)暂停部分进程的执行(换出到磁盘),减少内存中的进程数,增加每个进程的物理页面分配量,提高局部性命中率。-采用工作集算法:跟踪每个进程的工作集(最近Δ时间内访问的页面集合),确保分配给进程的物理页面数不小于其工作集大小。若工作集增大,动态增加分配页面;若工作集缩小,释放多余页面。-优化页面置换算法:使用更智能的置换策略(如改进的Clock算法或基于工作集的置换),减少“刚换出就访问”的情况。例如,Linux的OOM(Out-Of-Memory)杀手在内存严重不足时终止低优先级进程,释放物理页面。-调整磁盘I/O性能:增加磁盘缓存(如Linux的pagecache)、使用更快的存储介质(如SSD替代HDD),减少页面置换的I/O时间,缓解抖动对系统性能的影响。8.分析信号量机制中wait(P)操作与signal(S)操作的原子性要求,说明为何非原子实现会导致同步错误。原子性要求:wait和signal操作必须是原子的,即操作过程不可被中断,要么完全执行,要么不执行。具体来说,wait操作(检查信号量值是否≥1,若≥1则减1;否则阻塞)和signal操作(将信号量值加1,唤醒等待进程)必须在一个不可分割的指令序列中完成。非原子实现的问题:若wait操作非原子,可能出现多个进程同时检查信号量值的情况。例如,信号量值为1时,进程A和进程B同时检查到值≥1,都执行减1操作,导致信号量值变为-1(本应仅允许一个进程进入临界区),破坏互斥。类似地,signal操作非原子时,可能丢失唤醒信号:进程A释放资源(信号量加1)时,进程B正在检查信号量,若A的加1操作未完成,B可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论