操作系统常见面试题总结
进程与线程的问题进程与线程的区别粒度性分析
线程的粒度小于进程。
调度性分析进程是资源拥有的基本单位线程是独立调度与独立运行的基本单位 出了寄存器程序计数器等必要的资源外基本不拥有其他资源。
系统开销分析 由于线程基本不拥有系统资源所以在进行切换时线程切换的开销远远小于进程。
进程的状态及其转换进程同步与互斥的区别互斥 是指某一资源同时只允许一个访问者对其进行访问具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序 即访问是无序的。
同步 是指在互斥的基础上(大多数情况)通过其它机制实现访问者对资源的有序访问。在大多数情况下 同步已经实现了互斥特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。简单地说 同步体现的是一种协作性互斥体现的是一种排他性。
进程间的通信方式有哪些
管道(pipe) 管道是一种半双工的通信方式数据只能单向流动而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
有名管道(named?pipe) 有名管道也是半双工的通信方式但是它允许无亲缘关系进程间的通信。
信号量(semophore) 信号量是一个计数器可以用来控制多个进程对共享资源的访问。它常作为一种锁机制防止某进程正在访问共享资源时其他进程也访问该资源。因此主要作为进程间以及同一进程内不同线程之间的同步手段。
消息队列(mes s ag e?queu e) 消息队列是由消息的链表存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
信号(sinal) 信号是一种比较复杂的通信方式用于通知接收进程某个事件已经发生。共享内存(share d?memory) 共享内存就是映射一段能被其他进程所访问的内存这段共享内存由一个进程创建但多个进程都可以访问。共享内存是最快的 IPC?方式它是针对其他进程间通信方式运行效率低而专门设计的。 它往往与其他通信机制如信号两配合使用来实现进程间的同步和通信。
套接字(so cket) 套解口也是一种进程间通信机制与其他通信机制不同的是它可用于不同及其间的进程通信。作业(或进程)的调度算法有哪些
先来先服务(FCFS First-Come-First-Served) :此算法的原则是按照作业到达后备作业队列(或进程进入就绪队列)的先后次序来选择作业(或进程)。
短作业优先SJF,Shortest?Pro ces s?Next 这种调度算法主要用于作业调度它从作业后备队列中挑选所需运行时间估计值最短的作业进入主存运行。
时间片轮转调度算法RR Round-Robin 当某个进程执行的时间片用完时调度程序便停止该进程的执行并将它送就绪队列的末尾等待分配下一时间片再执行。然后把处理机分配给就绪队列中新的队首进程 同时也让它执行一个时间片。这样就可以保证就绪队列中的所有进程在一给定的时间内均能获得一时间片处理机执行时间。高响应比优先HRRN Highest?Response?Ratio?Next :按照高响应比 已等待时间要求运行时间 /?要求运行时间优先的原则在每次选择作业投入运行时先计算此时后备作业队列中每个作业的响应比 RP然后选择其值最大的作业投入运行。
优先权 Priority 调度算法:按照进程的优先权大小来调度使高优先权进程得到优先处理的调度策略称为优先权调度算法。注意优先数越多优先权越小。
多级队列调度算法 多队列调度是根据作业的性质和类型的不同将就绪队列再分为若干个子队列所有的作业或进程按其性质排入相应的队列中而不同的就绪队列采用不同的调度算法。
死锁产生的原因
1、竞争资源
2、进程推进顺序不当。
3、 死锁产生的必要条件互斥条件 一个资源一次只能被一个进程所使用 即是排它性使用。
不剥夺条件 一个资源仅能被占有它的进程所释放而不能被别的进程强占。
请求与保持条件进程已经保持了至少一个资源但又提出了新的资源要求而该资源又已被其它进程占有此时请求进程阻塞但又对已经获得的其它资源保持不放。
环路等待条件 当每类资源只有一个时在发生死锁时必然存在一个进程 -资源的环形链。死锁的避免
银行家算法 该方法允许进程动态地申请资源系统在进行资源分配之前先计算资源分配的安全性。若此次分配不会导致系统从安全状态向不安全状态转换便可将资源分配给进程否则不分配资源进程必须阻塞等待。从而避免发生死锁。
死锁定理
S为死锁状态的充分条件是
尚且仅当S状态的资源分配图是不可完全简化的该充分条件称为死锁定理。
死锁的解除
方法1强制性地从系统中撤消一个或多个死锁的进程以断开循环等待链并收回分配给终止进程的全部资源供剩下的进程使用。
方法2使用一个有效的挂起和解除机构来挂起一些死锁的进程其实质是从被挂起的进程那里抢占资源以解除死锁。分页式存储管理
分页存储管理是将一个进程的地址逻辑地址空间空间划分成若干个大小相等的区域称为页 相应地将内存空间划分成与页相同大小为了保证页内偏移一致的若干个物理块称为块或页框页架 。在为进程分配内存时将进程中的若干页分别装入多个不相邻接的块中。
分段式存储管理在分段存储管理方式中作业的地址空间被划分为若干个段每个段是一组完整的逻辑信息如有主程序段、子程序段、数据段及堆栈段等每个段都有自己的名字都是从零开始编址的一段连续的地址空间各段长度是不等的。
两者的区别
1.页是信息的物理单位分页是为了实现非连续的分配 以便解决内存的碎片问题或者说分页是为了由于系统管理的需要。
2.页的大小固定是由系统确定的将逻辑地址划分为页号和页内地址是由机器硬件实现的。而段的长度是不固定的决定与用户的程序长度通常由编译程序进行编译时根据信息的性质来划分。
3.分页式存储管理的作业地址空间是一维的分段式的存储管理的作业管理地址空间是二维的。 页面置换算法有哪些
最佳置换算法Optimal 即选择那些永不使用的或者是在最长时间内不再被访问的页面置换出去。 它是一种理想化的算法性能最好但在实际上难于实现 。
先进先出置换算法FIFO该算法总是淘汰最先进入内存的页面 即选择在内存中驻留时间最久的页面予以淘汰。最近最久未使用置换算法LRU
该算法是选择最近最久未使用的页面予以淘汰系统在每个页面设置一个访问字段用以记录这个页面自上次被访问以来所经历的时间 T,当要淘汰一个页面时选择 T最大的页面。
Clock置换算法也叫最近未用算法NRUNot?RecentlyUsed该算法为每个页面设置一位访问位将内存中的所有页面都通过链接指针链成一个循环队列。当某页被访问时其访问位置“1”。在选择一页淘汰时就检查其访问位如果是“ 0”就选择该页换出若为“1”则重新置为“0”暂不换出该页在循环队列中检查下一个页面直到访问位为“0”的页面为止。 由于该算法只有一位访问位只能用它表示该页是否已经使用过而置换时是将未使用过的页面换出去所以把该算法称为最近未用算法。
最少使用置换算法LFU
该算法选择最近时期使用最少的页面作为淘汰页。
看到群里网友们在讨论由于不清楚的原因,有同学的网站无法访问。他的网站是没有用HTTPS的,直接访问他的HTTP是无法访问的,通过PING测试可以看到解析地址已经比较乱,应该是所谓的DNS污染。其中有网友提到采用HTTPS加密证书试试。因为HTTP和HTTPS走的不是一个端口,之前有网友这样测试过是可以缓解这样的问题。这样通过将网站绑定设置HTTPS之后,是可以打开的,看来网站的80端口出现问题,而...
Megalayer 商家算是新晋的服务商,商家才开始的时候主要是以香港、美国独立服务器。后来有新增菲律宾机房,包括有VPS云服务器、独立服务器、站群服务器等产品。线路上有CN2优化带宽、全向带宽和国际带宽,这里有看到商家的特价方案有增加至9个,之前是四个的。在这篇文章中,我来整理看看。第一、香港服务器系列这里香港服务器会根据带宽的不同区别。我这里将香港机房的都整理到一个系列里。核心内存硬盘IP带宽...
VoLLcloud LLC是一家成立于2020年12月互联网服务提供商企业,于2021年1月份投入云计算应用服务,为广大用户群体提供云服务平台,已经多个数据中心部署云计算中心,其中包括亚洲、美国、欧洲等地区,拥有自己的研发和技术服务团队。现七夕将至,VoLLcloud LLC 推出亚洲地区(香港)所有产品7折优惠,该产品为CMI线路,去程三网163,回程三网CMI线路,默认赠送 2G DDoS/C...