一、简答题。
(4)I/O控制方式可分为哪些类型?各类控制方式的优缺点有哪些?
I/O控制方式类型:轮询方式、中断方式、DMA方式、通道方式。
轮询方式
优点:实现技术比较简单,易于理解。
缺点:处理器利用率低,处理器与设备之间是串行工作。
中断方式
优点:使处理器的利用率提高,且能支持多道程序和I/O设备的并行操作。
缺点:若过多I/O设备使用中断处理方式进行并行操作,中断次数出现次数过多会造成CPU无法响应中断和出现数据丢失现象。如果I/O控制器的数据缓冲区比较小,在缓冲区装满数据之后将会发生中断,中断次数过多反而会浪费大量的cpu处理时间。
DMA方式
优点:提高了I/O效率,减轻了CPU的工作负担,进一步提高了I/O与cpu之间的并行性。
缺点:在传输大容量文件时,由于CPU的占用率不高,运行部分程序时系统可能会变得相当的缓慢。
通道方式
优点:可以处理多块不连续的数据输入/输出,cpu和通道的并行工作程度提高。
缺点:由于需要更多硬件(通道处理器),成本较高。
(6)大型机常常采用通道方式实现I/O控制,那么什么是通道?为什么要引入通道?
通道:通道是一个独立于 CPU的专管输入/输出控制的处理机,它控制设备与内存直接进行数据交换。它有自己的通道指令,这些通道指令受CPU启动,并在操作结束时向CPU发中断信号。
引入通道原因:在计算机系统中为处理器、通道、设备控制器和设备之间建立分层的连接关系。处理器与通道共用总线,通道与设备控制器共用下级的总线,设备控制器与不同类型的外围设备相连接,从而提升整个I/O处理的并行度。
(9)为什么要引入缓冲技术?其基本思想是什么?
引入缓冲技术原因:
1、解决CPU与设备之间速度不匹配的矛盾
2、协调逻辑记录大小和物理记录大小不一致的问题
3、提高CPU和设备的并行性
4、减少I/O操作对CPU的中断次数
5、放宽对CPU中断响应时间的要求
缓存技术基本思想:
1、I/O缓冲区:在内存中开辟的存储区,专门用于临时存放I/O操作的数据
2、操作过程:
(1)写操作:将数据送至缓冲区,直到装满或需要写出,待适当时候系统将缓冲区内容写到设备上
(2)读操作:系统将设备上的物理记录读至缓冲区,根据要求将当前所需要的数据从缓冲区中读出并传送给进程
(13)为什么要引入设备独立性?如何实现设备独立性?
引入设备独立性的原因:作业在执行前,应对静态分配的外围设备提出申请要求。如果申请时指定某一台具体的物理设备,那么分配工作就很简单。但当指定的某台设备存在故障,不能满足申请时,该作业就不能正常运行。
实现设备独立性方法:系统需要提供逻辑设备名和物理设备名的对应表以供转换使用。
(14)什么是设备的静态分配?什么是设备的动态分配?
设备的静态分配:作业在执行前将所有需要使用的设备全部分给它,当作业在执行过程中不再需要使用该类设备或者作业执行结束将要撤离时,再收回设备。
设备的动态分配:即在进程运行的过程中进行的,当进程需要使用设备时,通过系统调用命令向系统提出设备请求,系统按一定的分配策略给进程分配所需设备,一旦使用完毕立即释放。
(18)什么是虚拟设备,实现虚拟设备的主要条件是什么?
虚拟设备:采用虚拟技术将一台独占设备变换为若干台逻辑设备,供若干用户进程同时使用,通常将这种通过虚拟技术处理后的设备称为虚拟设备。
实现虚拟设备的主要条件:实现虚拟设备技术的硬件条件是:配置大容量的磁盘,要有中断装置和通道。操作系统应设计好“预输入”程序,“井管理”程序,“缓输出”程序。实现虚拟设备技术的软件条件是:要采用多道程序设计技术。
(20)SPOOLing系统是如何将独占型设备改造成共享型设备的?
改造方法:独占设备改造为共享设备由于Spooling技术把所有用户进程的输出都送入输出井,然后再由输出进程完成打印工作,而输出井在磁盘上,为共享设备。这样,Spooling技术就把打印机等独占设备改造成立共享设备。实现了虚拟设备功能由于Spooling技术实现了多个用户进程共同使用打印机这种独占设备的情况,从而实现了把一个设备当成多个设备来使用,即虚拟设备的功能。
二、应用题。
有些地方写错了,博主懒得改了,请看评论区大佬的改正~~~
(1)某操作系统采用中断方式控制I/O操作,假设CPU用1 ms来处理中断请求,其他CPU时间用于计算。若时钟中断频率为100 Hz,试计算CPU的利用率。
思路:计算CPU的利用率,即在整个中断处理周期中,cpu计算的时间占整个周期的比率,已知CPU需要花费1ms去处理中断,而其他时间都用来进行计算。
周期:T=1/f=1/100=0.01s。
CPU的利用率=(0.01*1000-1)/(0.01*1000)=(9/10)*100%=90%。
(2)已知磁盘的结构如下:共有n个柱面,编号顺序为0, 1, 2, …, n-1;共有m个磁头,编号顺序为0, 1, 2, …, m-1;每个磁道内的K个信息块从1开始编号,依次为1, 2, …, k(注意这里扇区的编号是从1开始的,所以x需要-1)。现用x表示逻辑磁盘块号,用a、b、c分别表示任意逻辑磁盘块的柱面号、磁头号、磁道内的块号,则x与a、b、c可通过如下公式进行转换:x:逻辑磁盘块号,a:柱面号,b:磁头号,c:磁道内的块号,K:信息块数
原理:
(1)已知块号,则磁盘驱动用的三地址:
柱面号=[块号/(磁头数×扇区数)]
磁头号=[(块号mod(磁头数×扇区数))/扇区数]
扇区号=(块号mod(磁头数×扇区数))mod 扇区数
(2)已知磁盘块物理地址,则磁盘块号:
块号=柱面号×(磁头数×扇区数)+磁头号×扇区数+扇区号
若某磁盘满足n=200(柱面数),m=20(磁头数),k=10,试问:
①柱面号为185、磁头号为12,磁道内的块号为5的磁盘块的逻辑块号是多少?
代入公式:x=10*20*185+10*12+5=37125。
即逻辑块号为37125。
②逻辑块号为1200,其所对应的柱面号、磁头号及磁道内的块号分别是多少?
代入公式:a=(1200-1)/(10*20)=5(取整)
b=((1200-1)%(10*20))/k=19
c=((1200-1)%(10*20))%k+1=10
即柱面号、磁头号及磁道内的块号分别是5,19,10。
③若每一磁道内的信息块从0开始编号,即编号依次为0,1,...,k-1,其全条件同前,试写出x与a、b、c之间的转换公式。
x=k*m*a+k*b+c+1
a=(x-1)/(k*m)
b=((x-1)%(k*m)) /k
c=((x-1)%(k*m))% k
(3)若磁头当前位于第100号柱面,且正向柱面号增加的方向移动。现有磁盘读写请求队列,柱面号依次为23,376,205,132,19,61,190,398,29,4,18,40。若采用先来先服务算法、最短查找时间优先算法和双向扫描算法,试计算出各种算法中移动臂所经过的柱面数。
(4)磁盘请求以10、22、20、2、40、6、38 柱面的次序到达磁盘驱动器。如果磁头当前位于柱面20,假设在查找过程中移过每个柱面要花费6ms,试基于以下算法计算查找时间:①先来先服务算法;②最短查找时间优先算法;③电梯调度算法(正问柱面号增加的方向移动)。
(5)在旋转型设备上对信息进行优化分布能够减少为若干I/O服务的总时间。设旋转型设备磁鼓分为20个区,每区存放一条记录,磁鼓旋转一周用时20 ms,读取每条记录平均用时1 ms,之后经2 ms处理,再继续处理下一条记录。在当前磁鼓位置未知的情况下:
①顺序存放记录1,记录2,…,记录20时,试计算读出并处理20条记录的总时间;
②给出优化分布20条记录的一种方案,使得总处理时间缩短,并计算该方案所花费的总时间。
(6)有5个作业依次进入系统,其提交时刻、运行时间、作业长度分别列于下表。设内存容量为100 KB,采用可变分区存储管理,且作业在内存中不能移动。作业调度采用先来先服务算法,进程调度采用内存中的就绪进程平分CPU时间的方式,不计作业对换及其他系统开销。试求各作业的开始执行时刻、完成时刻、周转时间。
作业 | 提交时刻 | 运行时间 | 作业长度/KB | 开始执行时间 | 完成时刻 | 作业周转时间/min |
Job1 | 10:00 | 25 | 15 | 10:00 | 10:30 | 30 |
Job2 | 10:20 | 30 | 60 | 10:20 | 11:10 | 50 |
Job3 | 10:20 | 25 | 40 | 11:10 | 11:45 | 85 |
Job4 | 10:30 | 15 | 20 | 10:30 | 11:00 | 30 |
Job5 | 10:35 | 10 | 30 | 11:10 | 11:30 | 55 |
(7)有一个多道程序系统,其作业调度采用最短作业优先调度算法,进程调度采用优先数抢占式调度算法,且优先数越小则优先级越高。如果系统拥有一台打印机,采用静态方式进行分配,忽略系统调度开销。现有以下作业序列到达系统:
作业名 | 到达时刻 | 估计运行时间/min | 打印机需求/台 | 进程优先数 |
Job1 | 14:00 | 40 | 1 | 4 |
Job2 | 14:20 | 30 | 0 | 2 |
Job3 | 14:30 | 50 | 1 | 3 |
Job4 | 14:50 | 20 | 0 | 5 |
Job5 | 15:00 | 10 | 1 | 1 |
要求:
①列出这5个作业的完成次序;
②计算作业的平均周转时间。