- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机操作系统面试准备new.doc
关于操作系统一般笔试面试中问的比较浅,根据教材整理了一份比较基础的操作系统的学习笔记
一、进程管理
1. 为何引入进程
程序的执行顺序:
顺序执行:顺序性、封闭性、可再现性
并发执行:间断性、失去封闭性、不可再现性
在多道程序环境下程序的执行是并发的,这样程序就要失去封闭性,并且间断且不可再现。并发执行的三个特点决定通常的程序是不能被并发执行的,于是引入了进程。
2. 进程的特征
(1)结构特征:每个进程都对应一个PCB(进程控制块)。程序段、数据段和PCB构成了进程实体。
(2)动态性:动态性是进程最基本的特征,因为进程的实质是进程实体的一次执行过程。
(3)并发性:进程的引入就是为了满足多道程序的并发执行的特征。
(4)独立性:进程是参与资源分配的基本单位(线程是被调度的基本单位)
(5)异步性:指进程被执行的速度和顺序具有不确定性,即进程按异步方式运行。
3. 进程的状态
就绪状态:只差CPU就可以运行的进程
执行状态
阻塞状态:正在执行的进程遇到某个时间之后暂时不需要CPU了,就把CPU让出来并排到阻塞状态的进程队列中去。
4. PCB
PCB是进程存在的唯一标志。
PCB的作用:是让一个在多道程序环境下无法兵法运行的程序成为一个能够独立地接受调度和运行的基本单位,从而使之成为能和其他进程并发运行的进程。
PCB的内容:进程标识符、CPU状态信息、进程调度信息、进程控制信息等。
PCB的组织方式:链接方式、索引方式
5. 进程控制
进程的创建
引起进程创建的事件有:用户登录、作业调度、提供服务、应用请求
创建步骤:申请空白PCB、为新进程分配资源、初始化进程控制块、将新进程插入就绪进程的终止
引起进程终止的事件有:正常结束、异常结束、外界干预
终止步骤:读进程状态、若被终止进程处于执行状态则表示该进程被终止后需要重新调度、若该进程有子孙进程则终止所有子孙进程、归还进程资源、移除队列中的PCB
进程的阻塞与唤醒
引起进程阻塞的事件:请求系统服务、启动某种操作、新数据尚未到达、无新工作可做
引起唤醒的事件:当被阻塞进程所期待的事件出现的,如系统服务完成、I/O操作完成、所期待数据已经到达
6、进程同步
(1)临界资源:某些共享资源仅允许一个进程使用,这就是临界资源。比如打印机、磁带机。
(2)临界区:每个进程中访问临界资源的那段代码叫做临界区。临界区是进程中的代码!!
为了查看当前有没有进程在访问临界资源,所以每个进程在进入临界区之前要执行一段检测代码,这段代码叫做进入区。在离开临界区后进程要标记下现在已经没有进程访问临界资源,这段代码叫做退出区。其他代码称为剩余区。
同步(直接相互制约关系):一个进程到达了某点后,除非另一进程已经完成了某些操作,否则就不得不停下来等待这些操作的结束,这就是进程间的同步,有了同步后进程间就可以相互合作。
互斥(间接相互制约关系):多个进程都想使用一个临界资源,但是不能同时使用,于是只好一个进程用完了才能给其他进程用,这就是进程互斥。某种意义上说进程互斥是进程同步的一个特殊情况。
1. 实现同步的准则
空闲让进:当无进程处于临界区时,应允许一个请求进入临界区的进程立即进入自己的临界区
忙则等待:当已有进程进入临界区时,其他试图进入临界区的进程必须等待,以保证临界资源互斥访问
有限等待:对要求访问临界资源的进程,应保证有限时间内进入自己的临界区,以免陷入“死等”
让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”(忙等是指当一个进程在临界区,当其他进程欲进入临界区时,反复检测是否可以进入,即忙于等待临界区中的进程离开)
2. 信号量机制
(1)整型信号量
整型信号量是一个整型的变量S,能对S进程的操作有3种:
第一个是初始化S,给出S的初值;
第二个原子操作wait(S),又称作P操作;
Wait(S){
While(S = 0); //不执行任何操作,循环
S--;
}
第三个是原子操作signal(S),又称作V操作
Signal(S){
S++;
}
注:原子操作是指不能被中断的操作,可以用原语实现。
(2)记录型信号量
整型信号量没有实现同步机制的第四条“让权等待”,因为执行了wait操作时弱信号量S=0,那么就会不断的循环测试S的数值,不会释放CPU资源。记录型信号量就是为了解决这种忙等现象而被提出的。
记录型信号量的数据结构可用结构体表示:
Struct{
Int value;
Struct process *L;
}semaphore;
Wait操作的伪代码:
Void wait(semaphore S){
S.value --;
If(S.value 0) //S.value 0时,阻塞进程
Add this process to S.L
文档评论(0)