常见的操作系统面试题整理
- 分类:资讯 回答于: 2022年12月25日 08:04:49
工具/原料:
系统版本:windows10系统
品牌型号:联想thinkpad14
操作系统常见面试题如下:
一、进程和线程的区别
答:基本意义:进程:操作系统分配资源(内存空间等)的基本单位,系统中正在运行的一个应用程序,程序一旦运行就是进程。线程:是进程的一条执行路径,操作系统CPU独立调度执行的基本单位。
包含关系:线程是进程的一部分,一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。
空间使用:每个进程有独立的代码区和内存空间;,系统不会为线程分配内存,不同线程共享所在进程的内存空间,不同线程共用堆,但是不同线程有各自的栈。
开销:1. 创建和终止进程耗时,消耗内存资源更多,线程更少。2. 程序之间的上下文切换会有较大的开销时间和内存,同一类线程共享代码和数据空间,线程之间切换的开销小,因为不需要切换地址空间。
相互影响:进程之间不会相互影响,而多线程之间影响较大。一个进程挂了对其他进程没影响,而一个线程挂了,则数据很可能出错,也很可能整个进程就挂了。进程之间相互独立,而不同线程之间更多是协作关系。
二、协程与线程的区别
答:包含: 一个线程可以多个协程,一个进程也可以单独拥有多个协程。
资源:占用资源很少。比如CPU起一个线程就要占用1M,而协程起一个只需要几K。
调度策略:用户空间决定,调度策略由应用层代码定义。而线程调度策略只能操作系统来确定。
适合在并发量高IO高并发模型,较短的计算任务上。go自带协程。大多数时候都是要花大量等待时间的场景,也就是所谓的IO密集,协程极为适合这种场景。
三、进程与线程的切换流程
答:进程切换分两步:
1、切换页表以使用新的地址空间,因为每个进程都有自己的虚拟地址空间,一旦去切换上下文,处理器中所有已经缓存的内存地址一瞬间都作废了。 进程都有自己的虚拟地址空间,把虚拟地址转换为物理地址需要查找页表,也就是每个进程拥有自己的页表。在页表中查找,有可能还有多级页表。进程一切换,页表就要跟着切换,因为要做虚拟地址到物理地址的映射。页表占的空间也不小,所以进程的切换就更加耗时。
2、切换内核栈和硬件上下文:保存进程指令和数据,在相关寄存器与堆栈。
线程切换只需要第二步:
因为每个进程都有自己的虚拟地址空间,而线程是共享所在进程的虚拟地址空间的,因此同一个进程中的线程进行线程切换时不涉及虚拟地址空间的转换。只需要切换:栈、线程寄存器信息等不共享的线程私有的数据。
四、线程同步的方式有哪些
答:互斥量:采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问。
信号量:它允许同一时刻多个线程访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量。
事件(信号):通过通知操作的方式来保持多线程同步,还可以方便的实现多线程优先级的比较操作。
五、进程的通信方式有哪些
答:主要分为:管道、系统IPC(包括消息队列、信号量、共享存储)、SOCKET;
管道主要分为:普通管道PIPE 、流管道(s_pipe)、命名管道(name_pipe);
管道是一种半双工的通信方式,数据只能单项流动,并且只能在具有亲缘关系的进程间流动,进程的亲缘关系通常是父子进程;
命名管道也是半双工的通信方式,它允许无亲缘关系的进程间进行通信;
信号量是一个计数器,用来控制多个进程对资源的访问,它通常作为一种锁机制。
消息队列是消息的链表,存放在内核中并由消息队列标识符标识。
信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
共享内存就是映射一段能被其它进程访问的内存,这段共享内存由一个进程创建,但是多个进程可以访问。
六、什么是缓冲区溢出?有什么危害?其原因是什么
答:缓冲区溢出是指当计算机向缓冲区填充数据时超出了缓冲区本身的容量,溢出的数据覆盖在合法数据上。
危害有以下两点:
程序崩溃,导致拒绝额服务
跳转并且执行一段恶意代码
造成缓冲区溢出的主要原因是程序中没有仔细检查用户输入。
七、什么是死锁?死锁产生的条件
答:在两个或者多个并发进程中,如果每个进程持有某种资源而又等待其它进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗的讲就是两个或多个进程无限期的阻塞、相互等待的一种状态。
死锁产生的四个条件(有一个条件不成立,则不会产生死锁):
互斥条件:一个资源一次只能被一个进程使用
请求与保持条件:一个进程因请求资源而阻塞时,对已获得资源保持不放
不剥夺条件:进程获得的资源,在未完全使用完之前,不能强行剥夺
循环等待条件:若干进程之间形成一种头尾相接的环形等待资源关系
八、进程有哪几种状态
就绪状态:进程已获得除处理机以外的所需资源,等待分配处理机资源;
运行状态:占用处理机资源运行,处于此状态的进程数小于等于CPU数;
阻塞状态: 进程等待某种条件,在条件满足之前无法执行;
九、分页和分段有什么区别
答:段是信息的逻辑单位,它是根据用户的需要划分的,因此段对用户是可见的 ;页是信息的物理单位,是为了管理主存的方便而划分的,对用户是透明的。
段的大小不固定,有它所完成的功能决定;页大大小固定,由系统决定;
段向用户提供二维地址空间;页向用户提供的是一维地址空间;
段是信息的逻辑单位,便于存储保护和信息的共享,页的保护和共享受到限制。
十、操作系统中进程调度策略有哪几种
答:FCFS(先来先服务),优先级,时间片轮转,多级反馈;
十一、说一说死锁的处理基本策略和常用方法
答:解决死锁的基本方法如下:
预防死锁、避免死锁、检测死锁、解除死锁
解决四多的常用策略如下:
鸵鸟策略、预防策略、避免策略、检测与解除死锁
总结:
以上便是常见的操作系统面试题整理,都是比较常会遇到的操作系统问答题目,大家可以先提前学习了解,方便在日后的相关面试测试中能准确回答出,希望能帮到各位。
猜您喜欢
- PPT素材库:创意设计与精美模板,助力您打..2024/03/04
- 滴滴打车使用指南2024/03/06
- 华为运动健康助你轻松打造健康生活!..2023/11/29
- 有哪些高性价比笔记本电脑..2022/11/04
- 显卡是什么?2023/11/21
- 穿越火线烟雾头调整技巧2024/04/20
相关推荐
- 电脑截图保存位置在哪里?..2024/01/04
- 移动硬盘读取故障,急需解决!..2023/12/19
- 电脑黑屏只有鼠标指针2023/12/01
- 2023最新显卡性能天梯图:独家评测深度..2023/10/24
- 中国游戏中心大厅:畅享千种游戏,尽情体..2024/03/02
- 无线网密码破解:轻松突破网络安全..2024/01/06