1. E序的处理步?/span>
1) ~译
2) 链接
① 静态链?/span>
② 动态链?/span>
3) 装入
① l对装入方式
② 静态重定位
③ 动态重定位
2. 内存的分配方式:
1) L分配方式
① 分页理
② 分段理
③ D页式管?/span>
2) q箋分配方式
① 单一q箋分配
② 固定分区分配
③ 可变分区分配Q有四种方式Q首ơ适应法Q@环首ơ适应法Q最佳适应法Q最差适应法?/span>
3. 虚拟存储器:
1) h分页
① Opt
② Lur
③ fifo
2) h分段
1. 操作pȝ的概c特征、功能和提供的服?/span>
1) 操作pȝ是计机pȝ资源的管理者,为用h供接口?/span>
2) 操作pȝ的功能与特征
① 操作pȝ功能模块作ؓҎ子程序,为用h供系l调用?/span>
② 操作pȝ作ؓ资源的管理者?/span>
③ 操作pȝ以进E组lŞ式ؓ用户提供服务?/span>
④ 操作pȝ作ؓ服务提供者?/span>
2. 操作pȝ的发展与分类Q单道批处理Q多道系l,实时pȝQ分时系l?/span>
3. 操作pȝ的运行环?/span>
1) 操作pȝ的进E空_用户E序区,用户数据区,用户栈区Q核心栈区,pȝE序以及数据区?/span>
2) 中断也称外中断,主要是指cpu指o以外的事件的发生Q异常称为内中断Q也叫例外或者陷入,主要来自于cpu指o内部的事件。异怸能被屏蔽Q一旦出玎ͼ立即处理?/span>
3) 中断的分U?/span>
4) 中断/异常相关概念
① 断电QCPU刚执行完的那条指令成为断炏V?/span>
② 恢复点:中断时程序计数器所指的地址为恢复点?/span>
③ 态和目?/span>
④ 中断向量以及PS和PC
5) 中断异常处理q程Q整个中?异常从发现到处理完毕是由软g和硬件相互配合协调完成的。在中断处理q程中,一般包括保存现场、分析中?异常原因、进入不同中?异常的响应处理程序、最后可能重新选择E序q行、恢复现场等q程?/span>
6) pȝ调用是管态和目态之间的接口。应用程序通过陷入Q进入内核态,os内核q行异常处理E序Q系l程序根据系l调用的cdP索系l调用的散{表中的服务程序地址Q到具体的服务程序进行相应的pȝ调用Q结束后Q进行进E调度程序,恢复q程现场?/span>
7) 用户界面Q用户用命令语a描述要求计算机去做的事情?/span>
① 命o语言Q系lؓ支持命o语言的解释执行,讄了一个命令解释程序负责解释执行用户当前输入的命oQ用户在l端上输入一条命令时Q命令解释程序要做的工作如下Q判断命令的合法性;识别命oQ如果是单命令,则进行系l调用)Q如果是不认识的命o关键字,则在U定的目录下查找与命令挂念子同名的执行文Ӟ创徏子进E去执行“执行文g”Q等待子q程l束后,q回l箋d下一条命令?/span>
② 囑Ş用户界面Qwindowspȝ初始化后Qؓ用户生成了一个explore.exe的进E,q行的是L口界面的解释E序?/span>
4. 操作pȝ体系l构
1) 大内?/span>
2) 微内?/span>
1. q程与线E?/span>
1) q程概念Q由E序和代码、进E空间、系l资源、栈区组成,为对q程理Q通过PCB实现?/span>
2) q程的状态和转换Q创建,qAQ运行,dQ结束?/span>
① q到创建:W一个进E有pȝ初始化生,以后有父q程通过创徏q程的系 l调用生?/span>
② 创徏到就l:创徏完成后,q入qA状态?/span>
③ qA到运行:被调度程序选中Q分配到处理Z执行?/span>
④ q行到结束:调用l束q程pȝ调用或者异常流产,q行l束?/span>
⑤ q行到就l:旉片到或者被高优先q程打断
⑥ q行到等刎ͼ通过pȝ调用Q请求某U资源,未得刎ͼ处于{待状态;pȝ调用是目态到态的q程?/span>
⑦ {待到就l:{待的事件来?/span>
3) q程控制Q?/span>
① q程创徏与终l:主要有初始化PCB表,|进EؓqA状态?/span>
② 模式切换Q两U模式,目态和态;划分的理由是保护操作pȝ和操作系l的数据表格不被可能出错的程序破坏。从态到目态是通过操作pȝ内核E序修改E序状态字实现Q从目态到态是通过异常Q也叫自陗例外、内中断Q不可屏蔽,有指令出错或者缺触发)或者外中断Q有g产生Q可屏蔽Q。(内中断和外中断,l称中断Q;q程从目态到态,只需保存q程的处理机信息。进行切换,要保存进E空间信息?/span>
③ q程切换Q保存处理机信息Q修改进E控制块Q修改存储管理数据?/span>
4) 作业与进E的关系
① 批处理系l中作业与进E的关系Q由SPooling输入q程作业放入输入井Q成为后备作业,׃业调度程序选择后备作业Q创建根q程Q可以有根进E创建更多的子进E,共同完成作业Q由作业l止E序l至完成的作业,随后作业送入输出井,有输E把数据送入打印机?/span>
② 分时pȝ中作业与q程的关p:用户通过命o语句逐条Cpȝ应答式地输入命oQ提交作业步骤?/span>
③ 交互式地提交批作业:pȝ有专门的调度E序Q负责从作业队列中,选取作业Qؓ选取的作业创建根q程Q执行作业说明书中的命o.
5) q程通信Q方法:׃n存储ҎQ需要进行pv操作Q由于进E空间相对独立的Q因此要通过Ҏ的系l调用实玎ͼQ消息传递方式(通过发送和接受原语实现通信Q?/span>
6) 多线E概念与多线E模型:q程只作为除cpu以外的资源;U程则作为处理机的分配单位?/span>
2. 处理?/span>
1) 调度的基本概?/span>
① 高调度Q从外存上等候调度的作业中,选择一个调入内存,分配资源Q创E,挂到qA队列上?/span>
② 中调度Q把暂时无法q行的进E调入外存,减少内存I间的浪费;{内存空间空Ԍ把外存有条g的进E重新调入内存。引入中U调度,主要提高内存使用率和提高pȝ的吞吐量。调度出ȝq程为挂L态;中调度实质为兑换?/span>
③ 低调度Q进E调度?/span>
2) q程调度的方式:
① 剥夺式调度:有优先原则Q时间片原则?/span>
② 非剥夺式调度Q除q程q行l束或者进入阻塞状态以外,q程一直占用处理机?/span>
3) q程d攑ּ处理机的原因有:
① q程执行完毕
② q程q入d状?/span>
4) 在可剥夺的进E调度中Q新qA的进E会按照某种原则Q剥夺正在运行的q程的处理机Q进E申误度的时机Q有以下情况Q?/span>
① 中断处理完毕Q引h个进E变成就l状态?/span>
② q程释放临界区,引v{待该界区的进E就l?/span>
③ 当进E发生系l调用,引v某个旉发生Q导致其他等待进E就l?/span>
④ 引v其他M原因Dq程为就l态时?/span>
MQ当有新q程qAӞ引发q程调度的申诗?/span>
5) 在可剥夺式进E调度系l中Q即便没有新的就l进E,Z使所有就l进E占用处理机Q可在下q情况下甌q程调度Q?/span>
① 旉中断发生Q时间片刎ͼ其他q程h调度?/span>
② M引v优先U发生变化时Q应h重新调度?/span>
操作pȝq不一定要在引发进E调度原因时Q马上进行进E调度?/span>
6) q程的调度、切换、时机:一般来_h调度--->调度----->切换Q三个事件应该一气呵成;但在现在操作pȝ中,不能q行q程的调度与切换的情冉|Q?/span>
① 处理中断q程中?/span>
② q程在操作系l那内核临界Z?/span>
③ 其他需要完全屏蔽中断的原子操作q程中?/span>
在上q的q程中,引发调度的条Ӟq不能马上进行调度,pȝ只是讄h调度标志Q等走出上述q程后,才进行调度和切换。应当进行进E调度和切换的时机如下:
<1>,发生引v调度事gQ且当前q程q入d状态,可马上进行调度(若os只有在这U情况下q行调度Q说明os是非剥夺调度。)
<2>,当中断处理结束或者自陷处理结束后Q返回被中断q程的用h程序现场前Q若|上h调度标志Q即可马上进行调度与切换。(实现了剥夺式调度Q?/span>
切换往往是在调度之后发生的;典型的进E切换需要保存原q程当前切换点的现场信息Q恢复被调度q程的现Z息。现Z息有QPCQPSQ其他寄存器的内宏V内核栈指针Q进E存储空间的指针?/span>
Zq行q程现场切换Q操作系l内核将原进E的上述信息推入当前q程的内核栈保存它们Qƈ跟新堆栈指针。内总新进E的内核栈中装入新进E的现场信息Q还要更新当前进E空间的指针Qƈ且作废处理机联想存储器中有关原进E的信息。在内核完成清除工作后,重新讄PC寄存器,控制转到新进E的E序Q开始运行?/span>
7) 调度的基本准则:
① 从用戯度:周{旉D,响应旉短,截止旉的保?/span>
② 从系l角度:吞吐量达Q处理机利用率高Q各c资源^衡利用?/span>
8) 调度法Q?/span>
① 先来先服务调度算法(可不剥夺式调度)
② 优先U调度算法,两种Q非可剥夺式优先U调度算法和可剥夺式优先U调度算法?/span>
③ 旉片轮转算法发Q先采用先来先服务,然后旉片到Q把q程挂到qA队列的末。时间片太大Q那么将退化ؓ先来先服务算法;若时间片太小Q那么切换过于频J,处理机开销变大Q效率降低?/span>
④ 短进行优先调度:优先选择q行旉短的进E。(不可剥夺方式Q?/span>
短进E优先算法和先来先服务算法都是非剥夺的,因此不能用于分时pȝ中,q是因ؓ不能对用户及时响应?/span>
⑤ 最高响应比优先法Q对短进E优先的改进Q属于非可剥夺式法。按照此法Q每个进E都有一个优先数Q该优先C但是要求的服务时间的函数Q而且是该q程得到的服务所p的等待时间的函数。进E的动态优先计公式:优先?nbsp;= Q等到时?h服务旉Q?Q情感求服务旉Q,h服务旉是分母,故对短进E有利,他的优先数高Q可以优先运行。但׃{待旉是分子,故长q程{待较长的时_从而提高其调度优先敎ͼ被分l了处理机。进E一旦得到锤击,他就一直运行到q程完成Q中间不被抢占。可以看?#8220;{待旉+h服务旉”是pȝ对作业的响应旉?/span>
⑥ 多反馈队列调度法:采用多队列Q每U队列的优先U不同,优先U大的队列,旉片短。除最后一U别采用旉片轮转法后,其他的队列采用先q先出算法?/span>
3. q程同步
1) 同步关系Q互斥关p;临界资源Q界区
2) 实现临界D问题的gҎQ?/span>
① 屏蔽中断
② Test_and_set指o
③ Swap指o
④ 信号?/span>
⑤ 程Q由一l同步变量和使用同步变量的过E组成;是更高的同步与互斥的抽象,但其解决同步与互斥的能力低于信号量机制?/span>
4. 死锁Q在一个进E集合里面,若每个进E都在等待某些释放资源的旉的发生,而这些事件又必须有这个进E集合中的某些进E生,成q些集合处于死锁状态?/span>
1) 死锁条gQ?/span>
① 互斥。必需要用互斥的资源
② 占用{待?/span>
③ 非剥?/span>
④ 循环{待
2) 死锁处理{略Q?/span>
① 死锁防止Q通过应用~程或者资源设计破坏死锁条件?/span>
② 死锁避免Q分配资源时Q通过判断如果满q次资源分配后,仍存在一条\径,使系l不会进入死锁状态,如果没有q种路径Q则拒绝分配?/span>
3) 死锁防止Q?/span>
① 破坏互斥条g
② 破坏占有{待条g
③ 破坏非剥夺条?/span>
④ 破坏循环{待条g
4) 死锁避免Q银行家法
5) 死锁与解除Q?/span>
① :定时q行死锁程序?/span>
② 解除Q删除某个进E,释放资源?br />信号量机制相关代码: