这两日整理了很多编程方面的资料:教学视频、书籍资源以及实战项目全部放在了百度网盘里,资源的目录以及获取方式都放在了文末的图上,你可以直接翻至文末查看。
有过面试经历的人都知道操作系统是面试官必问的几大类型题目之一,在上一期我们已经更新另一大板块的题目常见面试题整理--数据库篇
这一期文章,我们将继续更新操作系统相关的面试题,希望可以给需要面试的、准备面试的同学一些帮助。
(一)请分别简单说一说进程和线程以及它们的区别。
如果你对进程或者线程不太熟悉,建议阅读:进程与线程的一个简单解释
(二)线程同步的方式有哪些?
经两位大大的指正,现已删除临界区。感谢:@真姬酱@安阳
如果你对线程同步的方式不太熟悉,建议阅读:线程同步的几种方式
(三)进程的通信方式有哪些?
主要分为:管道、系统IPC(包括消息队列、信号量、共享存储)、SOCKET
管道主要分为:普通管道PIPE 、流管道(s_pipe)、命名管道(name_pipe)
如果你对进程的通信方式不太熟悉,建议阅读: 进程间的几种通信方式
(四)什么是缓冲区溢出?有什么危害?其原因是什么?
缓冲区溢出是指当计算机向缓冲区填充数据时超出了缓冲区本身的容量,溢出的数据覆盖在合法数据上。
危害有以下两点:
造成缓冲区溢出的主要原因是程序中没有仔细检查用户输入。
如果你想深入了解缓冲区溢出,推荐阅读:缓冲区溢出攻击
(五)什么是死锁?死锁产生的条件?
在两个或者多个并发进程中,如果每个进程持有某种资源而又等待其它进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗的讲就是两个或多个进程无限期的阻塞、相互等待的一种状态。
死锁产生的四个条件(有一个条件不成立,则不会产生死锁)
如果对死锁还不是太熟悉,建议阅读:死锁产生的原因和解锁的方法
(六)进程有哪几种状态?
如果你对进程的几种状态以及中间的装换不太了解,建议阅读:进程的三种状态及转换
(七)分页和分段有什么区别?
如果你对分页和分段还不太了解,建议阅读:分段和分页
(八) 操作系统中进程调度策略有哪几种?
FCFS(先来先服务),优先级,时间片轮转,多级反馈
如果你想深入的了解这几种调度策略,推荐阅读:几个常用的操作系统进程调度算法
(九)说一说进程同步有哪几种机制。
原子操作、信号量机制、自旋锁管程、会合、分布式系统
如果你想深入的了解这几种机制,推荐阅读: 进程同步的几种机制
(十)说一说死锁的处理基本策略和常用方法。
解决死锁的基本方法如下:
预防死锁、避免死锁、检测死锁、解除死锁
解决四多的常用策略如下:
鸵鸟策略、预防策略、避免策略、检测与解除死锁
如果你对死锁的处理策略不是太熟悉,推荐阅读:产生死锁的原因和必要条件+解决死锁的基本方法
这两日整理了很多编程方面的资料,希望这些资料可以对你们有些帮助,资料主要包括下图所示的语言范畴,每一个资料都是精心整理的。资料获取步骤如下说明
本文参考文献和文章:「1」操作系统常见面试题总结 - youngchang的开发博客
「2」 操作系统面试题 - iWan
「3」进程间的几种通信方式
「4」操作系统各大公司笔试题汇总
「5」解决死锁的基本方法
学习编程,欢迎关注专栏:学习编程 - 知乎专栏