* 信号量机制主要有整形信号量、记录性信号量、信号量集机制。
* 信号量是一个整形变量,根据控制对象的不同赋不同的值。
* 信号量可分为公用信号量和私用信号量两类。
* 公用信号量:实现进程间的互斥,初值=1或资源的数目
* 私用信号量:实现进程间的同步,初值=0或某个整数
* 信号量S的物理意义:S>=0时表示某资源的可用数,s<0时其绝对值表示阻塞队列中等待该资源的进程数。P、V操作是实现进程同步与互斥的常用方法。
* P操作表示申请一个资源, V操作表示释放一个资源。
* P操作的定义:S=S-1,若S>=0,则执行P操作的进程继续执行;若S<0,则置该进程为阻塞状态,并将其插入阻塞队列。
* V操作定义:S=S+1,若S>0则执行V操作的进程继续执行;若S<0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,执行V操作的进程继续执行。
1. 第一题 对应着信号量的物理意义,s<0时,其绝对值表示阻塞队列等待该资源的进程数。
2. 第二题 资源的的当前可用数等于资源当前值,也就是1。或者理解为初值减去已经使用的资源数。
等待该资源的进程数为0,因为当前信号量的值大于0。
3. 信号量的初始值设为1。因为互斥使用临界资源,是指在同一时间只允许一个进程使用此资源,所以互斥信号量的初值都为1。
4. 一个等待进程。信号量当前值是-1,所以绝对值就是阻塞的等待进程数。
* 寻道算法主要有四种:
+ 先到先服务算法(FCFS)。
+ 最短寻道时间优先算法(SSTF)。
+ 扫描算法(SCAN)。
+ 循环扫描算法(CSCAN)。
磁盘分:盘面-磁道-扇区。盘面上有很多磁道,盘面也分成若干个扇区,整体结构就是这样的。寻道就是磁头寻找对应的磁道。它们都是磁盘使用要调度的。
读写一次磁盘信息所需的时间可分解为:寻道时间、延迟时间、传输时间。
(一)先来先服务算法(FCFS)
1、算法思想:按访问请求到达的先后次序服务。
2、优点:简单,公平。
3、缺点:效率不高,相邻两次请求可能会造成最内到最外的柱面寻道,使磁头反复移动,增加了服务时间,对机械也不利。
4、例子:
假设磁盘访问序列:98,183,37,122,14,124,65,67。读写头起始位置:53。求:磁头服务序列和磁头移动总距离(道数)。
由题意和先来先服务算法的思想,得到下图所示的磁头移动轨迹。由此:下面补充。
磁头服务序列为:98,183,37,122,14,124,65,67
磁头移动总距离=(98-53)+(183-98)+|37-183|+(122-37)+|14-122|+(124-14)+|65-124|+(67-65)=640(磁道)
(二)最短寻道时间优先算法(SSTF)
1、算法思想:优先选择距当前磁头最近的访
问请求进行服务,主要考虑寻道优先。
2、优点:改善了磁盘平均服务时间。
3、缺点:造成某些访问请求长期等待得不到服务。
4、例子:对上例的磁盘访问序列,可得磁头
移动的轨迹如下图
(三) 扫描算法(电梯算法)(SCAN)
1、算法思想:当设备无访问请求时,磁头不动;当有访问请求时,磁头按一个方向移动,在移动过程中对遇到的访问
请求进行服务,然后判断该方向上是否还有访问请求,如果有则继续扫描;否则改变移动方向,并为经过的访问请求服务,如此反复。如下图所示:下面补充。
2、优点:克服了最短寻道优先的缺点,既考虑了距离,同时又考虑了方向。
3、 例子:
4、循环扫描算法(CSCAN)
循环扫描算法是对扫描算法的改进。如果对磁道的访问请求是均匀分布的,当磁头到达磁盘的一端,并反向运动时落在磁头之后的访问请求相对较少。
这是由于这些磁道刚被处理,而磁盘另一端的请求密度相当高,且这些访问请求等待的时间较长,为了解决这种情况,循环扫描算法规定磁头单向移动。
例如,只自里向外移动,当磁头移到最外的被访问磁道时,磁头立即返回到最里的欲访磁道,即将最小磁道号紧接着最大磁道号构成循环,进行扫描。
5. 采用寻道时间最短时间优先算法。按照磁道序号的大小排序,然后找到磁头的位置,然后寻找距离磁头最近的磁道,
然后计算他的移动磁道数,同理计算,最后得到结果就是答案。162道。(理解为磁道差的绝对值)
地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断。
当发生缺页中断时,如果操作系统内存中没有空闲页面,则操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。
而用来选择淘汰哪一页的规则叫做页面置换算法。
常用算法有:
1.最佳置换算法(OPT)(理想置换算法)。
从主存中移出永远不再需要的页面;如无这样的页面存在,则选择最长时间不需要访问的页面。
于所选择的被淘汰页面将是以后永不使用的,或者是在最长时间内不再被访问的页面,这样可以保证获得最低的缺页率。
2.先进先出置换算法(FIFO)。
是最简单的页面置换算法。这种算法的基本思想是:当需要淘汰一个页面时,总是选择驻留主存时间
最长的页面进行淘汰,即先进入主存的页面先淘汰。其理由是:最早调入主存的页面不再被使用的可能性最大。
3.最近最久未使用(LRU)算法。
这种算法的基本思想是:利用局部性原理,根据一个作业在执行过程中过去的页面访问历史来推测未来的行为。
它认为过去一段时间里不曾被访问过的页面,在最近的将来可能也不会再被访问。所以,这种算法的实质是:当需要淘汰一个页面时,
总是选择在最近一段时间内最久不用的页面予以淘汰。
4. 时钟(CLOCK)置换算法。
LRU算法的性能接近于OPT,但是实现起来比较困难,且开销大;FIFO算法实现简单,但性能差。
所以操作系统的设计者尝试了很多算法,试图用比较小的开销接近LRU的性能,这类算法都是CLOCK算法的变体。
缺页率 = (页面置换次数+分配给该进程的物理块数)/要访问的页面总数
第六题思路:
首先,排出每次页面置换的情况。
注意:物理块没有用满的情况下也是属于页面缺页。
然后计算页面被置换出来的次数。要求使用FiFO算法,即是先进的先淘汰。得出淘汰率是75%和83%。
同理得第七题答案是10次中断
#### 解答第八九题
第八题: 系统同时存在n个进程,处于等待的进程最多可有n个。原理:所有的进程都可以等待一个外部设备。(如键盘输入)
第九题:
当一个拥有n个进程的系统出现死锁时,死锁进程个数k可满足的条件是1
#### 文件逻辑结构:
字节流式文件。读写的基本单位是字节。
记录式文件。数据的集合,读写的基本单位是逻辑记录。记录本身又有等长和变长之分。
#### 访问方式:
顺序访问。从文件的初始位置开始访问。类似C语言的文件读取操作,会有一个指针一直向下读取。
对于流式文件,操作方式一致,读取的字节长度是字节的整数倍为长度。读完就将指针指向下个位置。
直接访问。指用户随机访问文件中的某个信息。文件被允许随机读写读/写任意的记录(或逻辑字节)。
对于流文件,允许读/写以任意长度的数据。
####文件在辅存的存放方法:
顺序结构
链接结构
索引结构
对应参考顺序表,链表,list
###习题理解
第十题D随机存取。
知识补充:
周转时间 = 结束时间-到达时间。
平均周转时间 = 周转时间和/作业数。
加权周转时间 = 周转时间/作业时间。
加权平均周转时间 = 加权周转时间和/作业数。
1. 思路:
因为售票厅的容纳量是10,所以信号量的初值大小定义为10。
信号量各种取值的含义:
当0<S≤10时,允许厅外的购票者进入;
当S=0时,厅内已有10人,欲购票者暂不能进入;
当S<0时,|S|表示等待进入者的人数。
pv操作实现伪代码
pi(i = 1, 2...){
p(s);
进入售票厅;
购票;
退出;
v(s);
}
其中信号量的变化范围为
最大值: 10
最小值: n-10
原理范围表示了进程可以进行的最大并发量和最大阻塞进程数,所以最小值是等待进程数的负数。
int s = 1, s1 = 0, s2 = 0;
main(void){
father();
son();
daughter();
}
father(){
while(1){
p(s);
将水果放进盘子;
if(是苹果){
v(s0)
} else {
v(s1)
}
}
}
daughter(){
while(1){
p(s2);
去苹果;
v(s);
吃苹果;
}
}
son(){
while(1){
p(s1);
取桔子;
v(s);
吃桔子;
}
}
作业号 | 到达时间 | 结束时间 | 周转时间 | 带权周转时间 |
---|---|---|---|---|
1 | 10.00 | 12.00 | 2 | 1 |
4 | 10.50 | 12.30 | 1.8 | 6 |
3 | 10.40 | 12.80 | 2.40 | 4.8 |
2 | 10.20 | 13.80 | 3.60 | 3.6 |
死锁的四个必要条件
线性资源分配算法:
给系统的资源进行标号,然后每次申请资源必须一次性申请完。按照进程顺序进行执行。但是这样就破坏了环路条件。
系统安全状态法:
即在系统分配资源之前,就应该检测此次资源分配的安全性,如果此次分配资源会导致进程进入不安全状态,那就等待,如果不会,则分配资源。
银行家算法:
四个条件:
4.思路
如5-4-3-2-1.
在此时刻不能给p5分配如此量的资源,就不能再找到一条安全序列。会造成系统死锁。
5.思路
顺序执行时,注意各种设备间是独立的。
所以总时间是32+8+5+21+14+35+12+32+15=174秒。
按ABC执行需117s,按ACB执行需126s,按BAC执行需112s,按BCA执行需90s,
按CAB执行 114s,按CBA执行需99s。
习题原题链接>https://download.csdn.net/download/mathew_leung/10903615