第五章 I/O管理 六、I/O核心子系统
目录
一、核心子系统
1、I/O调度
2、设备保护
二、假脱机技术
1、脱机:
2、假脱机(SPOOLing技术):
3、应用:
1.独占式设备:
2.共享设备:
4、共享打印机原理分析
三、总结
一、核心子系统
- 设备独立性软件
- 设备驱动程序
- 中断处理程序
1、I/O调度
用某种算法确定一个好的顺序来处理各个I/O请求。

2、设备保护
操作系统需要实现文件保护功能,不同的用户对各个文件有不同的访问权限(如:只读、读和写等)。
在UNIX系统中,设备被看做是一种特殊的文件,每个设备也会有对应的FCB。当用户请求访问某个设备时,系统根据FCB中记录的信息来判断该用户是否有相应的访问权限,以此实现“设备保护”的功能。(参考“文件保护”小节)
二、假脱机技术
1、脱机:
Tips:为什么称为“脱机”―—脱离主机的控制进行的输入/输出操作。
2、假脱机(SPOOLing技术):

3、应用:
1.独占式设备:
只允许各个进程串行使用的设备。一段时间内只能满足一个进程的请求。
2.共享设备:
共享设备一一允许多个进程“同时”使用的设备(宏观上同时使用,微观上可能是交替使用)。可以同时满足多个进程的使用请求。
4、共享打印机原理分析

当多个用户进程提出输出打印的请求时,系统会答应它们的请求,但是并不是真正把打印机分配给他们,而是由假脱机管理进程为每个进程做两件事:
(1)
- 在磁盘输出井中为进程申请一个空闲缓冲区(也就是说,这个缓冲区是在磁盘上的),并将要打印的数据送入其中;
(2)
- 为用户进程申请一张空白的打印请求表,并将用户的打印请求填入表中(其实就是用来说明用户的打印数据存放位置等信息的),再将该表挂到假脱机文件队列上。
- 当打印机空闲时,输出进程会从文件队列的队头取出一张打印请求表,并根据表中的要求将要打印的数据从输出井传送到输出缓冲区,再输出到打印机进行打印。用这种方式可依次处理完全部的打印任务

三、总结

相关文章:
第五章 I/O管理 六、I/O核心子系统
目录 一、核心子系统 1、I/O调度 2、设备保护 二、假脱机技术 1、脱机: 2、假脱机(SPOOLing技术): 3、应用: 1.独占式设备: 2.共享设备: 4、共享打印机原理分析 三、总结 一、核心子系…...
winfrom窗体比例缩放
用于控件大小随窗体大小等比例缩放的C#代码。该代码可以在窗体重载中使用,以确保窗体中的控件在窗体大小改变时能够按比例缩放。 SetTag方法:该方法用于设置控件的Tag属性,以存储控件的宽度、高度、左边距、顶边距和字体大小等信息。SetCont…...
宇信科技:强势行业加速融入AIGC,同时做深做细
【科技明说 | 重磅专题】 大家可能没有想到,一向对外低调行事的宇信科技,在AIGC方面2023年就已经训练出了适配金融场景的垂直模型,并应用到了各产品线上,同时结合通用大模型预研了宇信金融系统编程大模型。宇信金融系…...
Google Play上的Android广告软件应用程序积累了200万次安装
大家好,今天我们要聊一聊Google Play上的一个热门话题——Android广告软件应用程序。最近,一些恶意应用程序在Google Play上累积了200万次的安装量,给用户推送了讨厌的广告,同时又隐藏了它们在受感染设备上的存在。 根据Doctor W…...
算法通关村第四关-黄金挑战栈的经典问题
括号匹配问题 描述 : 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有…...
前端开发必备技能!用简单CSS代码绘制三角形,提升用户体验
🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 ⭐ 专栏简介 📘 文章引言 一、前…...
想翻译pdf文档,试了几个工具对比:有阿里(完全免费,快,好用,质量高,不用注册登录)道最好(有限免费) 百度(有限免费)和谷歌完全免费(网不好)
文档翻释作为基础设施,工作必备。 阿里 (完全免费,快,好用,质量高,不用注册登录,无广告)我给满分 https://translate.alibaba.com/#core-translation 先选好语言。 Google(完全免…...
c# .net linux ImageSharp+FastDFS+Base64上传图片,压缩图片大小,图像处理dcoker中使用也可以
.net 以前是用System.Drawing来处理图片,但是在dcoker 、linux上用不了 微软官方推荐用 1、SkiaSharp 如果项目运行到docker里,需要NUGET安装SkiaSharp.NativeAssets.Linux.NoDependencies 注意:如果你同时引用SkiaSharp.NativeAssets.Li…...
Flutter FittedBox
🔥 英文单词FittedBox 🔥 Fitted 通过有道翻译如下 : Box 通过有道翻译如下 : 对 FittedBox 的理解 我们可以将 FittedBox 理解为合适的盒子,将其它布局放到FittedBox这样一个盒子中,从而实现 盒子里面的…...
亚信科技:发挥自我优势深入AIGC,并购整合高瞻远瞩致力未来路
【科技明说 | 重磅专题】 亚信科技在IT提供商领域中是一个低调的前行者,在全球通信及大型企业市场中扮演着重要的角色。对于近年来如火如荼AI方面的投入与研究,亚信科技是否也很重视呢? 事实上,是肯定的回答。 在我看…...
【设计模式】第17节:行为型模式之“解释器模式”
一、简介 解释器模式为某个语言定义它的语法(或者叫文法)表示,并定义一个解释器用来处理这个语法。 二、适用场景 领域特定语言复杂输入解释可扩展的语言结构 三、UML类图 四、案例 对输入的特定格式的打印语句进行解析并执行。 packag…...
各传输介质详细知识点
一.百兆网传输介质 快速以太网(802.3u) 100Base-T2 电缆:2对3类UTP 最大段长:100m 特性阻抗:100 100Base-T4 电缆:4对3类UTP 最大段长:100m 特点:8B/6T,NRZ编码 特性阻抗:1…...
历史随想随记
古往今来所有的王侯将相如不都成为人们茶余饭后的笑谈,一个人无论多么厉害,多么聪明,多么奸诈,多么有权势,他们都逃不出一个结局——死亡,我觉得这是人生最大的悲哀。看历史看的多了,就会发现这…...
ClickHouse Java多个参数的UDF编写
一、环境版本 环境版本docker clickhouse22.3.10.22 docker pull clickhouse/clickhouse-server:22.3.10.22二、XML配置 2.1 配置文件 # 创建udf配置文件 vim /etc/clickhouse-server/demo_function.xml<functions><function><type>executable</type&…...
RPA除了和OCR、NLP技术结合,还能和什么技术结合?
鉴于业内现在也经常把RPA称为数字员工,就虚拟一个人的形象来解答吧。 首先是头部,实现人的“听看说想”能力: 听:ASR(语音识别技术),主要用于听取和理解语音输入,让RPA能处理语音数…...
AssertionError: Torch not compiled with CUDA enabled
Pytorch和CUDA版本不兼容,运行python后(终端输入python回车)用以下代码测试 import torch print(torch.__version__) print(torch.cuda.is_available())返回False则说明目前的pytorch版本无法使用显卡,如下图所示 接着重装合适版…...
【Ubuntu 系统使用进入,自动进入base虚拟环境解决最全】
项目场景: 在Ubuntu上安装完anaconda后,发现每次打开终端后都会自动进入到base的虚拟环境中去,虽然在这些环境下使用问题不大,但一些软件的安装在虚拟环境下有影响。每次使用conda deactivate退出也很麻烦。 问题描述 安装玩之…...
C++项目——云备份-⑨-服务端与客户端功能联调
文章目录 专栏导读1.服务端源代码2.客户端源代码3.浏览器访问测试//listshow 4.上传文件测试5.文件下载测试 专栏导读 🌸作者简介:花想云 ,在读本科生一枚,C/C领域新星创作者,新星计划导师,阿里云专家博主&…...
Linux两条服务器实现相互免密登录
1.准备两台虚拟机,一台充当服务器端(server),一台充当客户端(client) 服务器端(server):192.168.75.139 客户端(client):192.168.75…...
华纳云Ubuntu环境怎么编译安装PHP和Nginx
在Ubuntu环境中编译安装PHP和Nginx需要进行一系列步骤。以下是安装PHP和Nginx的一般过程: 1. 更新系统: 首先,确保您的系统是最新的,运行以下命令更新软件包列表和已安装的软件包: sudo apt update sudo apt upgra…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
