其他分享
首页 > 其他分享> > 【操作系统】研讨课

【操作系统】研讨课

作者:互联网

【操作系统】研讨课

第一次

  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分

标签:20,操作系统,30,临界,while,研讨,进程,TRUE
来源: https://blog.csdn.net/weixin_45709940/article/details/108991824