操作系统精选题(二)(综合模拟题一)

🌈 个人主页:十二月的猫-CSDN博客
🔥 系列专栏: 🏀操作系统

💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 

目录

前言

简答题

一、进程由计算和IO操作组成,据此,进程可分为哪几类,不同进程占比的不同对长期调度和短期调度有什么影响

二、操作系统为什么要设计I/O SubSystem,Buffer的作用是什么

三、 在基本的分页(paging)中,页表中的每项记录只用保存什么;对于请求分页(demanding paging),需要增加哪些记录,为什么

四、文件使用前为什么要执行open()操作,结束后为什么要执行close()操作;操作系统是怎么实现不同进程对同一文件的访问的

五、磁盘定位时间(positing time)由什么组成,说明SSTF不一定比LOOK算法好

 六、overhead的意思

论述题

一、在进程的内存分配和文件存储中,会产生碎片,碎片分为哪几种,在内存分配和文件存储中会产生什么碎片

二、对于以下几个方面,操作系统有什么保护措施:

三、评估进程调度算法性能的标准为什么是等待时间?对于非抢占式调度,抢占式调度对于减少平均等待时间是否有帮助。以SJF为例举例说明,要求:至少有四个进程,每个进程的arrival time和burst time不同 

四、写出非忙等待的wait()和signal()操作的伪代码实现

五、​编辑

总结


前言

本系列题目均选自山东大学往年考题,供大家复习参考。一定要在复习完基础知识后(最好把书本都看一遍,这样子知识体系才是完善的),再来参考这个练习题。

两个不可取:一、不可不复习知识点,光做题;二、不可只复习知识点,不复习

猫猫祝大家都能取得好成绩呀~~~

简答题

一、进程由计算和IO操作组成,据此,进程可分为哪几类,不同进程占比的不同对长期调度和短期调度有什么影响

问题解答:

进程可以分为计算密集型进程、I/O密集型进程和混合型进程

计算密集型进程:这类进程主要执行计算操作,很少进行输入/输出操作。它们需要大量CPU资源去计算

I/O密集型进程:这类进程有很多的I/O操作,如读写文件、网络通信等,它们可能不需要很多的计算需求,在CPU上占用的时间较少

混合型进程:同时具有计算和I/O操纵的进程,这类进程在执行期间会在CPU计算和I/O请求之间频繁切换

长期调度(作业调度):负责从外存的后备队列中选择进程到内存的就绪队列中。I/O密集型进程多时,系统会优先调度这些进程,因为它们快速释放内存资源,同时能够让I/O设备早点开始运行;计算密集型进程多时,系统会平衡两种类型的进程,以提高CPU和I/O设备的利用率

短期调度(CPU调度):负责从内存的就绪队列中选择进程到CPU中运行。在I/O密集型较多情况下,CPU的占有率会比较低,会频繁进行短期调度;在计算密集型过多时,CPU容易过载,需要用时间片轮转或者优先级策略调度

二、操作系统为什么要设计I/O SubSystem,Buffer的作用是什么

1、为什么要设计I/O子系统

  • 抽象化:I/O子系统统一管理所有的I/O设备,利用抽象化解耦了应用程序和具体I/O设备之间的联系,让应用程序无需关心硬件细节
  • 设备独立性:让同一个系统调用不同I/O设备的时候,这些I/O设备之间是彼此独立不影响的
  • 缓冲和缓冲管理:利用缓存区缓解了CPU和I/O速度不匹配的问题
  • 错误处理:集中管理I/O错误,提高系统稳定性
  • 数据管理:确保数据在设备间的传输是高效的

2、缓冲区的作用是什么

  • 解决速度不匹配问题:缓冲区可以解决CPU和I/O设备之间速度不匹配问题。I/O设备多个处理结果存在缓冲区中,让CPU统一来处理
  • 减少I/O次数:将多个小的I/O请求合并成一个大的I/O请求,统一给CPU处理;或者将大的I/O请求分割成方便传输的不同块
  • 提高系统容错率:buffer相对于一个临时存储器,当I/O数据出现丢失等情况,可以从buffer中恢复数据 

三、 在基本的分页(paging)中,页表中的每项记录只用保存什么;对于请求分页(demanding paging),需要增加哪些记录,为什么

基本分页:对应非虚拟内存情况下,此时允许进程会把进程的所有内容都一起送到内存中,然后再进行访问

请求分页:为了虚拟内存技术的实现。此时一个进程被调度,只有这个进程需要这个页时,页面才会被调度进来

基本分页中只保留帧号。MMU从页表中的到每一页对应的帧号,然后完成从逻辑地址到物理地址的映射,由于页号和页表号都是从0开始一一对应的,所以页表中不需要记录帧号对应的页号。

请求分页中需要增加记录:

  • 保护位:也就是有效/无效位,是实现请求调页必须要求的。因为在请求调页中新的进程被调度,内存和页表中的数据不会被重写,所以有一些页数据是该进程不能访问的,有些页数据的访问权限是改变的。所以需要保护位来实现访问权限/空值等设定和保护
  • 访问位:一旦页表满了之后,仍然出现缺页这个时候就需要调换出一个页来。而选择调换哪个页就要看哪个页被访问的可能性最小,所以需要访问位去记录访问情况(多种调换方法,访问位记录方式也存在不同)
  • 修改位:每次页被调出后,通过修改位来判断是否需要重新写回磁盘。如果该页被修改过就需要写回磁盘,否则不用写回磁盘

四、文件使用前为什么要执行open()操作,结束后为什么要执行close()操作;操作系统是怎么实现不同进程对同一文件的访问的

不同进程访问同一文件=不同进程访问同一文件的数据=不同进程共享数据 

执行open操作:

  • 检查访问权限。一个进程使用文件前执行open操作,操作系统会检查这个进程是否有访问权限访问这个文件,保护文件访问的安全
  • 分配资源。open调用会让操作系统给进程分配必要的资源来实现对文件的操作

执行close操作: 

  • 释放资源。close操作让进程占用的文件管理资源得到释放,防止资源耗尽
  • 确保数据完整性。close操作会让强制文件的数据重新写回磁盘,确保数据不会因为进程突然中断而丢失

操作系统通过使用虚拟内存技术实现共享数据。通过共享数据实现不同进程对同一个文件数据进行访问。具体来说,多个进程允许将同一个文件映射到各自的虚拟内存中,从而实现对数据的共享

五、磁盘定位时间(positing time)由什么组成,说明SSTF不一定比LOOK算法好

  • 磁盘定位时间:寻道时间+旋转延迟+I/O时间

SSTF为什么不一定比LOOK算法好

  • SSTF算法:最短寻道时间优先算法,选择下一个服务时会选择离当前磁头最近的请求去服务,减少磁头移动距离。但是存在以下两个问题:一、可能出现饿死现象。远离磁头当前位置的请求长时间得不到服务,因为磁头附近一直有新请求;二、SSTF算法寻找的是离当前磁头最近的,这是一种局部最优,不一定构成全局最优
  • LOOK算法:是SCAN算法的一种改进,具体思路是在一个方向上处理请求,直到前面没有新的请求为止,然后换方向,继续处理请求。好处:一、避免了饿死现象;二、能够提高公平性(C-LOOK算法公平性更好)

 六、overhead的意思

额外的资源消耗和开销

举例:

  1. 上下文切换。OS从一个进程切换到另一个进程需要保存上一个进程的现场例如数据、状态等,同时要加载下一个进程的各自状态信息。保存、加载这些信息对任务的处理本身没有意义,是额外的一种资源消耗
  2. 索引分配和链式分配。索引分配需要维护一个索引块,让索引块中有指针指向磁盘的各个部分从而实现进程对磁盘的访问,这个索引表就是一个额外资源开销。链式分配中每个数据块都要包含一个指针指向下一个数据块,这个指针就是一个额外的资源消耗和开销

论述题

一、在进程的内存分配和文件存储中,会产生碎片,碎片分为哪几种,在内存分配和文件存储中会产生什么碎片

文件存储是外存,外存中的分配是一块一块为单位进行的;进程是内存,内存中的分配是一个一个单元进行的

在内存分配和文件存储中都会产生内部碎片外部碎片

内存分配的内部碎片:内存管理系统将内存分配给进程,分配的内存大小固定,而进程实际需要的内存大小小于分配的内存,未使用的部分就是内碎片。

内存分配的外部碎片:随着进程的加载和卸载,内存中会留下许多小的空闲块。这些空闲块太小无法满足新的进程需求,构成外部碎片。

文件存储中的内部碎片:如果文件系统以固定数量、大小的块来存储文件,而文件的大小小于块的内存综合大小,空闲块就是内部碎片

文件存储的外部碎片,随着文件的增添和删除,原空间终会留下空闲段,而这些空闲段无法被文件所使用,从而构成外部碎片

二、对于以下几个方面,操作系统有什么保护措施:

区分用户程序和系统程序的执行:

1、将CPU的状态分为内核模式和用户模式,同时将指令分为特权指令和非特权指令

2、内核模式下运行的程序都成为系统程序,它能访问所有的硬件资源和内存,能够执行特权指令

3、用户模式下运行的程序大多是用户程序,它不能直接访问硬件资源需要调用OS提供的系统接口,不能执行特权指令但是可以执行非特权指令

防止进程长时间占用CPU:

采用时间片轮转(RR)进程调度策略:给每个进程分配固定的时间片,当时间片耗尽后,调度器将CPU分配给另一个进程

内存的分段管理中,限制用户只能访问相应的地址以及读写权限:

两个方面:访问相应地址、读写权限

在内存分段管理中,将每个进程的按照用户视图角度分为多个段,同时给进程一个段表。进程按照直接的段表去访问分给它的段内地址,不能访问其他进程的内存。同时分段表定义了每个段的访问权限(读、写等),进程不能违背这些访问权限

防止死锁的产生:

两个方法:死锁预防、死锁避免

一、预防死锁:破坏死锁的必要条件

              破坏互斥:非共享资源必须互斥,共享资源可以不互斥,无法从互斥下手

              破坏占有等待:拥有不等待,要求进程在执行前获得所有资源。或者等待不应有在申请其他资源时释放掉已分配的资源。

              破坏非抢占:如果一个进程占有资源并且无法立刻得到正在申请的资源,那它占有的资源可以被抢占。

              破坏循环等待:对所有资源进行排序,要求进程从小到大申请资

二、死锁避免:放松条件,允许可能发生死锁,但是在死锁发生前就阻止它

有银行家算法、资源分配图算法等死锁避免算法,利用这些算法可以在死锁发生前就阻止死锁的发生,从而做到死锁避免

文件的访问权限:

文件的访问权限、文件的组织管理等操作都归文件系统统一管理。文件系统会给每个文件分配一个FCB,其中记录了该文件的所有者、创建信息、访问权限等

三、评估进程调度算法性能的标准为什么是等待时间?对于非抢占式调度,抢占式调度对于减少平均等待时间是否有帮助。以SJF为例举例说明,要求:至少有四个进程,每个进程的arrival time和burst time不同 

等待时间:从进程到达到进程结束中,进程不在CPU中执行而是在等待其他进程执行的时间的总和

1、因为等待时间关系到系统运行的效率以及用户体验。对于一个进程调度来说,让用户感觉不到进程是在并发执行是最好的,所以平均等待时间越短的进程调度算法是越好的。

2、有帮助

 举例:

       到达时间:0,2,4,5

       区间时间:7,4,1,4

       SJF:等待时间4s

       SRTF:3s

四、写出非忙等待的wait()和signal()操作的伪代码实现

wait(semaphore *S){S->value--;if(S->value<0){add this process to S->listblock();}
}
signal(semaphore *S){S->value++;if(S->value>=0){remove a process P from S->listwakeup(P);}
}

五、

总结

如果觉得对你有帮助,辛苦友友点个赞哦~

知识来源:操作系统概念(黑宝书)、山东大学高晓程老师PPT及课上讲解、山东大学操作系统往年题、部分考研题。不要私下外传

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/38000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leica Cyclone 3DR2024 一款功能强大的点云建模软件下载License获取

Leica Cyclone 3DR 2024 是一款功能强大的点云建模软件&#xff0c;使用旨在为用户提供全面的点云管理、自动化的点云分析&#xff0c;结合强大的建模&#xff0c;在一个直观友好的环境中&#xff0c;专注的完成挑战&#xff0c;提高生产力&#xff0c;轻松创建并交付专业的成果…

基于PHP技术的校园论坛设计的设计与实现-计算机毕业设计源码08586

摘 要 本项目旨在基于PHP技术设计与实现一个校园论坛系统&#xff0c;以提供一个功能丰富、用户友好的交流平台。该论坛系统将包括用户注册与登录、帖子发布与回复、个人信息管理等基本功能&#xff0c;并结合社交化特点&#xff0c;增强用户之间的互动性。通过利用PHP语言及其…

STM32F103点亮LED灯和实现LED闪烁(标准库)

芯片&#xff1a;STM32F103GCT6 原理图&#xff1a; 实现&#xff1a;PC6——闪烁&#xff0c;PC7——常亮 main.c //头文件 #include "stm32f10x.h" #include "user.h"//全局变量 uint8_t g_1s_flag 0; uint8_t g_uart1_rx_done 0;uint32_t g_ms 0…

HarmonyOS--路由管理--组件导航 (Navigation)

文档中心 什么是组件导航 (Navigation) &#xff1f; 1、Navigation是路由容器组件&#xff0c;一般作为首页的根容器&#xff0c;包括单栏(Stack)、分栏(Split)和自适应(Auto)三种显示模式 2、Navigation组件适用于模块内和跨模块的路由切换&#xff0c;一次开发&#xff0…

论文工具使用---connected papers

如何使用connected papers 使用方法具体功能其他资源 官网地址&#xff1a;connected papers &#xff1a;一个旨在帮助科研工作者快速搜索文献的全新工具&#xff0c;可以清晰的查看文献的引文信息&#xff0c;了解文献的引用和被引用关联。 使用方法 输入论文标题后&#xf…

IP配置SSL的方式

近年SSL证书的运用群体越来越多&#xff0c;实现网站https访问已经成为了常态。 目前SSL证书广泛应用在域名服务器上&#xff0c;所以大家最熟悉的证书类型可能就是单域名SSL证书、泛域名SSL证书&#xff08;通配符SSL证书、泛解析SSL证书&#xff09;、以及方便集成化管理的多…

# Sharding-JDBC从入门到精通(3)- Sharding-JDBC 入门程序

Sharding-JDBC从入门到精通&#xff08;3&#xff09;- Sharding-JDBC 入门程序 一、Sharding-JDBC 入门程序&#xff08;水平分表&#xff09;-环境搭建 1、需求说明 使用 Sharding-JDBC 完成对订单表的水平分表&#xff0c;通过快速入门程序的开发&#xff0c;快速体验 Sh…

【吊打面试官系列-MyBatis面试题】#{}和${}的区别是什么?

大家好&#xff0c;我是锋哥。今天分享关于 【#{}和${}的区别是什么&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; #{}和${}的区别是什么&#xff1f; #{} 是预编译处理&#xff0c;${}是字符串替换。 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网…

.net core 的缓存方案

这里主要讲两个缓存的使用&#xff0c;MemoryCache和Redis 先讲讲常见的缓存 1、.net framework web中自带有Cache缓存&#xff0c;这种缓存属于粘性缓存&#xff0c;是缓存到项目中的&#xff0c;项目从服务器迁移的时候缓存的内容也能够随着服务器一起迁移 2、MemoryCache缓存…

知识不成体系?这篇Mysql数据库将成为你的解忧杂货店!(索引)

欢迎来到一夜看尽长安花 博客&#xff0c;您的点赞和收藏是我持续发文的动力 对于文章中出现的任何错误请大家批评指出&#xff0c;一定及时修改。有任何想要讨论的问题可联系我&#xff1a;3329759426qq.com 。发布文章的风格因专栏而异&#xff0c;均自成体系&#xff0c;不足…

基于bootstrap的12种登录注册页面模板

基于bootstrap的12种登录注册页面模板&#xff0c;分三种类型&#xff0c;默认简单的登录和注册&#xff0c;带背景图片的登录和注册&#xff0c;支持弹窗的登录和注册页面html下载。 微信扫码下载

【SGX系列教程】(四)Intel-SGX 官方示例分析(SampleCode)——LocalAttestation

文章目录 一.LocalAttestation原理介绍1.1本地认证原理1.2 本地认证基本流程1.3 本地认证核心原理 二.源码分析2.1 README2.1.1 编译流程2.1.2 执行流程&#xff08;双进程执行 or 单进程执行&#xff0c;在后面执行部分有展示效果&#xff09;2.1.3 如何获取已签名的Enclave的…

【SpringBoot】SpringBoot核心启动流程源码解析

SpringBoot总体流程 当我们启动一个SpringBoot程序的时候&#xff0c;只需要一个main方法就可以启动&#xff0c;但是对于其中流程时如何执行的&#xff0c;以及如何调用spring的IOC和AOP机制&#xff0c;本篇带着这个问题来整体体系化的梳理下流程。 SpringBootApplication …

OFDM技术简介——背景

l 1966 年&#xff0c; R. W. Chang 提出在带限信道中用 正交信号 同时传输 多路数据 的原理&#xff0c;同时这种传输方式保证系统中不存在符号间串扰和子信道间干扰&#xff0c;该技术可以有效提高频谱利用率&#xff0c;可以有效对抗信道多径衰落。 l 1971 年&#xff0c; …

vue 自定义组件 实现跟使用

新建文件组件 选择器作用 ~ 波浪线这个是选择 li 后面的所有 a标签 调用 到使用的文件下引入 使用 效果

每日算法-插值查找

1.概念 插值查找是一种改良版的二分查找,其优势在于,对于较为均匀分布的有序数列,能够更快地使得mid中间游标快速接近目标值. 2.计算公式 中间游标计算公式. 公式说明: 公式的主要思路是,以第一次定位mid中间游标为例, 在接近平均分配的情况下,左右游标之间的差值表示总计供…

Animate软件基础:从单个图层复制帧

在使用Animate软件制作内容时&#xff0c;有时会需要复制制作好的部分动画&#xff0c;到新的场景中&#xff0c;或者从一个制作文件中复制内容到另一个制作文件&#xff0c;这就需要复制帧的操作&#xff0c;这里讲一下从单个图层复制帧的方法。 在图层中选择一组帧。要选择整…

React@16.x(44)路由v5.x(9)源码(1)- path-to-regexp

目录 1&#xff0c;作用2&#xff0c;实现获取 match 对象2.1&#xff0c;match 对象的内容2.2&#xff0c;注意点2.3&#xff0c;实现 1&#xff0c;作用 之前在介绍 2.3 match 对象 时&#xff0c;提到了 react-router 使用第3方库 path-to-regexp 来匹配路径正则。 我们也…

新能源汽车 LabCar 测试系统方案(二)

什么是LabCar测试 LabCar测试目标是进行整车黄板台架功能测试&#xff0c;用于整车开发和测试阶段&#xff0c;满足设计人员和测试人员的试验需求&#xff0c;以验证整车性能&#xff0c;减少开发工作量。系统主要用于测试静态及动态工况下的纯电动汽车的各项功能实现情况。 …

git 用户名密码Clone代码

#密码中包含&#xff0c;则使用%40代表 cd /disk03/wwwroot/GitDemo/BuildTemp && git clone -b dev --single-branch http://root:test%40123192.168.31.104/root/SaaS.Auto.Api.git git pull origin dev 今天使用LibGit2Sharp在Linux上Clone代码时报错&#xff0c;因…