- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
操作系统高频面试题及答案
1.进程和线程的区别是什么?实际开发中怎么选?
答案:核心区别在“资源归属”和“调度单位”。
进程是资源分配的基本单位(每个进程有独立地址空间、文件描述符等),线程是CPU调度的基本单位(共享所属进程的资源);
进程间通信(IPC)需要借助管道、消息队列等机制,线程间直接读写共享内存即可(但要加锁防竞争);
进程切换开销大(要保存整个地址空间),线程切换只需要保存寄存器和栈,开销小。
实际选的时候看场景:比如浏览器开多个Tab,每个Tab是一个进程(避免一个Tab崩溃影响整体);而一个Tab里的渲染、JS执行用线程(共享Tab的资源,切换快)。
面试官可能追问:线程安全的实现方式?(答:互斥锁、信号量、原子操作,比如Java的synchronized、Linux的pthread_mutex_t)
2.进程调度算法有哪些?分别适合什么场景?
答案:常用的有4种,重点记适用场景:
先来先服务(FCFS):简单但“短任务等长任务”,适合CPU繁忙型任务(比如后台批量处理);
短作业优先(SJF):优先执行短任务,吞吐量高,但“长任务饥饿”,适合任务能预估运行时间的场景(比如嵌入式系统的定时任务);
时间片轮转(RR):每个进程分配固定时间片(比如Linux默认100ms),轮流执行,响应快,适合交互式场景(比如桌面系统、终端操作);
高优先级调度:优先执行高优先级任务,比如实时系统(比如无人机飞控、工业控制),要注意“优先级反转”(低优先级占资源导致高优先级等,解决用“优先级继承”)。
面试官可能追问:Linux实际用的是什么调度算法?(答:CFS完全公平调度,按任务权重分配CPU时间,模拟“理想的RR”)
3.虚拟内存的作用是什么?页面置换算法里LRU为什么常用?
答案:先讲虚拟内存的核心作用——“打破物理内存限制”:
让进程觉得自己有足够大的内存(实际是虚拟地址空间,比如32位系统是4GB),把暂时不用的内存数据放到硬盘(交换分区),需要时再调回物理内存;
还能隔离进程地址空间(每个进程的虚拟地址映射到不同物理地址,互不干扰)。
LRU(最近最少使用)常用,是因为它符合“程序局部性原理”(比如代码里循环、函数调用,最近用的内存大概率还会再用)。比如你打开Excel,刚编辑的单元格附近的数据,接下来很可能还要改,LRU会优先保留这些数据,把很久没碰的内存页换出硬盘。
面试官可能追问:LRU怎么实现?(答:用链表+哈希表,访问数据时移到链表头,满了删链表尾;实际系统里用“Clock算法”近似LRU,因为纯LRU开销高)
4.什么是死锁?怎么避免死锁?
答案:死锁是多个进程互相等对方的资源,比如A拿了锁1等锁2,B拿了锁2等锁1,谁都动不了。
死锁发生要满足4个必要条件:资源互斥、持有并等待、不可剥夺、循环等待。
避免死锁不用记复杂算法,实际开发里常用2个简单方法:
按顺序申请资源:比如所有进程都先申请锁1,再申请锁2,就不会循环等待(比如Linux里申请多个互斥锁,按地址从小到大申请);
定时释放资源:比如加锁后设置超时时间,超时就主动释放(比如Java的tryLock,超时返回false,避免一直等)。
面试官可能追问:死锁发生了怎么排查?(答:Linux用ps查看进程状态,用pstack看进程调用栈,找互相等待的锁;Windows用任务管理器+调试工具)
5.硬链接和软链接的区别?删除源文件后有什么影响?
答案:核心是“是否独立于源文件”,基于Linux的inode机制理解:
硬链接:和源文件共享同一个inode(相当于给文件起了个新名字),不能跨文件系统(比如不能从ext4链接到NTFS);
软链接:自己有独立的inode,内容是源文件的路径(相当于Windows的快捷方式),可以跨文件系统。
删除源文件的影响:
硬链接:源文件的inode引用计数减1,只要还有硬链接(引用计数0),文件内容还在,能正常访问;
软链接:源文件没了,软链接就成了“无效链接”(ls显示红色闪烁),访问会报“Nosuchfileordirectory”。
面试官可能追问:怎么创建硬链接和软链接?(答:ln源文件硬链接(默认),ln-s源文件软链接)
6.IO模型有哪些?epoll为什么比select/poll高效?
答案:常用的4种IO模型,按阻塞程度分:
阻塞IO:比如read函数,没数据就一直等(比如默认的socketread);
非阻塞IO:没数据就立刻返回
您可能关注的文档
最近下载
- 饮食营养与卫生.doc VIP
- 固定卷扬式启闭机计算书.doc VIP
- 部编版语文三年级上册第四单元习作《续写故事》课件.pptx VIP
- 2025全国大学生英语竞赛c类真题.pdf VIP
- 尼康D5200使用说明书_大陆_VRUM_SG(Sc)01.pdf VIP
- 管理会计智慧树知到答案章节测试2023年安徽财经大学.docx VIP
- 两、三位数除以一位数第1课时 口算和估算 课件 2025 苏教版数学三年级上册.ppt
- 选煤厂操作规程汇编.docx VIP
- 2025中国南方电网有限责任公司共享运营公司招聘(17人)笔试备考试题及答案解析.docx VIP
- 青岛版信息科技第3册学历案.docx VIP
文档评论(0)