操作系统复习操作系统中的难点问题小结:操作系统需要解决的问题
操作系统所管理的各类资源的性质不同,但都需要解决以下几个问题:
有哪些资源,记录资源的使用情况
如何分配资源
如何有效调度,实现资源的共享和提高资源利用率
资源回收
资源的共享操作系统中的重点及难点问题多道批处理其它作业成批进入输入井 输出井单道批处理系统高速其它作业成批进入输出井多道批处理系统多道并发执行输入井理解为什么多道程序并发执行,能够提高系统效率,并发执行究竟是怎样的一种机制单道程序系统用户程序监督程序
I/O操作
I/O中断请求
I/O完成多道程序系统程序 A
程序 B
OS调度
I/O A
I/O B
t1
t1
t2
t2
程序 A和 B
都得到了推进,并发并行程序间并发执行
I1
P3
输入设备处理机打印机
t1 t2 t3 t4 t5
I2
C1
I3
C2
P1
C3
P2
由于多道程序中 IK,CJ与 PL之间不存在前趋关系,
程序之间可以并发执行并发执行后,系统效率提高并发执行后,系统效率提高多道程序并发执行的现象及不可再现的结果程序(间)并发执行的特征:
结果可再现
N = 5;
N = N +1;
print( N );
N = 0;Ia Ca Pb Ib
Ia
Pb Ib
打印输出
5
N的值
1
Ia
Ca
程序 a 程序 b
Ca
IbPb
6 0
多次执行结果不同,不可再现要解决系统不可再现问题,导致我们提出了进程的概念进程的状态转换新进程就绪 执行结束阻塞接纳进程调度中断或时间片用完完成
I/O请求或等待某事件
I/O完成或事件发生状态转换原因图万事具备,
只欠“东风”
CPU
获得 CPU
正在运行欠缺某些条件 进程的动态性就体现在进程的状态转换过程,该过程的控制与
PCB密切相关进程间的同步关系(一)
正常行车到站停车开车售票开车门关车门司机 售票员合作合作检查车况 维持秩序进程同步的最终目的就是控制进程之间并发执行的过程,以解决系统不可再现问题
相互合作时的进程同步
保证进程间的前驱、后继关系相互合作司机进程正常行车到站停车
V(停车)
喝茶
P(关车门)
正常行车售票
P(停车)
开车门关车门
V(关车门)
售票售票员进程同步点同步点V( s) P( s)
前驱 后继信号量初值为 0
获得打印数据进程间的同步关系(二)
打印进程 1 打印进程 2
打印 打印互斥获得打印数据资源竞争
经典进程同步问题
资源竞争时的进程同步
对竞争资源的互斥访问

P( s)
临界区
V( s)
进程 1 进程 2


P( s)
临界区
V( s)

P( s)
访问资源
V( s)
状态,状态:唤醒就绪 执行 就绪 执行 阻塞针对进程的两种基本同步关系,设计解决方案是同步算法的关键纪录型信号量的 P,V操作
P( s )
s.value = s.value - 1
s,value< 0?
本进程获得一个资源临界区 /资源访问区本进程进入 s.list
队列,进入阻塞状态
N
Y
V( s )
s.value = s.value+1
s,value<= 0?
将 s.list中第一个进程唤醒,
N
Y
除了理解 P,V操作对进程状态的影响外,
还要注意虚线内操作的原语性出了问题的队列操作
同时入队 进程 1 进程 2
newmsg1->next =
msglist->head;
msglist->head =
newmsg1;
msglist->head
newmsg1
newmsg2
队列操作过程需要互斥进行就绪 执行 就绪 执行
newmsg2->next =
msglist->head;
msglist->head =
newmsg2;
在同步问题中分析进程间的关系是关键,而对共享变量、队列的信号量抽象,是容易忽略的竞争关系死锁
死锁问题( dead lock)
例:
P( s1 )
P( s2 )
临界区
V( s2 )
V( s1 )
P( s2 )
P( s1 )
临界区
V( s1 )
V( s2 )
......
......,.....
......
进程 1 进程 2
就绪 就绪 执行执行 阻塞
s1
s2
阻塞状态,状态:
死锁装入时的地址变换
MOV ax,[2500]
365
0
1000
2500
10000
11000
12500
程序空间内存空间0
[12500]
12500 = 10000+2500
物理地址 基地址 相对地址地址空间和地址的转换是存储管理的核心问题分页存储的地址变换机构逻辑地址基地址
+ 物理地址相对地址页号 页内地址页表始址 页表大小页表寄存器( JT内容)
+
块号 块内地址物理地址寄存器有效地址寄存器
> 越界?
页号 块号 页表
10 1
0 100
100 1
100*4 + 1 = 401
设块大小为 4
页 /段表是离散存储管理的基础,
是地址转换的依据页面置换带来的抖动问题
页面置换带来的问题
抖动问题页面 内存页面置换时产生的系统抖动是系统策略 /算法恶化的一个典型示例。越复杂的系统,越复杂的算法,可能带来更多的开销、
更高几率产生抖动,因此算法的优化是提高系统性能的重要举措之一作业
什么是操作系统?
操作系统有哪些特征?
操作系统有哪些分类?
操作系统有哪些功能?
作业
什么是进程,为什么要引入进程这个概念?
请解释,PCB是进程在系统存在的唯一标识”,为什么这个唯一标识不是程序体或数据?
进程有哪些基本状态?有哪些状态转换过程?
进程和程序的区别?
作业
进程同步的主要关系有哪些?
进程同步的原则是什么,请分别解释
请用信号量描述计算进程向缓冲区写数据,
打印进程从缓冲区取出数据并打印的过程
进程间高级通信有哪些方式?
作业
死锁产生的必要条件是哪些?
作业
虚拟存储管理的虚拟性体现在什么地方?
苹果桔子问题桌上有 一只盘子,每次 只能放入一只水果 ;爸爸专向盘子中 放苹果 (apple),妈妈专向盘子中 放桔于 (orange),一个儿子专等 吃盘子中的桔子,一个女儿专等 吃盘子里的苹果信号量解决苹果桔子问题
plate,integer;
sp:semaphore; /* 盘子里可以放几个水果 */
sg1:semaphore; /* 盘子里有桔子 */
sg2:semaphore; /* 盘子里有苹果 */
cobegin
process father
begin
L1:削一个苹果 ;
把苹果放入 plate;
goto L1;
end;
process mother
begin
L2:剥一个桔子 ;
把桔子放入 plate;
goto L2;
end;
process son
begin
L3:
从 plate中取桔子;
吃桔子;
goto L3;
end;
process daughter
begin
L4:
从 plate中取苹果;
吃苹果;
goto L4;
end;
coend
P(sp);
V(sg2);
V(sp);
P(sg1);
P(sg2);
P(sp);
V(sg1);
V(sp);
sp,= 1; /* 盘子里允许放一个水果 */
Sg1,= 0; /* 盘子里没有桔子 */
sg2,= 0; /* 盘子里没有苹果 */