什么是假脱机技术,它可以解决什么问题?

什么是脱机技术

要回答什么是假脱机技术,首先我们需要知道什么是脱机技术。《计算机操作系统(第四版)》写道:

为了解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾,20世纪50年代末出现了脱机I/O技术。该技术是将事先装有用户程序和数据的纸袋装入纸带输入机,在一台外围机的控制下,把纸带(卡片)上的数据(程序)输入道磁带上。当CPU需要这些程序和数据时,再从磁带上高速地调入内存。

在脱机技术加持下,程序和数据的输入输出都是在外围机的控制下完成的,也就是说,他们是在脱离主机的情况下进行的,所以称这种方式为脱机输入/输出方式

假脱机

假脱机技术,又称SPOOLing(Simultaneous Peripheral Operation On-Line)技术,是用软件的方式模拟脱机技术。SPOOLing系统的组成如下图所示。

明确一点:要实现SPOOLing技术,必须要有多道程序技术的支持。系统会建立“输入进程”和“输出进程”。

输入进程模拟脱机输入时的外围控制机;输出进程模拟脱机输出时的外围控制机。

所以,SPOOLing技术是用软件的方式实现了数据的预输入和缓输出。

假脱机技术的实现原理

SPOOLing系统主要由以下四部分组成:

  • 输入井和输出井

    这是在磁盘上开辟出来的两个存储区域。输入井模拟脱机输入时的磁盘,用于收容I/O设备输入的数据。输出井模拟脱机输出时的磁盘,用于收容用户程序的输出数据。输入/输出井中的数据一般以文件的形式组织管理,我们把这些文件成为井文件。一个文件仅存放某一个进程的输入或者输出数据,所有进程的输入或者输出文件链接成为一个输入(或输出)队列。

  • 输入缓冲区和输出缓冲区

    这是在内存中开辟的两个缓冲区,用于缓和CPU和磁盘之间速度不匹配的矛盾。输入缓冲区用于暂存由输入设备传送的数据,之后再传送到输入井。输出缓冲器用于暂存从输出井传送的数据,之后再传送到输出设备。

  • 输入进程和输出进程

    输入进程也称预输入进程,用于模拟脱机输入时的外围控制机,将用户要求的数据从输入设备传送到输入缓冲区,再存放到输入井。当CPU需要输入设备时,直接从输入井读入内存。输出进程也称缓输出进程,用于模拟脱机输出时的外围控制机,把用户要求输入的数据从内存传送并存放到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区输出至输出设备上。

  • 井管理程序

    用于控制作业与磁盘之间信息的交换。当作业执行过程中向某台设备发出启动输入或输出操作请求时,由操作系统调用井管理程序,由其控制从输入井读取信息或将信息输出至输出井。

工作原理图

SPOOLing系统的工作原理如下图所示

操作系统|SPOOLing(假脱机)技术的更多相关文章

  1. IO软件层次结构与假脱机技术

    IO软件层次结构 用户层软件->设备独立性软件->设备驱动软件->中断处理程序->硬件 用户层软件实现与用户交互的接口,用户可直接使用该层提供的,与IO操作相关的库函数对设备进 ...

  2. Python进阶----计算机基础知识(操作系统多道技术),进程概念, 并发概念,并行概念,多进程实现

    Python进阶----计算机基础知识(操作系统多道技术),进程概念, 并发概念,并行概念,多进程实现 一丶进程基础知识 什么是程序: ​   程序就是一堆文件 什么是进程: ​   进程就是一个正在 ...

  3. 操作系统——IO缓存技术

    一.为什么引入缓存技术 为了解决cpu速度和外部设备速度不匹配的问题. 降低了io对cpu的中断的次数.每进行一次IO设备的时间都非常长,所以把数据先放入缓冲区,再进行IO操作. 二.缓冲技术的实现 ...

  4. 转 SPOOLING技术——操作系统

    传送门 SPOOLING技术——操作系统 SPOOLING技术(Simultaneous Peripheral Operating On Line) 同时联机外围操作技术,它是关于慢速字符设备如何与计 ...

  5. 假脱机服务(SPOOLing service)

    1. 基本含义 SPOOLing 是 Simultaneous Peripheral(外设) Operation On-Line(联机) 的缩写,是关于慢速字符设备(慢速外设,比如打印机)如何与计算机 ...

  6. Spooling技术

    转自https://blog.csdn.net/weixin_42229896/article/details/80736517   假脱机的概念 SPOOLing技术:利用高速共享设备(通常是磁鼓或 ...

  7. 【操作系统】总结五(I/O管理)

    输入输出管理本章主要内容: I/O管理概述(I/O控制方式.I/O软件层次结构)和I/O核心子系统(I/O调度概念.局速缓存与缓冲区.设备分配与回收.假脱机技术(SPOOLing)). 5.1 I/O ...

  8. 操作系统——输入输出(I/O)管理

    目录 一.I/O 管理概述 1.1 I/O 控制方式 1.2 I/O 软件层次结构 二.I/O 核心子系统 2.1 I/O 调度概念 2.2高速缓存与缓冲区 2.3设备分配与回收 2.4假脱机技术(S ...

  9. 3.4 目录和spooling

    文件管理部分主要讲文件目录.文件目录它是用于检索文件的.文件目录它是一种文件系统实现按0存取的一种重要手段.一个文件目录它由若干个目录项组成的.每一个目录项它记录了一个文件的相关信息.这个文件信息指明 ...

  10. 33.python之操作系统,进程,线程

    转载:https://www.cnblogs.com/yuanchenqi/articles/6248025.html 操作系统 一 为什么要有操作系统? 现代计算机系统是由一个或者多个处理器,主存, ...

随机推荐

  1. 关于.net Core在华为云的鲲鹏服务器上部署的细节纪要

    由于鲲鹏使用的是ARM的cpu,,非x86的,我们公司买的是Centos,,由于需要在上面部署.net core 3.0/3.1的应用,,在按照官方的文章进行部署之后,会提示 FailFast: Co ...

  2. 记一次Nacos漏洞的复现 --> 身份认证绕过漏洞(QVD-2023-6271)

    前记 端午前两天,遇到公司某客户的站点是Nacos,随后就是网上搜一波漏洞,搜到 QVD-2023-6271,故做以下记录 漏洞复现 漏洞描述 漏洞原理为开源服务管理平台 Nacos在默认配置下未对 ...

  3. SQLServer如何监控阻塞会话

    一.查询阻塞和被阻塞的会话 SELECT r.session_id AS [Blocked Session ID], r.blocking_session_id AS [Blocking Sessio ...

  4. MySQL学习笔记-函数

    MySQL-常用函数 select {函数}({参数}); select是查询用的,用来展示函数返回值. 一. 字符串函数 常用的字符串函数: 1. concat 拼接 select concat(' ...

  5. webpack js兼容处理

    webpack在不需要引入任何loader可以对于js进行打包处理,但是它不会对于js兼容性进行任务的处理,而我们编写的项目是需要在不同的浏览器中运行的,此时就需要对于js的兼容性在打包过程中进行对应 ...

  6. 机器学习算法(一):1. numpy从零实现线性回归

    系列文章目录 机器学习算法(一):1. numpy从零实现线性回归 机器学习算法(一):2. 线性回归之多项式回归(特征选取) @ 目录 系列文章目录 前言 一.理论介绍 二.代码实现 1.导入库 2 ...

  7. Java JVM——10.对象实例化内存布局与访问定位

    对象实例化 对象创建方式 ★ new:最常见的方式.单例类中调用getInstance的静态类方法,XXXFactory的静态方法. ★ Class的newInstance方法:在JDK9里面被标记为 ...

  8. 增补博客 第三篇 python 英文统计

    编写程序实现对特定英文文章(文本文件)的单词数和有效行数的统计,其中要求空行不计数: def count_words_and_lines(file_path): word_count = 0 line ...

  9. 燕千云 YQCloud 数智化业务服务平台 发布1.12版本

    2022年4月29日,燕千云 YQCloud 数智化业务服务平台发布1.12版本,优化客户服务场景.深化智能预测服务的应用,加强系统在多渠道方面的集成,全面提升企业数智化服务的能力! 作为企业数字化服 ...

  10. spring jpa restful请求示例

    创建项目 导入jar包mysql 数据库和连接池jar <dependency> <groupId>org.springframework.boot</groupId&g ...