脱机I/O方式和假脱机系统

提示:在写这个博客的时候小编更加的觉得计算机基础知识的重要性了,而且对计算机的整个发展历程和计算机的底层工作原理特别感兴趣


一、脱机I/O方式

  • 为了解决人机矛盾以及 CPU 和 I/O设备之间速度不匹配的矛盾,20世纪50年代末出现了脱机I/O技术。
  • 该技术是事先将装有用户程序和数据的纸带(卡) 装入纸带输入机,在一台外围机的控制下,把纸带上的程序和数据输入磁带。当CPU需要这些程序和数据时,再从磁带上将它们高速地调入内存。
  • 当CPU需要输出时,可先由CPU把数据直接从内存高速地送到磁带上,然后在另一台外围机的控制下,将磁带上的结果通过相应的输出设备输出。
    在这里插入图片描述
  • 由于程序和数据的输入和输出都是在外围机的控制下完成的(它们都是在脱离主机的情况下进行的),故称为脱机I/O方式
  • 把在主机的直接控制下进行I/O的方式,称为联机I/O方式。
  • 脱机I/O方式的优点:
    • 减少了CPU的空闲时间。 装带、卸带以及将数据从低速I/O设备送到高速磁带上(或反之)的操作,都是在脱机情况下由外围机完成的,并不占用主机时间,因此有效减少了CPU的空闲时间。
    • 提高了I/O速度。 当CPU在运行中需要输入数据时,系统是直接高速磁带上将数据输入内存的,这极大地提高了I/O速度。

二、假脱机系统

  • 通过假脱机技术可以可以将一台物理I/O设备虚拟为多台逻辑I/O设备,这样就可以允许多个用户共享一台物理I/O设备。

1、假脱机技术(SPOOLing, simulataneaus peripheral operating online)

  • 当系统中引入多道程序技术后,系统便完全可以利用一道程序来模拟脱机输入时的外围控制机功能,进而把低速I/O设备上的数据传送到高速磁盘上;再利用另一道程序模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。
  • 该方式是在主机的直接控制下实现以前的脱机输入/输出功能,称为联机I/O方式

2、脱机系统的组成

  • 脱机技术是对脱机输入/脱机输出系统模拟,脱机系统建立在通道技术多道程序技术的基础上,以高速随机外存(通常为磁盘)为后援存储器,其由四部分组成。
    在这里插入图片描述
    • 输入#和输出#。
      • 这是在磁盘开辟出来的两个存储区域。
      • 输入#模拟脱机输入时的磁盘,用于收容I/O设备输入的数据。
      • 输出#模拟脱机输出时的磁盘,用来收容用户程序的输出数据。
      • 输入#/输出#中的数据一般以文件的形式组织管理,我们把这些文件称为#文件。
      • 一个文件仅存放一个进程的输入(或输出)数据,所有进程的数据输入(或输出)文件可链接成一个输入(或输出)队列。
    • 输入缓冲区和输出缓冲区。
      • 内存中开辟的两个缓冲区,用于缓和CPU和磁盘之间速度不匹配的矛盾。
      • 输入缓冲区用于暂存输入设备传送来的数据,之后再将其传送到输入#。
      • 输出缓冲区用于暂存从输出#传送来的数据,之后再将其传送到输出设备。
    • 输入进程和输出进程。
      • 输入进程,也称为预输入进程,用于脱机输入时的外围控制机,将用户要求的数据从输入设备传送到输入缓冲区,再存放到输入#。当CPU须输入数据时,直接从输入#读入内存。
      • 输出进程,也称为缓输出进程,用于模拟脱机输出时的外围控制机器,把用户要求输出的数据从内存传送(并存放)到输出#,待输出设备空闲时,再将输出#中的数据经输出缓冲区输出到输出设备。
    • #管理程序。
      • 用于控制作业与磁盘井之间信息的交换。
      • 当作业执行过程中向某台设备发出启动输入或输出操作请求时,由OS调用井管理程序,由该程序控制从输入井读取信息或将信息输出至输出井。

3、假脱机系统的特点

  • (1)提高了I/O速度。 这里对数据所执行的IO操作,已从对低速I/O设备执行的IO操作演变为对磁盘缓冲区中的数据进行的存取操作,如同脱机输入/脱机输出一样,提高了I/O速度,缓和了CPU与低速I/O设备之间速度不匹配的矛盾。
  • (2)将独占设备改造为共享设备。 在假脱机打印机系统中,实际上并没有为任何进程分配设备,而只是在磁盘缓冲区中为进程分配了一个空闲盘块和建立了一张I/O请求表。这样,便把独占设备改造成了共享设备。
  • (3)实现了虚拟设备功能。宏观上,虽然多个进程在同时使用一台独占设备,但对于每个进程而言,它们都会认为自己独占了一个设备。当然,该设备只是逻辑上的设备。

4、假脱机打印系统

  • 假脱机打印机系统实现了将独占设备变换为若干台对应的逻辑设备的功能。
    在这里插入图片描述
  • 假脱机打印系统的组成:
    • ①磁盘缓冲区,是在磁盘上开辟的一个存储空间,用于暂存用户程序的输出数据,在该缓冲区中可以设置几个盘块队列,如空盘块队列、满盘块队列等。
    • ②打印缓冲区,用于缓和CPU和磁盘之间速度不匹配的矛盾,设置在内存中,用于暂存从磁盘缓冲区发送来的数据,以后会再传送给打印设备进行打印。
    • ③假脱机管理进程和假脱机打印进程。由假脱机管理进程为每个要求打印的用户数据建立一个假脱机文件,并把它放入假脱机文件队列中,由假脱机打印进程依次对队列中的文件进行打印。
  • 用户进程发出打印输出请求时:
    • ①在磁盘缓冲区中为之申请一个空闲盘块,并将要打印的数据放入其中;
    • ②为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂到假脱机文件队列上。
    • 真正的打印输出是假脱机打印进程负责的,当打印机空闲时,该进程首先从假脱机文件队列的队首摘取一张请求打印表,然后根据表中的要求将要打印的数据由磁盘缓冲区传送到内存缓冲区,再交付打印机进行打印。一个打印任务完成后,假脱机打印进程将会再次查看假脱机文件队列,若队列非空,则重复上述工作,直至队列为空。此后,假脱机打印进程会将自己阻塞起来,仅当再次有打印请求时,其才会被重新唤醒运行。
  • 由此可见,利用假脱机系统向用户提供共享打印机的概念是:对每个用户而言,系统并非即时执行其程序输出数据的真实打印操作,而只是即时将数据输出到缓冲区,这时的数据并未真正被打印,只是让用户感觉系统已为他打印;真正的打印操作,是在打印机空闲且该打印任务在等待队列中已排到队首时进行的:而且,打印操作本身也是利用CPU的一个时间片,没有使用专门的外围机。以上过程是对用户屏蔽的,即用户是不可见的。

  • 33
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
脱机输入/输出(off-line i/o)方式是指在计算机系统中,数据的输入和输出是通过脱机的设备进行的。脱机输入/输出方式有助于提高计算机系统的效率和灵活性。 脱机输入指的是将数据从离线介质(如磁带、磁盘等)传输到计算机系统中。在这种方式下,用户可以事先将需要处理的数据存储在脱机设备中,然后再通过特定的程序将数据输入到计算机系统中进行处理。这种方式可以减少用户与计算机之间的交互次数,提高数据的传输速度,同时也减少了计算机系统的负担。 脱机输出则是将计算机系统处理的结果保存到离线介质中。通过这种方式,用户可以将计算机系统处理的数据以文件的形式保存在脱机设备中,方便日后的查阅和使用。这样不仅可以节省计算机系统的存储空间,还可以减少计算机系统与外部设备之间的耦合度。 脱机输入/输出方式在实际应用中具有广泛的应用。例如,在批处理系统中,用户可以使用脱机输入/输出方式将大量的数据一次性输入到计算机系统中进行处理,提高处理的效率。同时,将处理结果以文件的形式保存在脱机设备中,方便用户进行后续的数据分析和处理。 总之,脱机输入/输出方式是一种便捷、高效的数据输入输出方式,可以提高计算机系统的效率和灵活性,方便用户的数据处理和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小宝945

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值