校招重点设计:进程管理、内存管理、设备管理、文件管理基本不考。参考:https://blog.csdn.net/qq_39328436/article/details/113560889
一、进程与线程
引入线程之前,进程是资源分配的基本单位也是CPU调度的基本单位,引入线程之后,CPU调度的基本单位变成了线程,线程是为了提高系统的并发性,减少进程并发带来的时空开销。
1.根本区别:进程是资源分配的基本单位,线程是CPU调度的基本单位
2.进城拥有独立的内存空间,进程的各个线程共享这块空间,线程几乎不拥有资源。
3.进程和线程的通信方式不同。
进程间通信方式
共享内存:速度快,需要保持同步
消息队列:容量受到内存限制
管道:速度快,容量有限,只有父子之间进程能通信
线程间的通信方式:同步:多个线程通过synchronized关键字实现线程间通信。
while轮询方式:浪费CPU资源。
wait/notify机制:提高CPU利用率。
进程和程序的区别:程序是静态的指令集合;进程是指令的一次执行过程,是动态的。进程是系统资源分配和调度的基本单位。
进程实体的组成:PCB进程控制块,唯一表示一个进程,程序段,数据段。
二、同步、异步
进程异步:即进程走走停停那,以无法预知详见推进。
进程同步某些进程之间的顺序确定,a运行结束B才能运行,即进程间的直接制约关系。
进程互斥:多个进程顺序访问临界资源,临界资源同一时间只能被一个进程访问,是进程之间的间接制约关系。
解决进程同步互斥的方式
最开始使用软件(算法)方式解决:单标志法、双标志先检查法、双标志后检查法等,有不满足空闲让进、让权等待原则。
硬件的中断屏蔽,指令法不能满足让权等待。
信号量机制运用PV操作解决同步互斥,但是可能放错PV位置。
管程集成了共享数据结构,及对这些数据结构的初始化和访问。解决了同步互斥问题,便于程序员编程。
操作系统的特征:并发、共享、虚拟、异步
操作系统的运行机制:两种程序:内核程序和应用程序,两种指令:特权指令和非特权指令,两种处理机状态:内核态和用户态。
三、并发、并行
并发指同一时间间隔内同时发生,即宏观上同时发生,微观上交替发生,
并行指同一时刻同时发生。
四、进程调度算法及其选择
1.先来先服务算法(FCFS):可用于作业调度和进程调度
2.短作业优先算法:(SPF)可用于作业调度和进程调度
3.时间片轮转算法:时间片用完后,调度该进程进入就绪队列末尾。
4.多级反馈队列调度算法:设置多岗位就绪队列,不同的优先级,进程在第一个优先级队列的时间片用完后放入第二个队列的末尾,第一个优先级队列的所有进程运行完在运行下一个队列的进程。(照顾没有指明进程长度的短进程)优先级降低时间片变长。
5.优先权调度算法:(有非抢占式(适用于实时性要求不严的实时系统)和抢占式(能较好满足紧迫作业的要求,用于比较严格的实时系统)两种)
如何选择?
根据实际问题,长作业还是短作业?饥饿是否有影响?是否有指定优先级?是否要求优先级动态变化?是否要求足够公平?
剥夺方式的进程剥夺原则有:优先权原则、短进程优先原则、时间片原则。
选择方式可以根据实时系统和非实时系统。
对于普通进程采用动态优先调度,对于实时进程采用先来先服务和时间片轮转两种调度策略。
UNIX的进程调度算法采用多级反馈机制,保证高优先级的作业得到响应的同时使短进程迅速完成。但是不断有新进程到来时,长进程可能饥饿。
Windows系统调度单位是线程而不是进程,采用基于优先级的抢占式多处理器系统。根据优先级和时间片来调度。
五、死锁
死锁:各进程相互等待对方手里的资源,导致进程阻塞,都无法向前推进。
产生的必要条件:互斥、不可剥夺、循环等待、请求保持(持有资源的同时请求资源)
产生的原因:进程之间竞争资源、推进顺序不当、信号量使用不当。
死锁的处理策略
发生之前1.预防死锁(破坏四个必要条件)2.避免死锁:银行家算法
发生之后1.检测死锁2.解除死锁:资源剥夺法、撤销进程法、进程回退法。
内存管理
程序到可执行文件的过程
1.编译:高级语言编译后为机器语言,生成多个目标模块,object文件
2.链接:将多个目标模块链接,形成完整的装入模块,形成逻辑地址
装入:将装入模块装入内存,逻辑地址转化为物理地址。
基本分页和基本分段的对比
操作系统面试题目
最新推荐文章于 2022-07-24 18:24:20 发布
这篇博客主要介绍了操作系统面试中常见的知识点,包括进程与线程的区别、同步异步的概念、进程互斥与同步的解决方式、并发与并行的解释,以及进程调度算法的选择。此外,还提到了死锁的问题及其处理策略,并简单概述了内存管理的过程。
摘要由CSDN通过智能技术生成