Skip to main content

期末测试-这些操作系统问题,你真的掌握了吗?

你好,我是刘超。当你看到这篇文章的时候,说明你已经历经九九八十一难,完成了整个课程的学习,你是否已经悟到操作系统的“真谛”了呢?我们今天就来测试一下。

先和你说一下,期末测试题的设计,我采取了和入学测验不一样的思路。当时入学测验里的题目比较细节,类似你在大学里学完操作系统课之后的考试题目。现在整个专栏学完了,我们需要换一种检测方式。所以,期末测试题,我设计成了选择题+开放式问题的形式。这才是我们现实生活中,不管是面试还是工作中,常常会遇到的“考试”方式。

有人说,面试的时候问操作系统知识,就是“面试造航母,上班拧螺丝”,没有啥用。其实不然,这些看似简单开放的问题,其实最能检验真本事的。面试官毕竟阅人无数,带人无数,看似他只是在问你这个问题的答案,其实这些问题背后都有实际的工作场景——只是你可能不了解或者想象不到而已。

因此,我把专栏内容中最核心的知识点总结成20道选择题,并且把每个部分面试可能会考到的问题,也总结成11道开放式面试题。你可不要小看这些面试题,也不要以为,面试官真的只是单纯地在问你这些问题的答案。因为这些面试题都产生于真实的工作场景中。

在这个场景中,秃头哥因为工作经验丰富,发际线已经非常可怜。长发哥是新进入公司的员工。你可以看看,他们在工作中是怎么互动的,感受一下长发哥回答不出问题的“尴尬”。

同时,你可以想一想,如果换作是你,在面试或者工作中遇到这些问题,你会怎么回答呢?你可以把思考之后的答案写在留言里。当然,如果你的朋友也在为面试或者操作系统知识烦忧,你可以把这篇文章分享给他。

这里呢,我还给你准备了几个回答问题的小Tips。你在答题的时候,可以参照下面这三个Tips,组织你的答案。

第一,回答尽量体系化。不仅仅回答这个问题的知识点,还可以简单描述一下这个点背后完整的体系,然后根据面试官接下来的追问,更详细地描述其他相关的内容。

这样做的好处是:一,防止你因为这个点没有回答好而丢掉所有的分;二,可以体现你的知识掌握比较全面,可以加分;三,还可以避免冷场和尬聊。

面试官开放式地提问,最不想听到的就是“封闭式”回答。有的面试者“惜字如金”,有的人能聊一个小时,有的人不到半个小时就答完了,让面试官没有办法深入全面地了解你。

第二,在体系化的阐述过程中,可以加入一些你使用过的相关工具或者技巧的阐述。例如,操作系统干这个事情有十个步骤。第三步会在某个日志文件里面打印这样的日志,如果发现打印出xxx说明可能有错误,第七步可以通过某个命令行查看某某状态,等等。诸如此类,可以让面试官感觉到你是实战派而非理论派。

第三,在体系化的阐述过程中,如果能加入一些项目经验就更好了。例如,在第九个步骤,当时在做某项目的时候,因为客户现场的版本问题,导致了什么结果,最后如何进行解决的等等。

我刚才说了,面试官问问题的时候,脑子里都是有实际工作场景的。如果你能把他带到你的工作场景里面,有利于面试官对你当时的情形感同身受,你的分数自然不会很低。

看我说了这么多,你是不是已经迫不及待的想要答题啦?别着急,我们来说说这两套题的答题顺序,我建议你先做选择题,再做面试题,因为这更像我们实际的面试过程,先笔试、再面试。

选择题

好了,现在开始答题吧!

面试题


1.你能说一下操作系统的启动和初始化过程吗?

秃头哥:给虚拟机做一个镜像,让系统起来以后做一些初始化。- 长发哥:才初始化,怎么连进去呢?- 秃头哥:……

2.请问进程和线程的概念和区别是什么?

秃头哥:把Dubbo线程池调大一点!- 长发哥:好,我调到10000了。线程越多是不是性能越高啊?- 秃头哥:……

3.请问函数调用堆栈的原理是什么?

秃头哥:这个接口调用性能比较差,排查一下哪里慢!- 长发哥:好的,一定认真排查。- 秃头哥:怎么样了?有思路了吗?- 长发哥:正在一行行看呢!- 秃头哥:……

4.对内存管理了解吗?请说一下物理内存和虚拟内存的概念。

秃头哥:你看这个进程GC这么严重,看看问题在哪儿?- 长发哥:这么多变量,看哪个?- 秃头哥:……

5.请介绍一下虚拟文件系统的机制。

长发哥:这个程序运行时间一长就挂了,咋回事呀?- 秃头哥:这不有异常吗?超过最大打开文件数了。- 长发哥:打开文件还有限制?- 秃头哥:……

6.你了解文件写入的流程吗?

秃头哥:咱们的消息队列模型要慢慢换成Kafka!- 长发哥:我大概瞄了一下,Kafka的消息存储是基于硬盘的。这么慢的方式怎么能用?- 秃头哥:……

7.进程间通信的管道机制了解吗?

秃头哥:帮我把这些监控数据里面的第三列拿出来,取一个平均数!- 长发哥:好的,等我打开Excel。- 秃头哥:……

8.请讲一下信号和中断机制。

秃头哥:为了让这个进程能够优雅的关闭,要给他发一个信号!- 长发哥:怎么发信号?- 秃头哥:kill呀!- 长发哥:那不就强制干掉了吗?没法儿优雅呀?- 秃头哥:……

9.请讲一下TCP/IP的分层模型。

长发哥:客户要求数据一个不能丢,是不是要通过可靠的协议TCP才行?- 秃头哥:当然应该TCP呀!- 长发哥:可是客户还要求数据一个不能多,TCP重传可能会导致数据重复啊!- 秃头哥:……

10.请讲一下三次握手和四次挥手以及状态转换。

长发哥:进程明明启动了,为啥连不上呀?- 秃头哥:看一下有没有监听端口,处于什么状态!- 长发哥:我看配置文件了,端口配置得没错呀。- 秃头哥:你看监听的端口和配置的不一样,是不是配置文件有冲突了?- 长发哥:你真牛,你怎么知道另一个jar里面还有一个配置文件?- 秃头哥:……

11.最新的云或者容器的技术了解过吗?

秃头哥:客户有一台老的centOS 6,需要写一个脚本能在上面安装软件!- 长发哥:去哪里找这么老的系统啊,帮我申请一台物理机,我找找老镜像装一个。- 秃头哥:……