【操作系统】研讨课

第一次

  1. 进程由程序段,数据段,PCB组成
  2. 操作系统是进行计算机软硬件资源管理,提供接口的应用软件(×)不是应用
  3. 脱机I/O:事先将装有用户程序和数据的纸带装入纸带输入机,在一台外围机的控制下,把纸带上的数据输入到磁带上。当CPU需要这些程序和数据时,再从磁带上高速地调入内存。
  4. 操作系统的特性:并发,虚拟,异步,共享
  5. 单道批处理:
    一批作业以脱机的方式输入到磁带上,在监督程序的控制下使作业一个接一个地连续处理
  6. 进程和程序区别:
    (1)进程是程序的一次执行
    (2)进程是暂时的,程序是永恒的
    (3)一段进程可以包含几段程序,一段程序可以对应多个进程
  7. 几种操作系统类型:
  8. 微内核:
  9. 进程的特征:动态性,独立性,并发性,异步性
  10. 操作系统提供的接口:
  11. 并发是操作系统的特性之一,为此引入进程
  12. 设有两道程序按A,B的优先次序运行,其内部计算和I/O操作如下:
    A使用30ms CPU,后使用40ms I/O,最后用CPU 20ms
    B使用60ms CPU,后使用20ms I/O,最后用CPU 30ms
    计算两道程序多道共花费多少时间,比单道运行节省多少时间
    单道:30+40+20+60+20+30=200ms
    多道:30+60+20+30=140ms
  13. n个进程的并发系统,处于三态的最少,最多
    就绪:max:n-1(肯定有一个占用CPU其他才会就绪),min:0
    运行:max:1,min:0
    阻塞:max:n(全阻塞),min:0

第二次

  1. 退出区作用:将已访问标志恢复为未被访问
  2. 同步准则:空闲让进,忙则等待,有限等待,让权等待
  3. 为某临界资源设一把锁W ,W=1锁关,W=0锁开,写开锁和关锁的原语,实现互斥
原语:
lock(W)
{
	while(W==1);
	W=1;
}
unlock(W)
{
	W=0;
}
int f(int W)
{
  int old;
  f(W=0)
  lock
  old=W
  return old;
}
  1. 创建进程步骤:
    (1)申请空白PCB
    (2)为新进程分配所需资源(物理+逻辑)
    (3)初始化PCB
    (4)加入就绪队列
  2. my pid is 3135,my father’s pid is 3062
    3136 3135
    3138 3135
    …简单的

第三次

  1. 试举例说明并发进程访问临界资源,在没有互斥条件下所产生的不可再现性
    消费者和生产者的共享变量冲突
    每个进程三条语句,两个并发在这里插入图片描述
  2. TS互斥
    在这里插入图片描述
    old反映资源的状态,FALSE空闲,搞成忙碌,返回开始状态
    在这里插入图片描述
    while 循环,TRUE则一直循环,FALSE跳出循环(空闲),进入临界区
    Swap
    在这里插入图片描述
  3. 这种定义下填空:
    改变TS原语
    在这里插入图片描述
    F为忙碌
    T为空闲
S=T
while(TS(S)!=T);
S=T;
  1. 信号量=1——空闲,信号量=0——忙碌,信号量=-n——有n个阻塞???
  2. 打印机,非共享数据,共享缓存,哪个不是临界资源(非共享数据)
  3. 甲乙丙丁,水果盘,甲可放梨子,乙放苹果,不同时,丙吃梨子,丁吃苹果,空则等待
semaphore A=1,B=0,C=0
甲:
{
	 P(A);
	put pear;
	V(B);
}while(TRUE)
乙:
{
	 P(A);
	put apple;
	V(C);
}while(TRUE)
丙:
{
	P(B);
	eat pear;
	V(A);
}while(TRUE)
丁:
{
	P(C);
	eat apple;
	V(A);
}while(TRUE)

丙想吃,甲放
丁想吃,乙放

semaphore A=1,B=0,C=0,D=0,E=0;
甲:
{
	P(D);P(A);
	put pear;
	V(B);
}while(TRUE)
乙:
{
	P(E);P(A);
	put apple;
	V(C);
}while(TRUE)
丙:
{
	V(D);
	P(B);
	eat pear;
	V(A);
}while(TRUE)
丁:
{
	V(E);
	P(C);
	eat apple;
	V(A);
}while(TRUE)

第四次

  1. 有n个进程公用一个程序段,每次最多允许m个进程进入临界区,求信号量的初值——m
  2. 临界区是 C //访问临界资源的代码
    一段缓冲区
    一段共享数据
    一段程序
    一段互斥资源
  3. 一个进程因在互斥信号量S上执行V(S)操作唤醒另一个进程时,S值<=0
  4. input,compute,output共享一buf,input每输入数据共compute计算,output打印m
    在这里插入图片描述
    V(Sc) P(Sb) P(Sd) V(Sd)

第五次

  1. 请求送烟送火
semaphore a=0,b=0,c=0,d=0
送烟,送货,用烟,用火
do{
P(a)
送烟
V(c)
}while(TRUE)

do{
P(b)
送烟
V(d)
}while(TRUE)

do{
V(a)
V(b)
P(c)
P(d)
}while(TRUE)
  1. 游戏厅有100个空位,进入登记,离开划掉,没有座位要等待
semaphore n=100,R=1
do{
P(n)
P(R)
register
V(R)
enter
P(R)
out
V(R)
V(n)
  1. 临界区进程不可中断吗——可以,临界区不是原语
  2. 哪些是临界资源 ABC
    打印机,共享缓冲区,共享变量,非共享数据
  3. PV操作与前驱图
    在这里插入图片描述
  4. P1P2
    P1
    m1=m2=0
n=1
n=n+2
V(m1)
O=n+1
P(m2)
n=O+n

P2

m=1
m=m+1
P(m1)
m=m+n
V(m2)
O=m+O

求O,m,n
O=9,m=5,n=7

第六次

  1. 调度的层次
    处理机调度的层次
    高级调度:作业一开始阶段——决定那几个作业调入内存——多道批处理系统
    低级调度:决定就绪队列中哪个进程应获得处理机——多道批处理、分时、实时都要有
    中级调度:提高内存利用率和系统吞吐量
  2. 三个作业A,B,C,按高响应比优先调度算法
P到达服务开始结束
A8:501.59:5411.24
B9:000.49:309:54
C9:30111:2412:24

全部到达后运算优先级
在这里插入图片描述
A的等待时间是9:30-8:50
B的等待时间是9:30-9:00

  1. 5,ABCDE,几乎同时到达,运行时间2,4,6,8,10,优先级1,2,3,4,5(最高),计算下列算法的平均周转T
    优先级,时间片(2), FIFO
P(FIFO)周转时间
A2
B6
C12
D20
E30

T=(2+6+12+20+30)/5=14

P(优先级)周转时间
A30
B28
C24
D18
E10

T=(10+18+24+28+30)/5=22

P(时间片)周转时间
A0-22
B0-4,10-1212
C0-6,10-14,18-2020
D0-8,10-16,18-22,24-2626
E0-10,10-18,18-24,24-28,28-3030

T=(2+12+20+26+30)/5
4. 2道批处理,作业SJF,进程优先级可抢占

作业到达运行优先级进入完成
A10:0040310:0011:10
B10:2030510:2010:50
C10:3050411:1012:00
D10:5020210:5012:20

B抢占了A,因为优先级高
两道批处理——内存中可以有两个作业
平均周转周期:70min
带权周转周期:2.2625

第七次

PV是第一道大题
百货公司,最多允许n人购物,一个收银员,用PV关系表示
P-1,(申请资源)V+1(释放资源) =0时禁止进入

semaphore Sn=n,S1=0,S2=0
顾客:
do{
P(Sn)//查看是否满了
V(S1) //唤醒服务员
缴费
P(S2) //查看是否缴费
V(Sn)//出门
}while(1)

收银员:

do{
P(S1)//查看是否缴费
缴费
V(S2)
}while(1)

第二道大题调度

P到达执行FCFS结束时间RR(t=2)结束时间RR(t=1)SJP结束时间
A033543
B1.0016913159
C4.001413151415
D6.001219111211

FCFS,RR(t=2),RR(t=1),SJP

死锁,银行家算法,程序题(哪些系统调用,程序结果)

两道解答题10分
选择20分
填空20分
判断20分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
讨论样题 1.下列页面置换算法说法正确的有(B)。 I先进先出(FIFO)会产生Belady现象。 II.最近最少使用(LRU)会产生Belady现象。 III.在进程运行时,若它的工作集页面都在虚拟存储器内,则能够使该进程有效地运行,否则会出现频繁的页面调入/调出现象。 IV.在进程运行时,若它的工作集页面都在主存储器内,则能够使该进程有效地运行,否则会出现频繁的页面调入/调出现象。 A.I、II B.I、IV C.II、III D.III、IV 2.在一个请求分页系统中,采用LRU页面置换算法时,加入一个作业的页面走向为: 1,3,2,1,1,3,5,1,3,2,1,5。当分配给该作业的物理块数分别为3和4时,在访问过程中所发生的缺页率为()。 A.25%, 33% B. 25%, 100% C.50%, 33% D.50%,, 75% 3.有一个矩阵为100x 200,即a[100][200]在一个虚拟系统中,采用LRU算法。系统分给该进程5个页面来存储数据(不包含程序),设每页可存放200个整数,该程序要对整个数组初始化,数组存储时是按行存放的。试计算下列两个程序各自的缺页次数(假定所有页都以请求方式调入)(B) 程序一: for(i=0;i<= 99;i++) for(j=0;j<= 199;j++) A[i][j]=i*j 程序二: for(j=0; j<= 199;j++) for(i=0; i<= 99; i++) A[i][j]=i*j A.100, 200 B.100, 20000 C.200,100 D. 20000,100 解:外层改变行,内层改变列 程序一:对于外层循环一次后,内层循环都是在一行内运转的,也就是一页内运转的。 程序二:内循环是在行之间运行的,内层循环一次,程序运行页面需要换一个。 5.假定有一个请求分页存储管理系统,测得系统个相关设备的利用率为CPU为10%,磁盘交换区为99.7%;其他I/O设备为5%。试问:下面(B)措施可能改进CPU的利用率? I. 增大内存的容量 II.增大磁盘交换区的容量 III.减少多道程序的度数 V.使用更快速的磁盘交换区 IV.增加多道程序的度数 VI:使用更快速的CPU A.I、II、III、IV B.I、III C.II、III、V D.II、VI 解:I正确:增大内存可使每个程序得到更多的页面,能减少缺页率,因而减少换入换出过程,可提高CPU的利用率。 II错误:增大磁盘交换区的容量。因为系统实际已处于频繁的换入换出过程中,不是因为磁盘交换区容量不够,因此增大磁盘交换区的容量无用。 III正确:减少多道程序的度数。可以提高CPU的利用率,因为从给定的条件中磁盘交换区的利用率为99.7%,说明系统现在已经处于频繁的换入换出过程中,可减少主存中的程序。 V错误:使用更快速的磁盘交换区。因为系统现在处于频繁的换入换出过程中,即使采用更快的磁盘交换区,其换入换出频率也不会改变,因此没用。 IV错误:增加多道程序的度数。系统处于频繁的换入换出过程中,再增加主存中的用户进程数,只能导致系统的换入换出更频繁,使性能更差。 VI错误:使用更快速的CPU。系统处于频繁的换入换出过程中,CPU处于空闲状态,利用率不高,提高CPU的速度无济于事。 6.一个页式虚拟存储系统,其并发进程数固定为4个。最近测试了它的CPU利用率和用于页面交换的利用率,假设得到的结果为下列选项,(C)说明系统需要增加进程并发数? I. CPU利用率13%;磁盘利用率97% II. CPU利用率97%;磁盘利用率3% III.CPU利用率13%;磁盘利用率3% A.I B.II C.III D.I、III 解:A.系统在抖动,增加并发进程数反而会恶化系统性能。 B.系统正常,不需要采取什么措施 C.CPU没有充分利用 10.考虑页面替换算法,系统有m个页帧供调度,初始时全空;引用串长度为p,包含了n个不同的页号,无论用什么算法,缺页次数不会少于(C)。 A. m B.p C.n D. min(m, n) 解:缺页次数不会少于页数,因为要调入内存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值