操作系统第六次作业

思考题:

  1. I/0设备可分为哪些类型?各类设备的物理特点是什么?

答案:

1 按照设备的使用特性分类:
1)存储设备

也称为外存或者后备存储器、辅助存储器,。是计算机系统用以存储信息的主要设备。该类设备存取速度较内存慢,但容量比内存大得多,相对价格也便宜。

2)输入输出设备

又具体可分为输入设备、输出设备和交互式式设备。输入设备用来接收外部信息,如键盘、鼠标、扫描仪、视频摄像、各类传感器等。输出设备是用于将计算机加工处理后的信息送向外部的设备,如打印机、绘图仪、显示器、数字视频显示设备、音响输出设备等。交互式设备则是集成上述两类设备,利用输入设备接收用户命令信息,并通过输出设备同步显示用户命令以及命令执行的结果。

2 按照传输速率分类
按照传输速度的高低,可将IO设备分为三类。
1)低速设备

传输速率为每秒钟几个字节至数百个字节的一类设备。属于低速设备的典型设备有键盘、鼠标器、语音的输出和输出等。

2)中速设备

这是指其传输速率在每秒钟数千个字节至数万个字节的一类设备,典型的中速设备有行式打印机、激光打印机等。

3)高速设备

这是指其传输速率在数百个千字节至千兆字节的一类设备。典型的高速设备有磁带机、磁盘机、光盘机等

3 按照信息交换的单位分类
按信息交换的单位,可将IO设备分为两类:
1)块设备

这类设备用于存储信息,由于信息的存取总是以数据块为单位,故而得名。它属于有结构设备。典型的块设备是磁盘,每个盘块的大小是512B~4KB,磁盘设备的基本特征是其传输速率较高,通常为每秒钟几兆位,另一特征是可寻址,即对它可随机地读写任一块。此外,磁盘设备的IO通常采用DMA方式。

2)字符设备

用于数据的输入和输出,其基本单位是字符,故称为字符设备。它属于无结构类型。字符设备的种类繁多,如交互式终端、打印机等。字符设备的基本特征是其传输速率较低,通常为几个字节至数千字节;另一个特征是不可寻址,即输入、输出时不能指定数据的输入源地址及输出的目标地址。此外,字符设备在输入输出时,常采用中断驱动方式。

4 按设备的共享属性分类
这种分类方式可以将IO设备分为如下三类:
1)独占设备

这里是指在一段时间内只允许一个用户访问的设备,即临界资源。因而,对多个并发进程而言,应当互斥地访问这类设备。系统一旦把这类设备分配给某进程后,便由该进程独占,直到释放。

2)共享设备

这是指一段时间内允许多个进程同时访问的设备。当然,对于每一时刻而言,该类设备仍然只允许一个进程访问。显然,共享设备必须是可寻址和可随机访问的设备。典型的共享设备是磁盘。

3)虚拟设备

这是指通过虚拟技术将一台独占设备变换为若干逻辑设备,供若干个用户(进程)同时使用。

物理特点: 硬盘驱动器的物理特点包括旋转的磁盘和移动的读写头,而固态硬盘则使用闪存芯片而没有机械移动部分。键盘具有一组按键和电路,而鼠标包含传感器和按钮。显示器使用液晶技术或其他技术来显示图像,而打印机则使用墨水或激光技术将图像打印到纸张上。不同类型的设备在连接到计算机或其他系统时使用不同的接口和连接方式。

  1. 块设备文件和字符设备文件的本质区别是什么?

答案:

本质区别:对数据的处理方式和访问方式。

  1. 块设备文件(Block Devices)

    • 特点: 块设备以固定大小的块为单位进行数据传输。每个块都有一个唯一的地址,并且可以被独立访问。
    • 数据传输: 数据以块为单位进行传输,这使得块设备适用于随机访问,例如硬盘驱动器。
    • 缓存: 块设备通常支持缓存,系统可以在内存中存储块,以提高读取和写入的效率。
    • 例子: 硬盘驱动器(HDD)、固态硬盘(SSD)等。
  2. 字符设备文件(Character Devices)

    • 特点: 字符设备以字符为单位进行数据传输,没有固定大小的块。数据按需传输,没有像块设备那样的独立块。
    • 数据传输: 数据流以字符的形式进行,适用于顺序访问设备,例如串口、键盘等。
    • 无缓存: 字符设备通常不支持缓存,因为数据没有被分成固定大小的块。
    • 例子: 串口设备、键盘、鼠标等。
  3. 为什么要引人缓冲技术? 其基本思想是什么?

答案:

引入缓冲技术的主要目的是为了提高计算机系统的性能和效率。缓冲技术通过在数据的输入和输出路径中引入缓冲区,能够平衡不同速度的设备之间的数据传输,从而提高整个系统的性能。以下是引入缓冲技术的一些主要原因和基本思想:

  1. 速度匹配: 计算机系统中的不同组件(如CPU、存储设备、网络接口)具有不同的工作速度。引入缓冲可以将数据暂时存储在缓冲区中,以便在不同速度之间进行速度匹配,防止因速度不匹配而导致的性能瓶颈。

  2. 异步操作: 缓冲允许异步操作,即在一个组件继续执行操作的同时,另一个组件可以处理或准备数据。这样可以提高系统的吞吐量和响应速度。

  3. 减少等待时间: 缓冲可以减少在数据传输过程中的等待时间。当一个组件完成对缓冲区的写入后,可以立即开始执行其他任务,而不必等待另一个组件读取数据。

  4. 平滑数据流: 缓冲可以平滑数据流,防止在输入和输出设备之间出现间歇性的停滞。这对于对数据流的连续性有要求的应用程序(如音频和视频播放)尤为重要。

基本思想是在数据传输路径中插入一个缓冲区,该缓冲区可以存储一定量的数据。当发送数据时,数据首先被写入缓冲区,然后由缓冲区逐步传输到目标设备。当接收数据时,数据首先被存储在缓冲区中,然后从缓冲区逐步传递给接收组件。这种方式可以使得发送和接收之间的速度不必完全匹配,从而提高整个系统的效率。

  1. 什么是设备的静态分配? 什么是设备的动态分配?

答案:

  1. 静态分配(Static Allocation):

    • 定义: 在系统启动或配置阶段,分配固定的硬件资源给特定的设备。
    • 特点: 分配的资源在系统运行期间保持不变,不会发生变化。
    • 优点: 易于管理和预测,系统的配置相对稳定。
    • 缺点: 不够灵活,不能适应动态变化的设备连接或需求。

    例如,如果一个系统有两个串口,可以在系统启动时分别将一个串口分配给键盘输入,另一个分配给鼠标输入。这样的分配在系统运行期间不会改变。

  2. 动态分配(Dynamic Allocation):

    • 定义: 硬件资源在系统运行期间根据需要动态地分配给不同的设备。
    • 特点: 分配的资源可以根据系统需求动态变化。
    • 优点: 更灵活,可以适应设备连接和需求的变化。
    • 缺点: 系统管理和调度相对复杂,可能引入一些运行时的开销。

    例如,一个系统具有多个USB接口,这些接口可以动态地连接和断开不同的设备(如打印机、摄像头、键盘等)。在动态分配的情况下,系统可以根据设备的连接状态来分配相应的资源。

  3. 什么是井?什么是输入井?什么是输出井?试述井管理程序的基本功能及工作原理。

答案:

在计算机科学中,"井"(Buffer)通常指的是一个用于临时存储数据的内存区域。它是一种缓冲区,用于在两个数据传输单元之间进行数据传递,例如在输入和输出设备之间,或者在不同速度的处理单元之间。

输入井(Input Buffer): 用于接收输入设备传来的数据,允许系统以适当的速度处理这些数据,而不需要实时等待输入设备传输完毕。

输出井(Output Buffer): 用于存储即将发送到输出设备的数据,允许系统以适当的速度向输出设备传输数据,而不需要等待输出设备完全就绪。

井管理程序(Buffer Management Program) 是负责管理输入和输出井的软件部分。它的基本功能包括:

  1. 缓冲区分配: 为输入和输出设备之间的数据传输分配适当大小的缓冲区。这有助于优化数据传输,减少等待时间。

  2. 数据传输控制: 确保数据按照适当的速率从输入井传输到输出井,以及从输出井传输到设备。这有助于平衡不同速度的设备之间的数据流。

  3. 错误处理: 处理可能出现的错误情况,例如缓冲区溢出或下溢,以确保数据的完整性和可靠性。

  4. 调度和优化: 在多个任务同时进行时,井管理程序可能需要考虑不同任务之间的优先级,以及如何有效地使用系统资源。

工作原理:

  1. 数据输入: 当输入设备有数据传入时,数据首先被存储在输入井中。井管理程序负责控制数据的流入,确保它不会溢出。

  2. 数据处理: 从输入井中的数据被系统处理,可能会在内存中进行计算或被传递给其他部分进行处理。

  3. 数据输出: 处理完毕的数据被放入输出井,等待传输到输出设备。井管理程序确保数据按照适当的速率流出,并防止井溢出。

  4. 数据传输到设备: 输出井中的数据最终被传输到相应的输出设备。

应用题:

  1. 某盘共有200个柱面,每个柱面有 20 个磁道,每个磁道有 8个扇区,每个区为1024B,如果驱动程序所接到的访问请求是读出第 606 块,计算此信息块的物理位置。

答案:

首先,计算一下每个磁道的扇区数,然后找到对应的柱面、磁道和扇区。

给定的信息:

  • 柱面数:200个
  • 每个柱面的磁道数:20个
  • 每个磁道的扇区数:8个
  • 每个扇区的大小:1024字节

计算每个磁道的扇区总数:

每个磁道的扇区总数=每个磁道的扇区数×每个区的大小

每个磁道的扇区总数=8×1024字节

现在,我们可以计算物理位置:

计算在第几个柱面:
柱面号=要访问的块号 /(每个柱面的磁道数×每个磁道的扇区数)

柱面号=⌊606/20×8⌋=3

计算在第几个磁道:
磁道号=每个磁道的扇区数要访问的块号mod(每个柱面的磁道数×每个磁道的扇区数)

磁道号=606 mod  (20×8)8=5

计算在第几个扇区:

扇区号=要访问的块号mod每个磁道的扇区数

扇区号=606 mod  8 = 6

因此,第606块的物理位置为:柱面号3,磁道号5,扇区号6。

  1. 某操作系统采用双缓冲技术传送磁盘数据。设将数据从磁盘传送到缓冲区所用的时间为T1,将缓冲区中数据传送到用户区所用的时间为T2(假设T2<<T1),CPU处理数据所用的时间为T3,试计算处理此数据系统所用的总时间。

答案:

总时间可以通过计算各个步骤的时间之和得到。假设数据传输的时间是系统总时间的主要瓶颈,那么总时间可以用以下公式表示:

总时间= 磁盘到缓冲区传输时间 +缓冲区到用户区传输时间 +CPU处理数据时间

总时间 = T1 + T2 + T3

给定了条件 (T2<<T1),也就是说缓冲区到用户区传输时间远小于磁盘到缓冲区传输时间,那么可以近似地将总时间简化为:

总时间 = T1 + T3

这是因为 (T2) 的值相对较小,可以在计算上忽略。

  1. 现有请求队列 8,18,27,129,110,186,78,147,41,10,64,12。试用最短查找时间优先算法计算处理所有请求所移动的总柱面数,假设磁头的当前位置在磁道 100。

答案:

处理次序:100-110-129-147-186-78-64-41-27-18-12-10-8.移动的总柱面数:264.

  1. 初始磁头位置为100。
  2. 选择 110(距离100最近),移动到磁头位置,柱面数为 |100 - 110| = 10,更新磁头位置为110。
  3. 选择 129(距离110最近),移动到磁头位置,柱面数为 |110 - 129| = 19,更新磁头位置为129。
  4. 选择 147(距离129最近),移动到磁头位置,柱面数为 |129 - 147| = 18,更新磁头位置为147。
  5. 选择 186(距离147最近),移动到磁头位置,柱面数为 |147 - 186| = 39,更新磁头位置为186。
  6. 选择 78(距离186最近),移动到磁头位置,柱面数为 |186 - 78| = 108,更新磁头位置为78。
  7. 选择 64(距离78最近),移动到磁头位置,柱面数为 |78 - 64| = 14,更新磁头位置为64。
  8. 选择 41(距离64最近),移动到磁头位置,柱面数为 |64 - 41| = 23,更新磁头位置为41。
  9. 选择 27(距离41最近),移动到磁头位置,柱面数为 |41 - 27| = 14,更新磁头位置为27。
  10. 选择 18(距离27最近),移动到磁头位置,柱面数为 |27 - 18| = 9,更新磁头位置为18。
  11. 选择 12(距离18最近),移动到磁头位置,柱面数为 |18 - 12| = 6,更新磁头位置为12。
  12. 选择 10(距离12最近),移动到磁头位置,柱面数为 |12 - 10| = 2,更新磁头位置为10。
  13. 选择 8(距离10最近),移动到磁头位置,柱面数为 |10 - 8| = 2,更新磁头位置为8。

移动的总柱面数为10 + 19 + 18 + 39 + 108 + 14 + 23 + 14 + 9 + 6 + 2 + 2 = 264。

  1. 现有含40个磁道的盘面,编号为0~39,当磁头位于第11 磁道时,顺序到来如下磁道请求:(磁道号)1,36,16,34,9,12。试用先来先服务算法、最短查找时间优先算法和双向扫描算法这三种磁盘驱动调度算法,计算其各自要来回穿越多少磁道。

答案:

  1. FIFO 为111
  2. SST 为66
  3. SCAN 为66(先扫地址大的请求),为47(先扫地址小的请求)。

先来先服务算法(First Come First Serve, FCFS):

  1. 初始磁头位置:11
  2. 请求队列:1, 36, 16, 34, 9, 12
  3. 移动的总磁道数计算:
    • 11 → 1:10
    • 1 → 36:35
    • 36 → 16:20
    • 16 → 34:18
    • 34 → 9:25
    • 9 → 12:3
  4. 总共穿越的磁道数:10 + 35 + 20 + 18 + 25 + 3 = 111

SSTF(最短查找时间优先)算法的计算如下:

  1. 选择 12(距离11最近),移动到磁头位置,柱面数为 |11 - 12| = 1,更新磁头位置为12。
  2. 选择 9(距离12最近),移动到磁头位置,柱面数为 |12 - 9| = 3,更新磁头位置为9。
  3. 选择 16(距离9最近),移动到磁头位置,柱面数为 |9 - 16| = 7,更新磁头位置为16。
  4. 选择 34(距离16最近),移动到磁头位置,柱面数为 |16 - 34| = 18,更新磁头位置为34。
  5. 选择 36(距离34最近),移动到磁头位置,柱面数为 |34 - 36| = 2,更新磁头位置为36。
  6. 选择 1(距离36最近),移动到磁头位置,柱面数为 |36 - 1| = 35,更新磁头位置为1。

总共穿越的磁道数为 1 + 3 + 7 + 18 + 2 + 35 = 66。

  1. 若磁头当前位于第 100 号柱面,且正向面号减小的方向移动。现有磁盘读写请求队列柱面号依次为 190,10,160,80,90,125,30,20,29,140,25。若分别采用最短查找时间优先算法和电梯调度算法,试计算出各种算法中移动臂所经过的柱面数。

答案:

采用SSTF 处理次序为:100-90-80-125-140-160-190-30-29-5-20-10 ,总柱面数为:310 。

采用电梯调度处理次序为:100-90-80-30-29-25-20-10-125-140-160-190 ,总柱面数为:270

最短查找时间优先算法(SSTF):

  1. 100 → 90:10
  2. 90 → 80:10
  3. 80 → 125:45
  4. 125 → 140:15
  5. 140 → 160:20
  6. 160 → 190:30
  7. 190 → 30:160
  8. 30 → 29:1
  9. 29 → 25:4
  10. 25 → 20:5
  11. 20 → 10:10

总共穿越的柱面数为:10 + 10 + 45 + 15 + 20 + 30 + 160 + 1 + 4 + 5 + 10 = 310

电梯调度算法:

  1. 100 → 125:25
  2. 125 → 140:15
  3. 140 → 160:20
  4. 160 → 190:30
  5. 190 → 30:160
  6. 30 → 29:1
  7. 29 → 25:4
  8. 25 → 20:5
  9. 20 → 10:10
  10. 10 → 80:70
  11. 80 → 90:10

总共穿越的柱面数为:25 + 15 + 20 + 30 + 160 + 1 + 4 + 5 + 10 + 70 + 10 = 270

posted @ 2023-11-25 17:39  郭培鑫同学  阅读(350)  评论(0编辑  收藏  举报