操作系统忙等待解决方案.docx
《操作系统忙等待解决方案.docx》由会员分享,可在线阅读,更多相关《操作系统忙等待解决方案.docx(33页珍藏版)》请在冰豆网上搜索。
操作系统忙等待解决方案
操作系统忙等待解决方案
篇一:
现代操作系统念书笔记
第一章:
引论
操作系统是运行在内核态的软件,为程序猿提供资源集抽象和治理硬件
要紧任务:
记录那个程序在用什么资源,治理资源分派,评估利用代价,调剂冲突
1.操作系统必需明白所有的寄放器,以便中断时保留进度
2.用户程序在用户态运行时,仅许诺执行至灵级的一个子集,一样不能挪用IO和内存爱惜指令
3.陷阱:
a.用于执行系统挪用
b.多数由硬件引发,用于警告异样
4.超线程:
无并行处置,线程切换纳秒级
存储器
1.寄放器(和CPU一样快)-》高速缓存(多级缓存)-》主存(RAMROMEEROM闪存)
上下文切换:
多道程序系统中从一个程序切换到另一个程序
1.设备驱动程序:
操纵IO设备,与操纵器对话并收发命令
2.设备存储器:
映射到操作空间
A.优势:
不需要特定IO指令
B.缺点:
占地址空间(8088)
3.实现输入输出的方式:
A.忙等待:
设备驱动循环检查IO
B.操作完成时中断
C.利用特殊的直接存储器访问芯片DMA
1.USB:
通用串行总线,键盘鼠标等慢速设备
启动
1.加电-》BIOS检查硬件-》BIOS查询启动设备(设备第一扇区用启动签名才能够作为启动设备)-》硬盘第一区(MBR),分区表,超级块等
进程
1.本质:
正在执行的程序的实例,地址空间(coreimage进程可读写,有数据和堆栈)。
2.相关:
资源集(寄放器,报警,文件清单等)
3.允许运行一个程序所需要所有信息的容器
4.UID与GID
1.IO设备的分类:
A.块设备:
硬盘,可随机读取
B.字符特殊文件:
键盘鼠标
2.管道:
虚文件,连接进程
系统挪用
1.用户程序与操作系统交互:
处置抽象
2.能进入内核的进程挪用
用户态切换到核心态三种方式:
中断,异样,系统挪用
指令:
副作用切换到内核态
微内核
1.高靠得住性,把操作系统划分成小的,概念良好的模块,只有微内核运行在内核,其他是一般用户程序
2.设备驱动:
崩溃可不能致使系统死机
3.机制与策略分离
第二章:
进程与线程
进程模型
1.多道程序设计:
CPU在多个程序之间快速切换
2.UNIX:
开始是相同,以后不同。
Windows:
一直不同。
3.进程退出的缘故:
1.正常退出;
2.犯错退出;(异样处置)
3.严峻错误;(非法指令,引用错误内存,除零错误)
4.被杀死
4.进程层次
Windows:
没有层次的概念,所有进程地位相同
Linux:
进程及进程的子女们组成进程组
5.进程的三种状态:
1.运行态(实际占用CPU)
2.就绪态(可运行)
3.阻塞态(等待外部事件)
6.进程表:
贮存进程状态(程序计数器,堆栈指针,内存分派状况,打开的文件状态。
账号等)
7.中断向量:
与每一个IO类关联
1.中断发生时,中断硬件程序将进程表中的重要数据压入堆栈,运算机跳到中断向量的地址
2.汇编语言设置新的堆栈(无法用C语言这种高级语言来描述)
8.多道程序设计
1.假设一个进程等待IO与停留在CPU的时刻比为p,n个进程时,CPU利用率为利用率=1–p^n
线程(进程与线程)
1.概念:
传统操作系统中,每一个进程有一个地址空间和一个操纵线程
2.线程将应用程序分解成能够并行运行的多个顺序线程
3.利用多线程的缘故:
1.并行实体共享同一个地址空间和所有可用数据的能力
2.线程更轻量级,因此他们比进程更快创建和撤销
3.同时需要大量IO和CPU计算时,多线程许诺多个活动彼此重叠进行,从而加速执行速度
4.多核系统中,多线程能够真正实现并行
力。
7.线程之间没有爱惜:
1.不可能
2.不需要(线程之间是合作关系)
8.每一个线程都有自己的堆栈
9.thread_yield:
不同于进程,线程无法利历时钟中断强制线程让出CPU
10.线程引入的问题
1.fork系统挪用是不是应该复制子线程
2.共享文件冲突
4线程实现
1.用户空间实现
1.每一个进程需要有其专门的线程表,由运行时系统治理
2.优势
1.能够在不支持线程的操作系统上实现多线程
2.线程切换速度快(挪用运行时系统的进程,不需要刷新和上下文切换)
3.许诺每一个进程有自己定制的调度算法
4.有较好的拓展性(内核县城需要固定的表格空间和堆栈空间)
3.缺点
1.某个线程进行阻塞挪用会引发所有其他线程阻塞
1.利用非阻塞系统挪用
2.阻塞提早通知(select系统挪用)
2.页面故障阻塞其他线程
3.除非线程舍弃CPU,不然其他线程(包括调度线程)无法运行(没有
时钟中断)
1.运行时系统也给与时钟中断:
不行,不可能而且开销大
2.内核线程
1.内核有记录所有线程的线程表
2.利用环保方式回收线程
3.在线程级别利用调度算法:
若是线程的操作比较多,会带来专门大的开销
4.信号:
是发给进程的。
当多个线程注册时,会出问题
3.混合实现
1.利用内核级线程,将用户级线程与某些或全数内核线程多路复用(很灵
活)
4.调度机制
1.内核给每一个进程安排必然数量的虚拟处置器而且让运行时系统分到线程上
2.进程被阻塞后,内核通知运行时系统(upcall)
3.依照中断决定是不是继续5.例子:
多线程/单线程web效劳器1.第三种设计(有限状态机:
并行,非阻塞系统挪用,【中断】):
唯一的线程对请求进行考察,若是需要IO,那么启动一个非阻塞IO,效劳器在表格里记录当前请求,然后处置下一个事项。
6.线程模型1.进程:
集中程序运行的相关资源(地址空间,全局变量等)2.线程:
程序计数器,寄放器,堆栈,共享的地址空间,多个线程的执行能
5.弹出式线程
1.一个消息的抵达致使系统制造新的线程处置消息-》弹出式线程
2.优势:
没有历史,创建迅速
6.重写单线程代码
1.私有的全局变量
2.可重入的库
1.重写整个库
2.为每一个进程提供wrapper,标志该库正在被利用中
3.信号:
内核不明白用户级线程,因此不容易将信号发给正确的线程
4.堆栈治理:
内核不了解线程,无法自动增加,可能会造成线程堆栈犯错。
进程间通信
1.三个基础问题
1.进程如何把信息传递给另一个·
2.确保两个或多个进程在关键活动中可不能交叉
3.进程执行的正确顺序
2.竞争条件:
两个或多个进程读写共享数据,最后结果取决于进程执行的精准时序。
3.临界区:
多个进程中访问共享区域的程序段
1.互斥:
不能同时多个进程利用共享变量或文件
2.临界区解决方案四个条件
1.任何两个进程不能同时处于临界区
2.不该付CPU的数量和速度有任何的假设
3.临界区外的程序不该阻塞其他程序
4.不能使程序无穷期等待进入临界区
3.解决方案(基于忙等待:
进程如不能进入互斥区,那么会一直原地等待)缺点:
1.可能致使优先级反转问题
2.浪费CPU
3.用户级线程会一直忙等待,从而没用方法让拥有锁的线程运行
1.屏蔽中断:
进程进入临界区以后屏蔽所有中断(CPU可不能切换)评判:
不行的方案
1.不能把屏蔽中断的权利交给用户进程(不打开中断那么系统会终止)
2.多处置器时不能解决互斥
2.锁变量:
共享锁,程序在进入临界区之前检查锁的值
评判:
无法解决临界区问题
3.严格轮换法
评判:
1.能够解决,但为忙等待。
只有有理由以为等待时刻很短的情形下才使
用忙等待(锁被称为自旋锁)
2.在一个进程比另一个进程慢很多的情形下,不行(违背条件三)
4.
‘
4.Peterson解法评判:
能够解决,知足四大条件5.TSL指令(硬件解法)TSLRXLOCK:
测试并加锁,把LOCK值读到RX并在LOCK上存入1。
原子操作能够阻止所有处置器访问LOCK(屏蔽中断只能屏蔽本地处置器)睡眠——唤醒方案(进程无法进入临界区时会阻塞)1.原语:
生产者——消费者问题:
一个发给未睡眠进程的信号丢失了2.
解决方案
1.唤醒等待位:
唤醒时生产者置1,消费者睡眠前检查该位,假设为1,那么清除该位并继续维持清醒(不行,多进程时需多个等待位)
2.信号量(semaphore):
检查数值,修改变量等应为原子操作
1.在进入一个关键代码段之前,线程必需获取一个信号量;一旦该关键代码段完成了,那么该线程必需释放信号量。
其它想进入该关键代码段的线程必需等待直到第一个线程释放信号量。
2.实现方式:
操作系统在执行以上事务时屏蔽中断
3.另一种用途:
互斥锁
3.互斥锁:
只需要一个二进制位
与忙等待不同:
在未取得锁时,挪用另外的线程
篇二:
操作系统题库选择题
选择题
1.操作系统所扮演的角色是:
A.多台电脑之间的接口B.给系统用户提供一套效劳C.治理应用软件档案D.不是以上任一选项答案:
B
2.运算机系统的四个要紧结构化部件是:
A.处置器、寄放器、I/O模块及主存储器B.处置器、寄放器、主存储器及系统总线C.处置器、主存储器、I/O模块及系统总线
D.不是以上任一选项答案:
C
3.两种大体的处置器寄放器是:
A.用户可见寄放器及操纵和状态寄放器B.操纵寄放器和状态寄放器
C.用户可见寄放器和用户不可见寄放器D.不是以上任一选项答案:
A
4.地址寄放器包括:
A.数据的主存储器地址B.指令的主存储器地址C.局部主存储器地址D.以上均是答案:
D
5.包括将取指令地址的操纵/状态寄放器称为:
A.指令寄放器(IR)B.程序计数器(PC)C.程序状态字(PSW)D.以上均是答案:
B
6.指令处置进程中的两个大体步骤是:
A.取指时期和指令周期B.指令周期和执行时期C.取指时期和执行时期D.不是以上任一选项答案:
C
7.取到的指令通常被寄存在:
A.指令寄放器(IR)B.程序计数器(PC)C.存储器(AC)D.不是以上任一选项答案:
A
8.中断常见的种类有:
A.程序中断B.时钟中断/O中断D.以上均是答案:
D
9.当外部设备预备好接收处置器的效劳时,该设备发送哪一种信号给处置器?
A.中断信号B.停止信号C.处置信号
D.不是以上任一选项答案:
A
10.在处置器操纵操纵例行的中断处置器之前,需要贮存的最少信息有:
A.程序状态字(PSW)
B.程序状态字(PSW)和后续指令地址
C.程序状态字(PSW)和处置器寄放器内容D.不是以上任一选项答案:
B
11.处置多中断的一个可行的方式是:
A.概念中断优先级
B.阻止处最高优先级中断外的所有中断C.按顺序连番效劳D.不是以上任一选项答案:
A
12.在一个单处置器系统中,多道程序设计通过什么方式提高处置器效率?
A.提高处置器速度
B.充分利用长时刻等待的中断处置的空闲时刻C.排除所有空闲的处置器周期D.以上选项均是答案:
B
13.存储器品级降低时(如内存、硬盘)等,会显现以下那种情形:
C.访问时刻增加D.以上选项均是答案:
C
14.在处置器与主存储器之间提供的一个容量小而快速的存储器称为:
存储器
B.高速缓冲存储器存储器
D.不是以上任一选项答案:
B
15.当一个新块被读入高速缓冲存储器是,以下哪个要素将决定那个块将占据某个高速缓冲存取单元:
A.块大小4
B.高速缓冲存储器大小C.写策略
D.不是以上任一选项答案:
D(映射函数)
16.直接存储器存储需要从处置器获取哪些信息?
/O地址
B.读写操作的开始地址C.读或写的字符数量D.不是以上任一选项
答案:
D(不需要处置器的参与)1.操作系统的一个首要目标是(D)
A.方便B.有效C.扩展的能力D.以上都是2.操作系统向终端用户、程序员和系统设计师提供多种效劳,其中包括(B)A.内置式申请B.错误检测和响应
C.关系数据库的内部文件系统能力D.以上都是
3.操作系统作为操纵机制的不寻常的地方在于(B)A.它在专用途理器上运行,完全离开其他系统B.它常常释放对处置器系统的操纵而且必需依托处置重视新操纵系统
C.它从不释放对处置器系统的操纵D.以上都不是
4.操作系统必需随着时刻演变,因为(C)A.当它犯错时硬件必需被替换
B.用户仅仅会追求有现行高作权的软件C.新硬件的设计D.以上都是2
5.初期系列处置系统的一个重要问题是(A)A.设置时刻
B.缺少输入设备
C.无法取得打印输出D.以上都是
6.在批处置系统中可取的硬件特点的一个例子(A)
A.特权指令
B.一个完全可访问的主存区C.大时钟周期D.上述都是
7.与多道程序设计操作系统有效运行切身相关的运算机硬件特点是:
(C)A.超大内存B.多处置器
/O中断和DMAD.以上都是8.分时系统、多道程序设计系统的一个客观原那么是:
(D)
A.最大化响应时刻
B.最大限度利用途理器C.提供独家取得硬件D.都不是
9.下面哪个运算机系统进展的要紧线路产生了同时和同步问题,从而致使了进程这一概念的提出?
(D)
A.多道程序批处置操作系统B.分时系统
C.实时交互系统D以上所有
10.在内存治理系统中,分页系统提供了虚拟地址和(B)的动态映射A.主存中的虚拟地址B.主存中的实地址11.相关于运算机系统中的信息平安和爱惜,存取操纵通常指:
(C)
A.证明平安机制依法执行B.系统的数据流量
C.标准用户和进程访问系统各方面的体制D.以上都不是
12.由于它们的大小和任务的难度,操作系统的一个通病是(D)
A.交付利历时适应性表现掉队B.系统有潜在的错误
C.老是难以达到预期的性能D以上都是
13.一个进程执行一个应用程序时,分成数个能够并行执行的线程的技术叫做(A)A.多线程B.多进程
C.对称多处置D.以上都不是
14WIN2K支持几种用户应用,包括(A)10D.以上都不是
的成功的关键是在于它是由(B)赞助的自由软件包:
WideWeb财团B.自由软件基金会
SoftwareDistributionD.以上都不是
1.一个处置器的行为能够通过对__的观看来描述A.单个进程的轨迹B.多个进程的轨迹
C.各个进程轨迹的交替D.以上均是答案:
C
2.一个单独进程的行为能够通过对__的观看来描述A.单个进程的轨迹B.多个进程的轨迹
C.各个进程轨迹的交替D.以上都是答案:
A
3.大体的两状态进程模型依照与处置器的关系概念了一个进程的两种状态:
__A.运行态和退出态
B.运行态和非运行态C.退出态和等待态D.以上都不是答案:
B
4.致使进程终止的条件有__A.正常终止B.越界C.父进程终止D.以上都是答案:
D
5.在五状态模型中,以下哪一项为哪一项有效的转换:
__A.运行-〉阻塞B.新建-〉运行C.新建-〉阻塞D.以上都是答案:
A
6.在两个挂起态的进程模型中,有效的转换是:
__A.就绪/挂起-〉就绪B.运行-〉就绪/挂起C.就绪-〉就绪/挂起D.以上都是答案:
D
7.依次给队列中的每一个进程必然的执行时刻,然后进程返回队列,阻塞情形除外,这种调度方式叫做__A.优先级B.轮循
C.后进先出D.以上都是答案:
B
8.内存表是用来__的操作系统操纵结构A.治理I/O结构B.治理进程
C.提供系统文件的信息D.以上都不是
答案:
D(用来跟踪主(实)存和辅存(虚拟内存)的)
数据
B.系统栈
C.进程操纵块D.以上都不是答案C
10.包括用户空间中的可修改部份的进程映像元素叫做__A.用户程序B.系统栈
C.进程操纵块D.以上都不是
答案:
D(用户数据)
11.执行用户程序的处置器执行模式叫做__A.用户模式B.系统模式C.内核模式D.以上都不是答案:
A
12.创建一个新进程包括的步骤有__A.初始化进程操纵块
B.给进程分派空间
C.确信唯一的进程标识号D.以上都是答案:
D
13.当系统碰到以下哪些条件产生的中断时,会发生进程切换__A.内存失效B.系统挪用C.陷阱D.以上都是答案:
D
14.在基于操作系统的进程中__A.要紧的内核函数是独立组织的
B.用户进程映像包括内核栈
C.操作系统的代码和数据在不同的地址空间D.以上都不是答案:
A
15.在Linux系统中,包括处置器状态信息的进程映像元素是__A.系统级上下文B.寄放器上下文C.用户级上下文D.以上都是答案:
B
操作系统中进程的概念,表现了两个要紧特点的,其中之一是:
BA.多线程
B.资源的占有权C.对称多处置技术D.非以上所有
2.是实行单一制的多线程程序是:
CA.WINXXB.SolarisC.Java
D.Alloftheabove
3.以下哪个是关于进程和线程的正确的关系:
A
a.在现有的进程下创建线程要比建一个新进程下创建线程花的时刻要少得多.
b终止一个进程要比一个线程花的时刻长c在不同进程之间的转换比在同一进程下的不同线程间转换花的时刻少d以上所有
4.线程大体状态发生转变,需要等待一个事件时称为:
CA.就绪状态B.运行状态C.阻塞状态D.都不是
5.用户级线程(ULTs)和内核级线程(KLTs)相较一个短处,是:
BA.调度请求准确
B.当一个ULT执行一个系统挪用,进程中所有的线程都被阻塞
C.线程切换不用内核许诺D.以上所有
6.在Linux操作系统中,多线程能够在一个一个单线程中创建和执行.下面哪个是关于线程和进程间关系的例子:
D(M:
1)A.1:
1B.1:
M7.关于运算机系统类中单一处置器执行单一指令流操作数据存在单一的内存中叫做:
AA.单指令单数据(SISD)流B.单指令多数据(SIMD)流C.多指令单数据(MISD)流d上述都不是
8.在一个SMP系统中,遍地理器维持一个局部的缓存并注意着其它的处置器对高速缓存的更新做的改变,这涉及到:
CA.互连机制问题B.同步机制问题C.高速缓存一致D.以上都不是
9.设计多处置机操作系统的关键问题包括:
DA.时序性B.同步性
C.靠得住性和容错性D.以上所有
10.初期设计的操作系统,通常很少关注结构为:
A
A.单片机操作系统B.分层操作系统C.内核操作系统D.以上所有
11.微内核组织的一个益处是:
DA.可扩展性B.可移植性C.灵活性D.以上所有
12.在低层次微内核内存治理中,支持外部页面调度和虚拟内存治理的例子是:
DA.授权B.映射C.刷新
D.Alloftheabove
13.在W2K系统当一个线程进入运行状态且未被阻碍,而现在它执行所需的资源不可用的状态是:
A
A.过渡状态B.等待状态C.备用状态D.以上都不是
14.在Solaris系统,用户级线程(ULT)进入激活态是变成:
CA.内核进程B.重量级进程C.轻量级进程D.以上都不是
15.在Linux系统,当一个新的程序被复制,两个进程有相同的:
BA.进程标示符B.虚拟内存
C.工作数据结构D.以上所有
1在以下那些选项中,并发性起了重要的作用:
A多个应用程序B结构化应用程序C操作系统结构D以上所有Answer:
D
2以下实例选项种那些是不需要忙等待的并发性的解决方法:
A信号量和管程B消息传递和存储C生产者和消费者D以上都不是
Answer:
D(所有的软件解决方法都涉及了必然形式的忙等待)
3一个在多处置器上运行的大体的echo进程(键入的字符回显到显示器)能够致使错误显现,若是以下哪一种情形显现:
A在一个echo进程种有两个进程是死锁的B对echo进程的访问是非同步的C对echo进程的访问是同步的
D上述都不对Answer:
B
4为了实现竞争进程中临界资源的互斥性,每次只能有以下那个程序被利用:
C在展现协作时D以上都不是AnswerA
5以下那些要求在为互斥性提供支持时必需知足:
A在临界代码区每次只有一个进程被许诺B一个进程只能在其临界代码区内存在有限长的时刻
C没有关于相关进程速度的要求和限制D以上都不对答案D
6能够实现例程间的执行操纵权传递的程序是: