编程教学入门教程 计算机编程入门教程( 二 )


我在百度实习的那段时间里,再次意识到了操作系统这门课程的重要性,于是我找来了某乎强烈推荐的《深入理解计算机系统》这本史诗级大部头,这本书其实并不是一本纯粹的操作系统书籍,而是结合了计算机组成原理和操作系统两方面的内容,基本上把计算机内部工作的那些原理都给讲清楚了 。
第一次看这本书的时候,我坚持了不到三天就放弃了,于是第二次看这本书,我在公司花了快一个月的时间才总算看得差不多 。
在以前,我连什么是x64什么x86都搞不清楚,看完这本书之后,我好歹对CPU、内存、硬盘的工作方式,以及处理器的工作方式等内容有了一些理解,不得不说,这个时候我才算是对操作系统入了门 。
强化学习阶段
光看书还不足以应对大厂的面试,大公司对操作系统的考察是很严格的,比如百度、腾讯和,对于操作系统的要求还是比较高的 。
除了进程和线程区别这种最简单的面试题之外,还会有一些比较复杂的问题,比如”进程调度算法有哪些,讲一下FIFO和LRU算法“、”内存中的分页和分段有什么区别,分页里的页面置换算法有哪些,LRU是怎么实现的“、”产生死锁的必要条件,解决死锁的办法“、”线程间通信和进程间通信的方法都有哪些,具体怎么使用“
此类问题,也算是比较常见的操作系统面试题,但是要回答清楚的话还是需要一定功力的 。
当时我应对这类问题,基本上就是通过刷面经和背答案,对于很多原理性的东西理解得并不深刻,但是也没有找到什么解决办法 。
冲刺阶段
既然自己学了半天效果都不佳,那不如直接向大佬学习吧,于是我辗转各大博客,技术社区,技术公众号,看了很多关于操作系统的文章,发现确实有很多讲的不错的内容,看起来比自己死记硬背要靠谱的多了 。
最早看的优质内容是《码农翻身》作者刘欣老师的文章,真的是相见恨晚,他有十几篇文章是专门讲解操作系统的,从CPU开始,讲到内存、硬盘、线程、进程,每篇文章都是用故事化的文字介绍这些计算机里最硬核的观念,可以说是四两拨千斤了 。
看完这个系列的操作系统文章之后,我对于操作系统中的一些疑惑基本上也都消除了,再回去看一看那些面试题,觉得也没那么复杂了 。
当然了,对于面试题我们还是要认真准备的,该翻的面经要翻,该搞懂的面试题一个也不能放过,有了之前的基础之后,再去搞懂这些面试题就简单很多了,至此,我对于操作系统的学习也算是告一段落 。
推荐资源书籍
《深入理解计算机系统》《操作系统导论》
总结
关于操作系统的学习,我们就讲到这里了

推荐阅读