网站做自适应好不好,怎么优化网站源代码,做线上交互的网站,html5新特性「面试专栏」前端面试之操作系统篇#x1f3b9;序言#x1f3b8;一、思维导图#x1f3ba;二、常见面试题1、进程和线程以及它们的区别2、进程间通信的几种方式#xff08;1#xff09;管道(pipe)及命名管道(named pipe)#xff08;2#xff09;信号(signal)#xff08… 「面试专栏」前端面试之操作系统篇序言一、思维导图二、常见面试题1、进程和线程以及它们的区别2、进程间通信的几种方式1管道(pipe)及命名管道(named pipe)2信号(signal)3消息队列4共享内存5信号量6套接字3、线程同步的方式1互斥量 Synchronized/Lock2信号量 Semphare3事件(信号)Wait/Notify4、什么是死锁死锁产生的条件1死锁的概念2死锁产生的四个必要条件3处理死锁的基本策略和常用方法5、进程有哪几种状态6、线程有几种状态7、段式存储管理1段式存储管理是什么2段式管理的优缺点3页式存储管理方案4页式存储管理的优缺点8、进程调度策略1FCFS(先来先服务队列实现非抢占的)2SJF(最短作业优先调度算法)3优先级调度算法(可以是抢占的也可以是非抢占的)4时间片轮转调度算法(可抢占的)5多级队列调度算法6多级反馈队列调度算法9、页面调度算法10、局部性原理三、结束语彩蛋 One More Thing️pdf内容获取️更新地址️番外篇序言
操作系统对于前端来说考察的内容并不多所以在今天的文章中将依据比较常考的知识点进行归纳总结。
下面开始本文的讲解~
一、思维导图
我们先用一张思维导图来梳理操作系统相关的面试题。具体如下 下面开始归纳操作系统常见的面试题。
二、常见面试题
1、进程和线程以及它们的区别
进程是对程序运行时的封装是系统进行资源调度和分配的的基本单位实现了操作系统的并发线程是进程的子任务是CPU调度和分配的基本单位用于保证程序的实时性实现进程内部的并发一个程序至少有一个进程一个进程至少有一个线程线程依赖于进程而存在进程在执行过程中拥有独立的内存单元而多个线程共享进程的内存。
2、进程间通信的几种方式
1管道(pipe)及命名管道(named pipe)
管道可用于具有亲缘关系的父子进程间的通信。命名管道除了具有管道所具有的功能外它还允许无亲缘关系进程间的通信。
2信号(signal)
信号是一种比较复杂的通信方式用于通知和接收某个已经发生的进程事件。
3消息队列
消息队列是消息的链接表它克服了以上两种通信方式中信号量有限的缺点。具有写权限的进程可以按照一定的规则向消息队列中添加新信息。对消息队列有读权限的进程则可以从消息队列中读取信息。
4共享内存
可以说这是最有用的进程间通信方式。它使得多个进程可以访问同一块内存空间不同进程可以及时看到对方进程中对共享内存中数据的更新。这种方式需要依靠某种同步操作如互斥锁和信号量等。
5信号量
主要作为进程之间及同一种进程的不同线程之间的同步和互斥手段
6套接字
这是一种更为一般的进程间通信机制它可用于网络中不同机器之间的进程间通信应用非常广泛。
3、线程同步的方式
1互斥量 Synchronized/Lock
采用互斥对象机制只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个所以可以保证公共资源不会被多个线程同时访问。
2信号量 Semphare
它允许同一时刻多个线程访问同一资源但是需要控制同一时刻访问此资源的最大线程数量。
3事件(信号)Wait/Notify
通过通知操作的方式来保持多线程同步还可以方便的实现多线程优先级的比较操作。
4、什么是死锁死锁产生的条件
1死锁的概念
在两个或者多个并发进程中如果每个进程持有某种资源而又等待其它进程释放它或它们现在保持着的资源在未改变这种状态之前都不能向前推进称这一组进程产生了死锁。通俗的讲就是两个或多个进程无限期的阻塞、相互等待的一种状态。
2死锁产生的四个必要条件
互斥至少有一个资源必须属于非共享模式即一次只能被一个进程使用若其他申请使用该资源那么申请进程必须等到该资源被释放为止。占有并等待一个进程必须占有至少一个资源并等待另一个资源而该资源为其他进程所占有。非抢占进程不能被抢占即资源只能被进程在完成任务后自愿释放。循环等待若干进程之间形成一种头尾相接的环形等待资源关系。
3处理死锁的基本策略和常用方法
解决死锁的基本方法主要有预防死锁、避免死锁、检测死锁、解除死锁 、鸵鸟策略等。
5、进程有哪几种状态
**1就绪状态**进程已获得除处理机以外的所需资源等待分配处理机资源。
**2运行状态**占用处理机资源运行处于此状态的进程数小于等于CPU数。
3阻塞状态 进程等待某种条件在条件未满足之前无法执行。
6、线程有几种状态
在 Java虚拟机 中线程从最初的创建到最终的消亡要经历若干个状态
创建 (new) 、就绪 (runnable/start) 、运行 (running) 、阻塞 (blocked) 、等待 (waiting) 、时间等待 (time waiting) 和 消亡 (dead/terminated) 。在给定的时间点上一个线程只能处于一种状态。
7、段式存储管理
1段式存储管理是什么
段式存储管理是一种符合用户视角的内存分配管理方案。
在段式存储管理中将程序的地址空间划分为若干段(segment)如代码段、数据段、堆栈段
这样每个进程有一个二维地址空间相互独立互不干扰。
2段式管理的优缺点
优点没有内碎片因为段大小可变可通过改变段大小来消除内碎片。缺点但段换入换出时会产生外碎片比如 4k 的段换 5k 的段会产生 1k 的外碎片。
3页式存储管理方案
页式存储管理方案是一种用户视角下内存与物理内存相分离的内存分配管理方案。
在页式存储管理中将程序的逻辑地址划分为固定大小的页 (page) 而物理内存划分为同样大小的帧程序加载时可以将任意一页放入内存中任意一个帧这些帧不必连续从而实现了离散分离。
4页式存储管理的优缺点
优点没有外碎片因为页的大小固定。缺点但会产生内碎片一个页可能填充不满。
8、进程调度策略
1FCFS(先来先服务队列实现非抢占的)
先请求 CPU 的进程先分配到 CPU 。
2SJF(最短作业优先调度算法)
平均等待时间最短但难以知道下一个 CPU 区间长度。
3优先级调度算法(可以是抢占的也可以是非抢占的)
优先级越高越先分配到 CPU 相同优先级先到先服务。
存在的主要问题是低优先级进程无穷等待 CPU 会导致无穷阻塞或饥饿。
解决方案老化即对超过一定时间还未使用的进程进行删除。
4时间片轮转调度算法(可抢占的)
队列中没有进程被分配超过一个时间片的 CPU 时间除非它是唯一可运行的进程。
如果进程的 CPU 区间超过了一个时间片那么该进程就被抢占并放回就绪队列。
5多级队列调度算法
将就绪队列分成多个独立的队列每个队列都有自己的调度算法队列之间采用固定优先级抢占调度。
其中一个进程根据自身属性被永久地分配到一个队列中。
6多级反馈队列调度算法
与多级队列调度算法相比其允许进程在队列之间移动若进程使用过多 CPU 时间那么它会被转移到更低的优先级队列。
在较低优先级队列等待时间过长的进程会被转移到更高优先级队列以防止饥饿发生。
9、页面调度算法
FIFO先进先出算法在操作系统中经常被用到比如作业调度主要实现简单很容易想到。
LRU(Least recently use)最近最少使用算法根据开始使用时间到现在为止的时间长短来判断。
LFU(Least frequently use)最少使用次数算法根据使用次数来判断。
OPT(Optimal replacement)最优置换算法理论的最优所谓理论就是要保证置换出去的是不再被使用的页或者是在实际内存中最晚使用的页。
10、局部性原理
1 时间上的局部性最近被访问的页在不久的将来还会被访问。
2空间上的局部性内存中被访问的页周围的页也很可能被访问。
三、结束语
大家可以看到对于操作系统的面试来说基本上都在围绕着进程和线程这两个概念交谈。所以在学习的过程中可以以这两个点来作为主线来对知识点进行扩充和归纳。
关于操作系统的面经归纳到这里就结束啦希望对大家有帮助~
彩蛋 One More Thing
️pdf内容获取 微信关注公众号 星期一研究室 回复关键字 操作系统面试pdf 即可获取相关 pdf 内容~ 回复 面试大全pdf 可获取全专栏内容
️更新地址 offer来了面试专栏
️番外篇
如果您觉得这篇文章有帮助到您的的话不妨点赞支持一下哟~~以上就是本文的全部内容我们下期见