spooling技术介绍

spooling技术介绍SPOOLing(SimultaneousPeripheralOperationOn-Line)技术,即外部设备联机并行操作,是为实现低速输入输出设备与高速的主机之间的高效率数据交换而设计的。通常称为“假脱机技术”,又称为排队转储技术。  具体来说,SPOOLing技术在输入输出之间增加了“输入井”和“输出井”的排队转储环节,以消除用户的“联机”等待时间。而所谓“输入井”和“输出井”则是在高…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

spooling技术介绍

SPOOLing(Simultaneous Peripheral Operation On-Line)技术,即外部设备联机并行操作,是为实现低速输入输出设备与高速的主机之间的高效率数据交换而设计的。通常称为“假脱机技术”,又称为排队转储技术。

  具体来说,SPOOLing技术在输入输出之间增加了“输入井”和“输出井”的排队转储环节,以消除用户的“联机”等待时间。而所谓“输入井”和“输出井”则是在高速辅存(外存)中开辟的两个固定的转储区。在系统输入模块收到作业输入请求信号后,“输入管理模块”中的读过程负责将信息从输入装置中通过“通道”读入内存中的缓冲区,当缓冲区满时,则由写过程将信息从缓冲区写到外存的输入井中,读过程和写过程反复循环,直到一个作业输入完毕。当读过程读到一个硬件结束标志之后,系统再次驱动写过程把最后一批信息写入输入井并调用中断处理程序结束该次输入。然后,系统为该作业建立作业控制块,从而使输入井中的作业进入作业等待队列,等待作业调度程序选中后进入内存运行。系统在管理输入井过程中可以“不断”读入输入的作业,直到输入结束或输入井满而暂停。

  对于其输出过程,可以以打印机为例来进行说明。当有进程要求对它打印输出时,SPOOLing系统并不是将这台打印机直接分配给进程,而是在输出井中为其分配一块存储空间,进程的输出数据以文件形式存在。各进程的数据输出文件形成了一个输出队列,由“输出管理模块”控制这台打印机进程,依次将队列中的输出文件实际打印输出。

  从打印机的例子中,我们可以看到,在SPOOLing技术的支持下,系统实际上并没有为任何进程分配设备,而只是在输入井和输出井中为每个进程分配了一块存储区并建立了一张I/O请求表。这样,便把独占设备改造为共享设备,因此SPOOLing技术也是一种虚拟设备技术。

  最后,通过总结,可知SPOOLing技术具有如下三个特点:

  (1)提高了I/O速度。从对低速I/O设备进行的I/O操作变为对输入井或输出井的操作,如同脱机操作一样,提高了I/O速度,缓和了CPU与低速I/O设备速度不匹配的矛盾。

  (2)设备并没有分配给任何进程。在输入井或输出井中,分配给进程的是一存储区和建立一张I/O请求表。

  (3)实现了虚拟设备功能。多个进程同时使用一个独享设备,而对每一进程而言,都认为自己独占这一设备,从而实现了设备的虚拟分配。不过,该设备是逻辑上的设备。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201116.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux环境下银行家算法,C语言实现 操作系统 银行家算法

    Linux环境下银行家算法,C语言实现 操作系统 银行家算法C语言实现操作系统银行家算法/**************************************************银行家算法:主要的思想是舍大取小,先满足小的,最后才满足大的。author:lybdate:2014/10/15***************************************************/#include#include#inc…

    2022年7月22日
    13
  • 获取股票历史数据和当前数据的API

    获取股票历史数据和当前数据的API关键字:股票,stock,API,接口1.获取股票当前数据新浪数据接口:http://hq.sinajs.cn/list={code}。{code}替换为股票代码,沪市股票代码加前缀sh,深市股票代码加前缀sz。例如:在浏览器地址栏输入:http://hq.sinajs.cn/list=sh601766,sz000002,得到如下结果:varhq_str_sh601766=”中国中车,10.280,10.210,10.310,10.380,10.160,10.300,10.310,.

    2022年6月24日
    46
  • ROS安装报错 sudo: rosdep:找不到命令

    ROS安装报错 sudo: rosdep:找不到命令安装ROS时初始化rosdep过程中,执行到:sodurosdepinit报错:sudo:rosdep:找不到命令原因:没有安装python-rosdep这个包解决办法:sudoapt-getinstallpython-rosdep然后重新执行:sudorosdepinitrosdepupdate…

    2022年6月17日
    222
  • 精美网站赏析_怎么收藏网址到收藏夹

    精美网站赏析_怎么收藏网址到收藏夹英文网站1链接地址享笑网个人博客交流网站蓝色网站商城黑色网站后台管理系统橙色企业信息管理系统韩国情侣酒店网站模板bootstrap制作的企业后台模板个人空间网站黑色主题网页

    2022年8月3日
    5
  • R 语言的安装(详细教程)「建议收藏」

    R 语言的安装(详细教程)「建议收藏」文章目录前言一、R语言是什么?二、R下载1.官网2.downloadbase3.downloadRtools三、Rstudio下载1.官网2.downloadRstudio四、R安装五、Rtools安装六、Rstudio安装七.java的环境配置八.运行RStudio十.R包安装策略1.配置镜像1.修改配置文件1.修改全局设置2.简单命令3.升级R包4.安装Bioconductor上的R包总结前言我不生产知识,我只是知识的搬运工,以下内容是

    2022年6月27日
    59
  • Offsetof用法「建议收藏」

    Offsetof用法「建议收藏」#include<stddef.h>#include<stdio.h>structaddress{charname[50];charstreet[50];intphone;};intmain(){printf(“address结构中的name偏移=%d字节。\n”,offsetof(structaddress,name));printf(“address结构中的street偏移=%d字节。\n”,offsetof(s

    2022年8月22日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号