操作系统原理1-3章答案 黑新宏 胡元义主编

article/2025/10/14 22:00:25

在这里插入图片描述

第1章引论
一、单项选择题
1.A 2. C 3. D 4. A 5.A 6. C 7. C 8. D 9. C 10.C
11. D 12.A 13.C 14.D 15.D 16.C 17.D 18.C 19.B 20.C
21.D 22.D 23.C 24.B 25.C 26.B

二、判断题
1.错误 2. 错误 3.错误 4. 错误 5.错误 6.错误 7.正确 8.错误 9.错误 10.错误
11.正确 12.错误 13.正确 14.错误 15.错误 16.正确 17.错误 18.错误 19.正确
20.正确 21.正确

第2章处理器管理
一、单项选择题
1.D 2. A 3.A 4. C 5.C 6. C 7. A 8. C 9. B 10.C
11. C 12.D 13.A 14.A 15.D 16.A 17.B 18.B 19.B 20.A
21.A 22.B 23.D 24.B 25.C 26.C 27.C 28.C 29.D 30.B
31.D 32.B 33.C 34.C D 35.B 36.A
二、判断题
1.错误 2. 错误 3.错误 4. 错误 5.错误 6.错误 7. 错误8.正确 9.错误 10.错误
11. 错误12.正确13. 错误14.错误 15.错误 16. 错误 17. 正确 18.错误 19.错误 20.错误
四、应用题
2. 由于短作业优先调度算法使得系统平均响应时间最短:
(1)当0<x<=3时应采用的运算次序为x,3,5,6,9
(2)当3<x<=5时应采用的运算次序为3,x, 5,6,9
(3)当5<x<=6时应采用的运算次序为3,5,x,6,9
(4)当6<x<=9时应采用的运算次序为3,5,6,x,9
(5)当9<x时应采用的运算次序为3,5,6, 9 ,x
3.
(1)采用先来先服务调度算法的作业运行情况:
作业执行次序 提交时间 运行时间 等待时间 开始时间 完成时间 周转时间 带权周转时间
1 8.0 1.0 0 8.0 9.0 1.0 1.0
2 8.5 0.5 0.5 9.0 9.5 1.0 2.0
3 9.0 0.2 0.5 9.5 9.7 0.7 3.5
4 9.1 0.1 0.6 9.7 9.8 0.7 7.0
作业平均周转时间 T=(1.0+1.0+0.7+0.7)/4=0.85
作业平均带权周转时间 W=(1.0+2.0+3.5+7.0)/4=3.375

(2)采用短作业优先调度算法的作业运行情况:
作业执行次序 提交时间 运行时间 等待时间 开始时间 完成时间 周转时间 带权周转时间
1 8.0 1.0 0 8.0 9.0 1.0 1.0
2 9.0 0.2 0 9.0 9.2 0.2 1.0
3 9.1 0.1 0.1 9.2 9.3 0.2 2.0
4 8.5 0.5 0.8 9.3 9.8 1.3 2.6
作业平均周转时间 T=(1.0+0.2+0.2+1.3)/4=0.675
作业平均带权周转时间 W=(1.0+1.0+2.0+2.6)/4=1.65

(3)采用高相应比优先算法的作业运行情况:
作业执行次序 提交时间 运行时间 等待时间 开始时间 完成时间 周转时间 带权周转时间
1 8.0 1.0 0 8.0 9.0 1.0 1.0
2 8.5 0.5 0.5 9.0 9.5 1.0 2.0
3 9.1 0.1 0.4 9.5 9.6 0.5 5.0
4 9.0 0.2 0.6 9.6 9.8 0.8 4.6
作业平均周转时间 T=(1.0+1.0+0.5+0.8)/4=0.825
作业平均带权周转时间 W=(1.0+2.0+5.0+4.0)/4=3

采用先来先服务调度算法作业运行情况
作业次序 提交时间 运行时间 等待时间 开始时间 完成时间 周转时间
1 0.0 8.0 0.0 0.0 8.0 8.0
2 0.4 4.0 7.6 8.0 12.0 11.6
3 1.0 1.0 11.0 12.0 13.0 12.0
作业平均周转时间 (8.0+11.6+12.0)/3=10.53

采用短作业优先调度算法作业运行情况
作业次序 提交时间 运行时间 等待时间 开始时间 完成时间 周转时间
1 0.0 8.0 0.0 0.0 8.0 8.0
2 1.0 1.0 7.0 8.0 9.0 8.0
3 0.4 4.0 8.6 9.0 13.0 12.6
作业平均周转时间 (8.0+8.0+12.6)/3=9.53

作业1达到后暂不投入运行,待3个作业到齐后再按短作业优先算法调度执行。
推迟的短作业优先调度算法作业运行情况
作业次序 提交时间 运行时间 等待时间 开始时间 完成时间 周转时间
3 1.0 1.0 0.0 1.0 2.0 1.0
2 0.4 4.0 1.6 2.0 6.0 5.6
1 0.0 8.0 6.0 6.0 14.0 14.0
作业平均周转时间 (1.0+5.6+14.0)/3=6.87

在这里插入图片描述
1)J1从开始到运行完成需要80ms,J2从开始到运行完成需要90ms,J3从开始到运行完成需要90ms.
(2)CPU利用率=CPU有效工作时间/(CPU有效工作时间+CPU空闲时间)
     =70/(70+20)=77.78%
(3)IO1利用率= IO1有效工作时间/(IO1有效工作时间+IO1空闲时间)
=70/(70+20)=77.78%

(1)每道作业的运行经历两级调度:作业调度和进程调度。作业调度采用短作业优先调度算法,进程调度采用基于优先数的抢占式调度算法,即高优先级进程可以抢占低优先级进程所占用的CPU。只有在作业调度程序将作业装入内存后才能参与进程调度,本题的批处理系统为两道作业系统,即内存中最多允许有两道作业。
10:00时,作业A到达并且投入运行;
10:20时,作业B达到且优先级高于作业A,所以进程调度程序调度作业B投入运行,作业A进入就绪队列;
10:30时,作业C到达,内存中已有两道作业,所以作业C进入作业后备队列中等待;
10:50时,作业B运行结束且作业D到达。按短作业优先调度策略,作业D被调入内存并进入就绪队列,而就绪队列中作业A的优先级高于作业D,所以进程调度程序调度作业A运行;
11:10时,作业A运行结束,作业C被调入内存进入就绪队列,因作业C的优先级高于作业D,所以进程调度程序调度作业C运行;
12:00时,作业C运行结束,进程调度程序调度作业D运行;
12:20时,作业D运行结束,此时就绪队列中无可调度执行的作业,即全部作业都运行结束。
(2)各作业执行的周转时间:
作业A:70分钟; 作业B:30分钟; 作业C:90分钟; 作业D:90分钟
作业的平均周转时间为:(70+30+90+90)/4=70分钟

第3章进程同步与通信
一、单项选择题

  1. D 2. D 3. D 4. C 5.D 6. D 7. C 8. C 9. C 10.D
  2. B 12.C 13.D 14.C 15.B 16.C 17.C 18.D 19.A 20.C
    21.C 22.D 23.C 24.C 25.C 26.B 27.A 28.D 29.B 30.D

二、判断题

  1. 正确 2. 错误 3.错误 4. 错误 5.正确6.错误 7.正确 8. 正确9. 正确10.错误
  2. 错误12.错误 13.正确 14.错误 15.错误 16.正确 17.错误

Semaphore mutex;
Mutex.value=100;
cobegin
process reader_i() / /i=1,2,3……
{
P(mutex);
进入阅览室;
阅读;
退出阅览室;
V(mutex);
}
Coend

进程P1 进程P2

P(S1) P(S2)

捡一白子 捡一黑子

V(S1) V(S2)

先让进程P1捡白子,则信号量S1.value 和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. R M P的同步关系用并发程序实现如下:
    Semaphore a,b,c;
    a.value=b.value=c.value=1;
    cobegin
    process R()
    {
    while (1)
    { P©;
    从输入设备读一个记录到缓冲区;
    V(a);
    }
    }

process M()
{
while (1)
{ P(a);
在缓冲区中加工读入的记录;
V(b);
}
}

process P()
{
while (1)
{ P(b);
打印加工后的记录;
V©;
}
}
coend

Semaphore fork1,fork2,knife1,knife2;
fork1.value=fork2.value=knife1.value=knife2lvalue=1;
cobegin
process P_i( ) //i=0,1,2,3
{
while(1)
{
讨论问题;
if (i0||i3) P(knife1)
else P(knife2);
if (i0||i1) P(fork1)
else P(fork2);
进餐;
if (i0||i3) V(knife1)
else V(knife2);
if (i0||i1) V(fork1)
else V(fork2);
}
}
coend

Semaphore keyboard,disk,mutex;
Keyboard.value=0, disk.value=0, mutex.value=1;
cobegin
process R1()
{
while (1)
{
P(mutex);
从键盘读数到缓冲区B;
V(keyboard);
}
}

process R2()
{
while (1)
{
P(mutex);
从键盘读数到缓冲区B;
V(disk);
}
}

process W1()
{
while (1)
{
P(keyboard);
从缓冲区B取出数据打印;
V(mutex);
}
}
process W2()
{
while (1)
{
P(disk);
从缓冲区B取出数据打印;
V(mutex);
}
}
Coend

Semaphore mutex, empty, apple,orange;
mutex.value=1, empty.value=2, apple.value=orange.value=0;
cobegin
process father()
{
while(1)
{
P(empty);
P(mutex);
向盘中放苹果;
V(mutex);
V(apple);
}
}

process mother()
{
……
}

process daughter_i()
{
while(1)
{
P(apple);
P(mutex);
取盘中苹果;
V(mutex);
V(empty);
吃苹果;
}
}

process son_i()
{
……
}

Coend


http://chatgpt.dhexx.cn/article/VAv2r3OW.shtml

相关文章

操作系统原理:文件系统、磁盘调度

目录 一、相关概念 二、文件的分配 三、空闲空间列表 四、多磁盘管理-RAID 五、磁盘调度 一、相关概念 文件系统是一种用于持久性存储的系统抽象。硬盘属于持久性存储介质的一种。管理文件系统例如硬盘&#xff0c;需要管理文件块&#xff0c;哪一块属于哪一…

Linux的操作系统原理详解

Linux的操作系统原理详解 ///插播一条&#xff1a;我自己在今年年初录制了一套还比较系统的入门单片机教程&#xff0c;想要的同学找我拿/// 1.操作系统基本概念 操作系统是一个基本程序的集合&#xff0c;在这个集合中&#xff0c;最重要的程序称为内核&#xff08;Kernel&a…

操作系统原理

操作系统原理 第一章第二章第三章第四章第五章第六章总结 第一章 计算机系统组成部分&#xff1a; 硬件 应用程序 操作系统 用户操作系统的作用&#xff1a; 1.操作系统是管理计算机硬件的程序&#xff0c;为应用程序提供基础并充当计算机用户和计算机硬件的中介。 2.操作系统…

操作系统基本原理

操作系统的类型与结构 操作系统是计算机系统中最基本的系统软件&#xff0c;它既管理计算机系统的软、硬件资源&#xff0c;又控制程序的执行。操作系统的基本类型有&#xff1a;批处理操作系统、分时操作系统和实时操作系统。从资源管理的角度看&#xff0c;操作系统主要是对处…

操作系统原理(概述)

1.操作系统的工作&#xff1a; &#xff08;1&#xff09;程序的执行&#xff1a;负责启动每个程序&#xff0c;以及结束程序的工作。 &#xff08;2&#xff09;完成与硬件有关的工作&#xff1a;实现代码中包含存储器的物理地址、对设备接口寄存器和设备接口缓冲区的读写等…

Unity UGUi之Panel

Unity UGUI之Panel制作滑块 新建一个Panel和一个Image&#xff0c;image放在Panel下做子物体。 给Panel添加 Scroll Rect 和 Mask 组件, Mask组件是用来隐藏image超出Panel的区域。 然后将image拖拽到Scroll Rect组件下的Content属性上。 Horizontal是水平滑动&#xff0c;…

winform 设置panel边框

var panel1 new Panel(); var old panel1.Margin; panel1.Margin new Padding(old.Left, -50, old.Right, old.Bottom);

EasyUI中Panel面板的简单使用

场景 效果 属性 名称类型描述默认值idstring面板&#xff08;panel&#xff09;的 id 属性。nulltitlestring显示在面板&#xff08;panel&#xff09;头部的标题文字。nulliconClsstring在面板&#xff08;panel&#xff09;里显示一个 16x16 图标的 CSS class。nullwidthnu…

[C# WinForm设计]Panel布局及TabControl增加关闭按钮和Treeview导航 源码

前段时间因工作需要做一个类似进销存的系统&#xff0c;这里要用到基于C/S架构的WinForm界面&#xff0c;为了给我一样的菜鸟多一个参考&#xff0c;现将过程及关键界面的实现代码贴在后面&#xff0c;供参考&#xff01;老鸟飘过~~ 一、实现效果 演示 namespace TabTest {part…

C#Winform中如何将窗体显示在panel中

在窗体中我们有时候做美观就需要将一个窗体显示在panel或SplitContainer里的panel中如何实现呢&#xff1f; 代码&#xff1a; public void Showform(Form form) //定义方法 { //清除panel里面的其他窗体 this.splitContainer1.Panel2&#xff1a;要显示的panel this.splitCont…

从零开始学习CANoe(四)—— 设计panel

相关文章 从零开始学习CANoe&#xff08;一&#xff09;—— 新建工程从零开始学习CANoe&#xff08;二&#xff09;—— CANdb 创建 dbc文件从零开始学习CANoe&#xff08;三&#xff09;—— 系统变量的创建和使用从零开始学习CANoe&#xff08;四&#xff09;—— 设计pane…

winform无边框在panel上拖动窗口位置,改变窗口大小

将窗体的FormBorderStyles属性设置为None 窗体上放一个新的panel&#xff0c;设置Dock属性为Fill 创建变量 private bool isMouseDown false;//表示鼠标当前是否处于按下状态&#xff0c;初始值为否 MouseDirection direction MouseDirection.None;//表示拖动的方向&#x…

C# Winform Panel 内控件大小不随Panel大小改变设置

&#xff08;1&#xff09;将Anchor属性设置为&#xff1a;None &#xff08;2&#xff09;将AutoSize属性设置为&#xff1a;False 不过还存在一个问题点&#xff0c;就是Button的位置还是会随着Panel大小变化而改变。

Panel控件

今天小编来给大家介绍一下panel控件&#xff1b; 首先来看一下panel控件是什么? 是什么&#xff1a; Panel 控件提供了一种用于组织控件的分组机制。Panel 控件可被递归嵌套在 Form 控件&#xff08;Panel 控件最外面的容器&#xff09;中。面板呈现它本身包含的控件。 面板上…

UI的Panel面板

1.Panel panel控件又叫面板&#xff0c;该面板实际就是一个容器&#xff0c;在其上可放置其他UI控件 当移动该面板时&#xff0c;放在其中的UI控件会随着移动&#xff0c;这样更加合理与方便地移动与处理一组控件 当面板被创建时&#xff0c;会默认包含一个Image(Script) Sour…

Unity Panel 控件

Panel 容器组件又叫面板组件&#xff0c;实际上就是一个容器&#xff0c;在其中可以放置其他的UI元素。 注意&#xff0c;在Unity中&#xff0c;子物体的位置是相对于父物体的&#xff0c;而非绝对位置 在Panel的参数区中&#xff0c;除了空间位置这个常用参数外&#xff0c;我…

Linux系统之部署Linux管理面板1Panel

Linux系统之部署Linux管理面板1Panel 一、1Panel介绍1.1Panel简介2.1Panel特点 二、本地环境规划1.本此实践目的2.本地环境规划 三、检查本地环境1.检查操作系统版本2.检查系统内核版本 四、部署1Panel1.创建安装目录2.一键部署1Panel3.检查1Panel服务运行状态4.检查1Panel监听…

javasocket编程(javasocket通信)

Java网络编程&#xff0d;JavaSocket编程是什么呢&#xff1f; Socket传输模式 Sockets有两种主要的操作方式&#xff1a;面向连接的和无连接的。面向连接的sockets操作就像一部电话&#xff0c;他们必须建立一个连接和一人呼叫。所有的事情在到达时的顺序与它们出发时的顺序时…

(Android)JavaSocket编程,文件上传到服务器,客户端Android,服务器端J2SE

SD卡中有encrypt.png文件 在E盘可以看到&#xff0c;从模拟器SD卡中发送来的文件 服务器端代码&#xff0c;我这里是使用CMD命令演示的。服务端等待客户端连接&#xff0c;然后接收客户端的数据。包括文件名&#xff0c;大小&#xff0c;和文件数据。 import java.io.Buffered…

Java Socket实现文件传输

阿里云双11服务器优惠&#xff08;年度最佳优惠&#xff09;&#xff1a; A&#xff1a;1核2GB 1M 服务器年69元 B&#xff1a;1核2GB 1M 服务器三年180元 C&#xff1a;2核4GB 1~10M 服务器三年567元&#xff08;强烈推荐&#xff09; D&#xff1a;4核8GB 1~10M 服务器三年10…