IT 大厂八股文更新上线的操作系统,刚上线点击量破百万!赶紧收藏
八股文骚套路系列之计算机基础来啦!✌️ 今天带来的是操作系统相关的内容。
这篇文章,我主要会介绍如何准备操作系统面试,推荐一份不错的书籍。并且,我还会总结出最常见的一些操作系统面试问题,以方便大家把握重点,有的放矢!
另外,我在这篇文章,也会逐渐将自己在准备秋招面试过程中的一些心得,以及一些技巧穿插地进行讲述,希望对大家有帮助!
计算机基础这块一般是中大厂面试问得比较多,并且不同的大厂面试之间对其重视程度也不一样。比如说字节、腾讯面试就非常重视计算机基础比如操作系统和计算机网络这块,他们会问很多相关的问题。而阿里、京东的面试偏向 Java 生态,像常用的一些中间件、框架经常会成为面试的重点。像阿里、京东的面试当然也会问计算机基础比如操作系统和计算机网络,不过问的深度相对来说比较一般。
面试小技巧
这里带来的面试小技巧是关于 项目介绍 相关的。
在技术面试中,面试官通常都会让你介绍一下自己所做的项目。
你可不要小看这一环节!就是一个简单的项目介绍,求职者之间的差距就特别大。有些小伙伴说了半天就是说不到重点,面试官都着急。而有些小伙伴,不光言简意赅地介绍了项目经历,还顺带把面试官引向自己所擅长的领域。
想要做好项目介绍,重要的是自己对于项目非常了解。一般情况下,在面试之前,你至少需要对你所做的项目下面这些信息了如指掌:
项目背景 :这个项目是在什么背景下做的。
项目架构图 :通常面试官会让你手绘一下项目架构图。
项目技术栈 :你需要搞懂项目每个模块所涉及到的技术。
项目亮点 :这个项目有哪些亮点呢?
个人职责(重要) :面试官更看重的是你为这个项目做了什么贡献。
具体介绍项目的时候,你可以这样来(个人历经各种挫折之后所总结的经验,仅供参考):
简单几句话介绍项目背景,让面试官对项目有一个大概的认识。
介绍一下项目所涉及到的一些技术点。介绍这些技术点的时候,顺带可以简单说说用这些技术都干了什么。比如介绍到 ES 的时候,你可以简单说说它在系统中哪些模块(搜索模块?日志模块)被用到。
介绍自己做了一些什么事情,旨在突出亮点。另外,项目上自己遇到的一些比较有含金量的问题及解决方案也可以顺带说一下。
通常我们的简历上都会有至少 2 个项目经历,个人建议你把你自己认为最有价值,最能体现出你个人能力的放在最前面。
最后, 一定一定一定要把自己在项目上做过的功能所涉及到的技术给研究透! 这会是面试中的重中之重。
操作系统面试准备
救急准备
操作系统基础概念
操作系统基础相关的概念在面试中也会遇到,不过,这部分内容比较简单,花不了太多时间。
我简单总结了操作系统基础概念中比较重要的知识点:
操作系统的作用、特点、分类、发展
操作系统的结构
内核态和用户态、系统调用
进程和线程(重要)
这个是非常高频的考点了!面试官在面试的时候可能会先让你介绍一下进程和线程的基本定义,然后再让你对比一下两者。
问了这些比较基础的内容之后,有些面试官还会顺带问你进程和线程的状态以及各种状态之间的转换。
如果还要继续深入挖的话,面试官可能还会问你 :
进程的通信方式 :进程与进程之前是如何进行通信的。
进程调度算法 :CPU 如何应用不同的调度算法来调度进程。
内存管理(重要)
面试官可能会先问一些比较简单的问题比如内存管理的目的、逻辑和物理地址。
比较核心一些的问题还是内存管理机制和内存管理相关的一些概念。
内存管理机制 :像内存管理机制简单分为连续分配管理方式和非连续分配管理方式这两种。非连续分配管理方式比较重要,像分页机制、分段机制、段页式机制都属于非连续分配管理。
内存管理相关概念 :快表和多级页表。
除此之外,虚拟内存和请求分页也非常重要,面试中也经常会遇到。
虚拟内存 :虚拟内存介绍、局部性原理、虚拟内存的实现机制
请求分页 :页表机制、缺页中断、页面置换算法
最后就是死锁相关的内容了,你需要掌握:
死锁的必要条件
死锁预防、避免、检测与解除
CPU 调度
CPU 调度这块最重要的就是搞懂几种常见的 CPU 调度算法:
先到先服务调度(First-Come First-Served Scheduling,FCFS)
最短作业优先调度(Shortest Job First,SJF)
优先级调度(Priority Scheduling)
轮转法调度(Round Robin,RR)
......
上面这几种调度算法,大家通过名字应该就能猜出个大概意义了。这些调度算法各有优劣,没有银弹,只能根据具体场景选择具体的调度算法。
因此,多级队列调度(Multilevel Queue) 就诞生了。简单来说就是把就绪队列(存放有待执行进程)分成多个独立队列,每个队列都有自己的调度算法。
Linux 相关(重要)
另外的话,操作系统这块还需要对 Linux 相关的知识有所了解:
Linux 常用命令 :比如说创建文件相关的命令、搜索相关的命令
Linux 文件系统 :文件系统原理、硬链接与软链接、目录结构
僵尸进程和孤儿进程
系统学习
小编给大家展示一下系统学习的干货,大家看了有需要的话,转发关注小编后,
**点击这里,获得文档领取方式**
如果你要系统地学习操作系统的话,最硬核的资料是 《图解操作系统》
你可以再配套一个 《Java 基础核心总结》 加深你对计算机系统本质的认识,美滋滋!
整个课程总目录
另外,如果你仅仅是为了准备操作系统面试的话,我更推荐的操作系统书籍:《程序员必知操作系统硬核知识》
操作系统概述 :主要讲了操作系统相关基础概念及简史。
硬件结构 :主要讲了计算机硬件结构包括 CPU 与指令集架构、物理内存与 CPU 缓存等内容。
操作系统结构 :主要讲了操作系统内核架构、操作系统复杂度管理方法等内容。
内存管理 :主要讲了虚拟地址、物理地址、虚拟内存、物理内存的分配与管理等内容。
进程与线程 :主要讲了进程和线程相关的概念。
操作系统调度 :主要讲了操作系统的调度机制。
进程间通信 :主要讲了进程间的通信机制。
同步原语 :主要讲了解决并发访问共享资源出现的同步问题的解决方案比如互斥锁、信号量、读写锁。
文件系统 :主要讲了文件存储相关的概念。
系统虚拟化 : 主要讲了 CPU 虚拟化、内存虚拟化、I/O 虚拟化等内容。
还有最后这本,适合面试突击操作系统知识时拿来看,不敢说 100 % 涵盖了面试的网络问题,但是⾄少 90% 是有的,而且内容的深度应对大厂也是搓搓有余的
以上干货资料,均可免费送给大家,大家有需要的,转发关注小编后,点进小编主页,**点击这里,获得文档领取方式**
评论