草庐IT

计算机研究生复试常见面试题——操作系统

三工言吾 2023-09-28 原文

说明:此文章是在阅读了一些列面试相关资料之后对于一些常见问题的整理,主要针对的是计算机研究生入学考试中复试的专业问答。部分答案参考网络以及结合自己的理解总结而出,若有不足非常欢迎指出,感谢!在总结过程中有些答案没标记参考来源,若有参考到您的回答请联系我,我会将其补上,最后希望各位都能够一战成硕!


复试相关内容:

计算机研究生复试常见面试题——计算机组成原理_三工言吾的博客-CSDN博客

计算机研究生复试常见面试题——数据结构_三工言吾的博客-CSDN博客

计算机研究生复试常见面试题——计算机网络部分_三工言吾的博客-CSDN博客

计算机系统概述 

  • 操作系统的特征

1.并发:指两个或多个事件在同一时间间隔内发生

2.共享:指系统资源可供内存中多个并发执行的进程共同使用

3.虚拟:把物理上的实体变为若干逻辑上的对应物

4.异步:多道程序环境允许多个程序并发执行

  • 单道批处理系统和多道批处理系统的对比

 单道批处理系统:系统对作业的处理是成批进行的,但内存中始终保持一道作业

多道批处理系统:允许多个程序同时进入内存并允许在CPU中交替进行,共享系统软硬件资源。

  •  分时操作系统和实时操作系统的对比

分时系统是指一个系统中多个用户分时地使用同一台计算机

实时系统是指计算机及时响应外部事件地请求并在规定时限内完成对该事件地处理

主要区别:

1.分时系统目标是提供一种通用性很强的系统,有较强的交互能力。而实时系统则大多都是具有特殊用途的专用系统,交互能力略差。

2.分时系统虽然对于响应时间有一定的要求,但一般来说是由人所能忍受地等待时间来决定,而实时系统对响应事件要求很高。

  • 中断和异常地定义

 中断:称为外中断,指来自CPU执行指令以外地事件地发生,这类中断通常是与当前指令执行无关的事件。

异常:也称内中断,指源自CPU执行指令内部的事件 

 进程管理(处理机管理)

  • 什么是进程,什么是线程?

进程是资源分配的基本单位 (进程=程序段+相关数据段+PCB)

线程的引入是为了更好地使多道程序并发执行,是程序执行流的最小单位,调度的基本单位

进程线程
调度拥有资源的基本单位独立调度的基本单位
拥有资源拥有资源的基本单位不拥有系统资源
并发性进程间可以并发执行线程间可以并发执行
系统开销开销大开销小
  • 进程的状态和转换

运行态:正在处理机上运行

就绪态:进程获得了除了处理机资源以外的所有资源,一旦获得处理机,便可立即执行。

阻塞态:进程正在等待某一事件而暂停运行

创建态:进程正在被创建,尚未转到就绪态

结束态:进程从系统中消失,系统首先将进程置为结束太,然后再进一步处理资源释放回收

  •  调度和切换的区别

调度是指决定资源分配给哪个进程的行为,是一种决策行为

切换是指实际行为,是执行行为

  • 进程的通信

 1.共享存储:对共享存储空间进行读/写操作时,需要同步互斥工具(P、V操作),其中共享存储又分为低级方式(基于数据结构)、高级方式(基于存储区共享)

2.消息传递:以格式化消息为单位进行进程间的数据交换,包括直接通信方式和间接通信方式

3.管道通信:管道指的是一个用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件,其中管道读数据时一次性操作

4.客户/服务器系统

  • 进程调度算法:

 1.先来先服务调度算法

        算法简单,效率较低,对长作业比较有利,对短作业不利;有利于CPU繁忙型作业,而不利于I/O繁忙型作业

2.短作业优先调度算法

        该算法对长作业不利,不能保证具有紧迫性的作业能够被及时处理,平均等待时间,平均周转时间是最少的

3.优先级调度算法

        一般来说系统进程>用户进程,交互型进程>非交互型进程,I/O型进程>计算型进程

4.高响应比优先级调度算法

        响应比=(等待时间+要求服务时间)/要求服务时间

5.时间片轮转调度算法

        时间片大小的选择十分关键

6.多级反馈队列调度算法

有关计算机研究生复试常见面试题——操作系统的更多相关文章

  1. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  2. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  3. Hive SQL 五大经典面试题 - 2

    目录第1题连续问题分析:解法:第2题分组问题分析:解法:第3题间隔连续问题分析:解法:第4题打折日期交叉问题分析:解法:第5题同时在线问题分析:解法:第1题连续问题如下数据为蚂蚁森林中用户领取的减少碳排放量iddtlowcarbon10012021-12-1212310022021-12-124510012021-12-134310012021-12-134510012021-12-132310022021-12-144510012021-12-1423010022021-12-154510012021-12-1523.......找出连续3天及以上减少碳排放量在100以上的用户分析:遇到这类

  4. ruby - 如何计算 Liquid 中的变量 +1 - 2

    我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我

  5. ruby - 如何使用 Selenium Webdriver 根据 div 的内容执行操作? - 2

    我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption

  6. ruby-on-rails - 如何处理 Grape 中特定操作的过滤器之前? - 2

    我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?

  7. ruby-on-rails - 在 Ruby on Rails 中发送响应之前如何等待多个异步操作完成? - 2

    在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.

  8. ruby - 使用 Ruby,计算 n x m 数组的每一列中有多少个 true 的简单方法是什么? - 2

    给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in

  9. ruby - 在 Ruby 中是否有一种惯用的方法来操作 2 个数组? - 2

    a=[3,4,7,8,3]b=[5,3,6,8,3]假设数组长度相同,是否有办法使用each或其他一些惯用方法从两个数组的每个元素中获取结果?不使用计数器?例如获取每个元素的乘积:[15,12,42,64,9](0..a.count-1).eachdo|i|太丑了...ruby1.9.3 最佳答案 使用Array.zip怎么样?:>>a=[3,4,7,8,3]=>[3,4,7,8,3]>>b=[5,3,6,8,3]=>[5,3,6,8,3]>>c=[]=>[]>>a.zip(b)do|i,j|c[[3,5],[4,3],[7,6],

  10. ruby-on-rails - 如何让 Rails View 返回其关联的操作名称? - 2

    我有一个非常简单的Controller来管理我的Rails应用程序中的静态页面:classPagesController我怎样才能让View模板返回它自己的名字,这样我就可以做这样的事情:#pricing.html.erb#-->"Pricing"感谢您的帮助。 最佳答案 4.3RoutingParametersTheparamshashwillalwayscontainthe:controllerand:actionkeys,butyoushouldusethemethodscontroller_nameandaction_nam

随机推荐