合聚咖

合聚咖

计算机面试重难点 之 操作系统

admin

用户态与核心态的概念在于操作系统中的运行模式区分,操作系统的核心功能如进程管理、内存管理、设备管理、文件管理等运行在内核态。用户进程只能访问用户代码和数据,当用户进程需要访问内核态级别的功能与服务时,会通过系统调用、异常或外设中断,导致从用户态切换至内核态。

进程与线程的区别在于,进程是代码执行的完整过程,一个进程中可以包含多个线程,以提高程序的并发执行能力。进程有五种基本状态:创建、就绪、执行、阻塞和终止,状态之间的转换遵循一定的规则。

进程调度算法包括多种策略,用于决定何时和如何分配CPU资源给进程。僵尸进程和孤儿进程的区别在于,僵尸进程在父进程退出后,其状态无法释放,需要通过特定的系统调用来回收;而孤儿进程则是由于父进程退出,转为由init进程负责回收。

死锁现象发生在多个进程因互相等待对方占用的资源而无法继续执行的情况。死锁产生的四个必要条件是:互斥、占有等待、不可抢占和循环等待。预防死锁、避免死锁的策略,以及银行家算法等方法被用于解决死锁问题。

银行家算法的核心目的是确保系统动态分配资源后不会进入不安全状态,避免死锁的发生。其数据结构包括资源分配矩阵、最大需求矩阵和可用资源矩阵,算法流程包括检查当前可用资源是否能满足进程需求、分配资源以及更新状态。

死锁检测与解除的算法用于在系统中检测死锁状态并采取措施解除死锁。死锁定理提供了检测死锁的逻辑基础,而解除算法则用于在发现死锁后恢复系统状态。

进程间通信(IPC)方式有多种,包括管道、命名管道、信号、消息队列和共享内存。管道适用于具有亲缘关系的进程间通信,命名管道允许无亲缘关系进程间的通信。信号是一种异步通信方式,用于通知接收进程事件发生。消息队列允许进程间发送和接收消息,共享内存则通过映射同一块物理内存,实现高效的数据共享。

内存管理机制分为连续分配和非连续分配。连续分配管理方式包括单一连续分配、固定分区分配等,而非连续分配管理方式包括页式管理、段式管理和段页式管理。分页存储管理极大提高了内存利用率,而分段存储管理则便于实现数据的共享与保护。

虚拟存储器技术允许程序运行在比实际内存更大的空间中,通过将程序部分调入内存和部分保留在外存,实现程序的运行。虚拟存储器可以基于局部性原理,即时间局部性和空间局部性,进行页面淘汰策略的优化,如改进的时钟淘汰算法,以提高内存使用效率。