第一套

填空

go-sdk.zip
填空题:

  1. 进程是一个 动态 的概念,而程序是一个 静态 的概念。
  2. 在分时操作系统中进程调度经常采用 时间片轮转 算法,
  3. 设备的独立性是指 应用于程序独立于实际使用的物理设备
  4. 信箱通信是一种 间接 通信的方式。

判断题

1、多道程序设定并没有实现利用CPU或者通道进行工作来提
高系统的效率 (X)
2、银行家算法是一种检测死锁的算法 (X) 一种死锁避免算法
3、页是信息的物理单位,段是信息的逻辑单位 (√)
4、缺页中断与一般中断没有区别 (X)
5、系统调用是由操作系统提供的内部调用,它只能通过用户
程序间接使用 (√)

简答

简答题:

1、说明进程的三个基本状态之间的转换的典型原因是什么?

(1)处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程就由就绪状态变为执行状态。

(2)正在执行的进程因发生某事件而无法执行,如暂时无法取得所需资源,则由执行状态转变为阻塞状态。

(3)正在执行的进程,如因时间片用完或被高优先级的进程抢占处理机而被暂停执行,该进程便由执行状态转变为就绪状态。

image-20240104165506879

​ (1)就绪状态→执行状态:进程分配到cpu资源

​ (2)执行状态→就绪状态:时间片用完

​ (3)执行状态→阻塞状态:i/o请求

​ (4)阻塞状态→就绪状态:i/o完成

2、什么是零界区?进程进入临界区应该遵循的准则是什么?

答:每个进程中访问临界资源的那段程序称为临界区(临界资源是一次仅允许一个进程使用

的共享资源)。每次只准许一个进程进入临界区,进入后不允许其他进程进入。

​ 2>、进程进入临界区的调度原则是:

​ ①如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。

​ ②任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所

有试图进入临界区的进程必须等待。

​ ③进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。

​ ④如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。

计算

一.分页

1、在一个请求分页系统中,一个长度为5页的进程。假如系统为它分配三个物理块,并且此进程的页面走向2,3,2,1,5,2,4,5,3,2,5,2,试用FIFO和LRU两种算法分别计算出程序访问过程中所发生的缺页次数。

fifo:

2 3 2 1 5 2 4 5 3 2 5 2 第1页

2 2 2 2 5 5 5 5 3 3 3 3 第2页

3 3 3 3 2 2 2 2 2 5 5 第3页

1 1 1 4 4 4 4 4 2 f f f f f f f f f

缺页中断次数 = 9

image-20240104203534931

lur: 2 3 2 1 5 2 4 5 3 2 5 2 第1页

2 2 2 2 2 2 2 2 3 3 3 3 第2页

3 3 3 5 5 5 5 5 5 5 5 第3页

1 1 1 4 4 4 2 2 2 f f f f f f f

缺页中断次数 = 7

image-20240104203549398

二. 非抢占式短进程

2、有五个进程(表格:到达时间、执行时间)需要调度执
行,如果采用非抢占式短进程调度算法,问这5个进程的平均周转时间
是多少?

表格

进程到达时间执行时间
P10.09
P20.44
P31.01
P45.54
p572

image-20240104165302190

image-20240104165436408

三. 水果

3 . 桌上有个能盛得下1个水果的空盘子。爸爸不停地向盘中放苹果,妈妈不停地向盘中放桔子,儿子不停地从盘中取出桔子享用,女儿不停地从盘中取出苹果享用。试用pv原语实现妈妈、爸爸、儿子和女儿进程之间的同步。

empty=1,apple=0,orange=0,mutex=1;
/*empty表示盘子的剩余量。mutex:是互斥信号,即同一时刻只有一个人能进行放或吃的操作*/

void parent(){
    while(1){
        p(empty);
        p(mutex);
        /放水果;
        v(mutex);
        if(放苹果){
            v(apple);
        }
        if(放橙子){
            v(orange);
        }
    }
}

void son(){
    while(1){
        p(orange);
        p(mutex);
        //吃橙子;
        v(mutex);
        v(empty);
    }
}

void daughter(){
    while(1){
        p(apple);
        p(mutex);
        //吃苹果;
        v(mutex);
        v(empty);
    }
}

第二套

填空

1、系统感知进程存在的唯一标志是 进程控制块(pcb) ;系统感知作业存在的唯一标志 JCB ; 系统感知线程存在的唯一标识为 TCB

2、线程之所以能减少并发执行的开销是因为 线程基本不拥有资源

3、虚拟存储器中仅当系统允许将作业分多次调入内存中并实现将内存中暂时不运行的程序和数据换至台上,而多次性和 对换性 特征必须建立在 离散分配 的基础上。

判断

1、实时系统高度可靠和安全还必须要求资源利用率高且吞吐量 (X)不要求资源利用率

2、两次打开word什么处理程序编辑同一篇因为程序一样,数据一样,所以系统中运行的这两个word是处于同一个进程的,两次打开word是同一个进程。(X)

3、死锁状态中一定有两个或者两个以上的进程,但饥饿状态不一定(X)

4、pv操作是不可以被中断的原语操作(√)

5、DOS系统可能出现死锁现象 (√) 不清楚

image-20240104203349525

简答

1、什么是进程?进程的基本特征是什么?

进程是程序的一次执行过程

进程是一个程序及其数据在处理机上顺序执行时所发生的活动,是程序的一次执行.

进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位.

它的基本特征是: 动态性、并发性、独立性、异步性、结构性

2、对于一个将页表存放在内存中的分页系统:

​ (1)若是访问内存需要0.2微秒,有效访问时间为多少?

有效访问时间2*0.2=0.4us

​ (2)若是加一个快表且假定在快表中找到页表上的机遇高达百分之九十,则有效访问时间为多少?

有效访问时间0.90.2+(1-0.9)2*0.2=0.22us

​ (3)假定查快表时间需要为0.05微秒,有效访问时间为?

由于CPU以及块表本身耗用的时间没有给出,所以坚定这些时间可以忽略不计;

计算

一 . 围棋 伪代码

1 . 生产围棋的工人不小心把相等数量的黑子和白子混装载一个箱子里,现要用自动分拣系统把黑子和白子分开,该系统由两个并发执行的进程组成,功能如下:

​ ( 1 ) . 进程A专门捡黑子,进程B专门捡白子,每个进程每次只捡一个子。当一个进程在捡子时,不允许另一个进程捡子。用信号量操纵来实现一和二的要求

​ ( 2 ) . 在上一题的基础上再添加一个功能,当一个进程捡一个

棋子以后,必让另一个进程捡一个棋子,用信号量实现。

解法一 :

​ 解答:可以设置两个信号量S1和S2来协调进程P1和P2之间的同步。此外,由于不存在进程P1和进程P2之间同时取子的竞争问题,因此不必设置互斥信号量,如图3-3 所示。

若先让进程P1捡白子,则信号量S1value和S2.value的初值分别为1和0。两并发进程相应的程序如下。

Semaphore S1,S2; 

S1.value=1;

S2.value=0; 

cobegin 
process P1() {
​    while(白子不空) {
​        P(S1); 捡白子; 
​        V(S2); 
​    }
} 

process P2() {
​    while(黑子不空) {
​        P(S2); 捡黑子;
​        V(S1); 
​    } 
} 

coend

解法二 :

第一步:确定进程间的关系。由功能(1)(2)(3)可知,进程间的关系为 同步 关系。

第二步:确定信号量及其值。进程 A 和 B 共享箱子这个公有资源,但规定两个进程必须轮流去取不同色的棋子,因而相互间要互通消息。对于进程 A 可设置一个私有信号量 s1,该私有信号量用于判断进程 A 是否能去拣黑子,初值为 1。对于进程 B 同样设置一个私有信号量 s2 ,该私有信号量用于判断进程 B 是否能去拣白子,初值为 0 。当然你也可以设置 s1 初值为 0 ,s2 初值为 1。

begin
  s1,s2: semaphore;
  s1:=1;s2:=0;
  cobegin
   process A
   begin
   L1: P(s1);
    拣黑子;
    V(s2);
    goto L1;
   end;
   process B
   begin
   L2: P(s2);
    拣白子;
    V(s1);
    goto L2;
   end;
  coend;
 end;

二. 五个集合

3、假设具有五个集合P(P0、P1、P2、P3、P4),有三类资源A B C,假设在某时刻有如下的状态:

请问当前系统是否处于安全状态?

eg:类似

image-20240104200528515

题目一:(找到相似的)

​ 假设具有5个进程的集合p={p0,p1,p2,p3,p4},系统中有三类资源a、b、c,假设在某时刻有下图所示的资源分配状态.

allocation abc max abc available abc p0 003 004 140 p1 100 175 p2 135 235 p3 002 064 p4 001 065 请问当前系统是否处于安全状态,如果系统中可利用资源available为 (0,6,2) ,系统是否安全,如果系统处于安全状态,请给出安全序列;如果系统处于非安全状态,请简要说明原因

​ 解答

image-20240104202434273

​ 该状态是安全的 (2分),

​ 系统中存在一个安全序列序列 p2,p1,p0,p3,p4 (3分)

​ 如果系统中可利用资源available为(0,6,2),此时系统处于非安全状态(2分)

​ 银行家算法的工作过程p3需要资源(0,6,2),可以满足,执行完成;

​ 可利用资源available为(0,6,4),p3进程可以满足,执行完成,可利用资源available为(0,6,5),p0进程可以执行完成,可利用资源available为(0,6,8),p2及p1进程都不能被满足,无法执行.(分析3分)

三.分页

上套题

最后修改:2024 年 08 月 27 日
如果觉得我的文章对你有用,请随意赞赏