极客时间已完结课程限时免费阅读

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

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

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

讲述:刘超

时长07:10大小6.57M

你好,我是刘超。当你看到这篇文章的时候,说明你已经历经九九八十一难,完成了整个课程的学习,你是否已经悟到操作系统的“真谛”了呢?我们今天就来测试一下。
先和你说一下,期末测试题的设计,我采取了和入学测验不一样的思路。当时入学测验里的题目比较细节,类似你在大学里学完操作系统课之后的考试题目。现在整个专栏学完了,我们需要换一种检测方式。所以,期末测试题,我设计成了选择题 + 开放式问题的形式。这才是我们现实生活中,不管是面试还是工作中,常常会遇到的“考试”方式。
有人说,面试的时候问操作系统知识,就是“面试造航母,上班拧螺丝”,没有啥用。其实不然,这些看似简单开放的问题,其实最能检验真本事的。面试官毕竟阅人无数,带人无数,看似他只是在问你这个问题的答案,其实这些问题背后都有实际的工作场景——只是你可能不了解或者想象不到而已。
因此,我把专栏内容中最核心的知识点总结成 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,需要写一个脚本能在上面安装软件!
长发哥:去哪里找这么老的系统啊,帮我申请一台物理机,我找找老镜像装一个。
秃头哥:……
分享给需要的人,Ta购买本课程,你将得20
生成海报并分享

赞 9

提建议

上一篇
66 | 知识串讲:用一个创业故事串起操作系统原理(五)
下一篇
结束语 | 永远别轻视任何技术,也永远别轻视自己
 写留言

精选留言(10)

  • 莫名
    2019-08-30
    源码之前,了无秘密。在阅读该专栏之前,由于不满足于对Linux常见命令(比如cat、mount、lsof、df等,甚至包括bash)的简单使用,所以下载相关源码探究具体实现原理,在这个过程中进一步涉及一些内核核心源码的阅读。自认为通过常见命令探究内核原理是个不错的方式,受益匪浅。 基于之前的积累,完整的读了两遍该专栏,有些章节反复读了四五遍,读的过程比较顺畅,有很多共鸣,也有很多感悟,将之前零散的理解串在了一起。对很多知识点的理解不再浮于表面,记忆历久弥新。 内核知识的确比较硬核,每读一遍都会有新的收获,多思考,多总结,才能让自己更有深度。最后真心感谢老师的付出。
    展开

    作者回复: 这句话太棒了,源码之前,了无秘密

    20
  • 颖儿
    2019-10-29
    超哥 这两个小人的发量 好像有点深刻含意。。。
    6
  • 安排
    2019-08-30
    先mark,慢慢写答案

    作者回复: 赞

    2
  • 许童童
    2019-08-30
    老师这些题目都是精心设计的,不错不错,我去问问同事答得上来不,答不上来就由我来回答给他听了。

    作者回复: 答不上来鄙视他,哈哈哈

    1
  • 刘強
    2019-08-30
    课程到此结束了吗

    作者回复: 还有结束语

    1
  • 小鳄鱼
    2022-06-29
    长发哥跟秃头哥的对话中的11个问题,第一次看让我觉得专栏白学了。第二次,有些感觉有联系,但联系没那么大。例如内存管理跟GC。JVM有自己的内存管理模型。除此之外,还需要知道什么对象可以被回收,什么时候会回收,以及怎么回收。物理内存跟虚拟内存管理,与GC的关系,我联系不起来。。
  • Geek_b213f7
    2022-05-29
    擦,55分,差一题及格
  • 静✨
    2021-06-22
    每次答了个稀烂后点开解析 都写着没有解析😂
  • 马志远
    2020-01-09
    第一遍

    作者回复: 加油

  • EidLeung
    2019-08-30
    坐等超哥给答案!😄

    作者回复: 有脑图哟

    共 3 条评论