设备分配与spooling技术详解
5.4 设备分配(重点!!!)
- 一、设备分配中的数据结构
- 二、设备分配时应考虑的因素
- 三、设备独立性
- 四、设备独占的分配程序
- 五、Spooling技术
一、设备分配中的数据结构
- 在进行设备分配时,通常都要借助一些表格的帮助。在表格中记录了相应设备或控制器的状态及对设备或控制器进行控制所需要的信息。
- 在进行设备分配时所需的数据结构有:设备控制表、控制器控制表、通道控制表和系统设备表等。
二、设备分配时应该考虑的因素
- 设备的固有属性
- 设备分配算法
- 设备分配中的安全性
1、设备的固有属性
设备的固有属性可分为三种:独占性、共享性和虚拟性设备。
- 独占设备在一段时间内只能由一个进程使用。
- 共享设备允许多个进程共享。
- 虚拟设备是经过某种处理由独占设备变为虚拟设备。
2、设备分配算法
- 先来先服务:根据请求的先后次序排成一个队列,设备总是分配给队首进程。
- 优先级高者优先:将优先权高的进程安排在设备队列前面,优先级相同的先来先服务。
3、设备分配中的安全性
从进程运行的安全性上考虑,设备分配有以下两种方式:
- 安全分配方式:
每当进程发出I/O请求后便阻塞,直到I/O完成后背唤醒,虽然安全但是缓慢。 - 不安全分配方式:
不断发出I/O请求,直到所请求的设备已经被另一进程占用才阻塞。虽迅速但不安全。
三、设备独立性
- 设备独立性(Device Independence)的概念,应用于程序独立于具体使用的物理设备。
- 物理设备和逻辑设备:类似于物理地址和逻辑地址的概念。使用逻辑设备名称来请求使用某类设备;系统实际执行时,必须使用物理设备名称。
设备独立性的优点
- 设备分配时的灵活性
应用程序(进程)不必拘泥于某个物理设备,而可以用任意一台空闲设备。 - 易于实现I/O重定向
I/O重定向指用于I/O操作的设备可以更换(重定向),而不必改变应用程序。
四、独占设备的分配程序
五、SPOOLing技术
共享打印机
- 打印机是独占设备,利用SPOOLing技术将其改造成共享设备。
- 当用户进程请求打印时,SPOOLing系统同意为他打印,但并不真正把打印机分配给它,而是由输出进程在输出井中为之申请一空闲盘块区,将要打印的数据送入其中;再为用户进程申请一张空白的用户请求打印表,将用户的打印要求填入其中,再将该表挂到请求打印队列上。如果还有进程要求打印输出,系统仍可接收该请求。
- 如果打印机空闲,输出进程将从请求打印队列的队首取出一张请求打印表,根据表中的要求将要打印的数据从输出井传送到内存缓冲区,再由打印机进行打印。同样处理下一张请求打印表,直至请求队列为空,输出进程才将自己阻塞起来、直到下次再有打印请求被唤醒。
SPOOLing系统的特点
- 提高了I/O的速度。利用输入输出井模拟成脱机输入输出,缓和了CPU和I/O设备速度不匹配的矛盾。
- 将独占设备改造为共享设备
- 实现了虚拟设备功能。多个进程同时使用一台独占设备,虚拟成了多台设备。
5.6 磁盘调度
目前常用的磁盘调度算法:
- 先来先服务
- 最短寻道时间优先
- 扫描(SCAN)算法(电梯调度算法)
- 循环扫描CSCAN算法
- N-step-SCAN和FSCAN调度算法
一、先来先服务
根据进程请求访问磁盘的先后次序进行调度。
- 优点:公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。
- 缺点:未对寻道进行优化,致使平均寻道时间可能较长。仅适用于请求磁盘I/O的进程数目较少的场合。
二、最短寻道时间优先SSTF
三、扫描(SCAN)算法(电梯调度算法)
四、循环扫描CSCAN算法
- 为了减少请求进程的延迟,CSCAN算法规定磁头单向移动,若规定只自里向外移动,当磁头移到最外的被访问磁道时,磁头立即返回到最里的欲访问磁道,即将最小磁道号紧接着最大磁道号构成循环,进行扫描。
- 采用循环扫描方式后,上述请求进程的请求延迟,将从原来的2T减为T+Smax,其中,T为有里向外(或相反)扫描完所有要访问的磁道所需的寻道时间,而Smax是将磁头从最外面被访问的磁道直接移到最里边欲访问的磁道的寻道时间。
设备分配与spooling技术详解相关推荐
- 【H.264/AVC视频编解码技术详解】十九:熵编码算法(5)——H.264的CABAC(上):语法元素的二值化方法...
<H.264/AVC视频编解码技术详解>视频教程已经在"CSDN学院"上线,视频中详述了H.264的背景.标准协议和实现,并通过一个实战工程的形式对H.264的标准进行 ...
- Linux磁盘阵列技术详解(二)--raid 1创建
我在Linux磁盘阵列技术详解(一)里已经详细介绍了几种RAID磁盘阵列方式,原理以及创建raid 0 的详细步骤.那么这篇文档就着重讲解如何创建raid 1的技术: 步骤如下: ① 分区 同样我们还 ...
- 《Hadoop技术详解》一导读
前 言 Hadoop技术详解 本书采用的约定 本书采用以下排版约定. 斜体 用于表明新的术语.URL.电子邮件地址.文件名和文件扩展名. 等宽字体 用于程序清单,正文段落中有关的程序元素,如变量及函数 ...
- 科普:5G网络关键技术详解
不久前,中国华为公司主推的Polar Code(极化码)方案,成为5G控制信道eMBB场景编码方案.消息一出,在网络上就炸开了锅,甚至有媒体用"华为碾压高通,拿下5G时代"来形容这 ...
- zookeeper 分布式过程协同技术详解.pdf_阿里大牛耗时18个月整理这份ZooKeeper分布式详解文档...
前言 摩尔定律揭示了集成电路每18个月计算性能就会增加一倍.随着信息的飞速膨胀,很多应用都无法依赖单个服务器的性能升级来处理如此庞大的数据量,分布式系统和应用越来越受到人们的青睐.分布式系统和应用不仅 ...
- Qtum量子链研究院:Plasma技术详解(下篇)
Plasma的设计模型有两个主要的分支:Plasma MVP(Minimal Viable Plasma,最小可行的Plasma)和Plasma Cash.Plasma MVP的目标是为最基本的可用的 ...
- Python数据科学-技术详解与商业实践视频教程
Python数据科学-技术详解与商业实践(八大案例) 网盘地址:https://pan.baidu.com/s/13QrR_5Er6LgWCWzSb7qOrQ 提取码:s7vw 备用地址(腾讯微云): ...
- 视频直播技术详解(8)直播云 SDK 性能测试模型
<视频直播技术详解>系列之八:直播云 SDK 性能测试模型 牛小七2016年10月12日发布在 视频直播技术详解 七牛云于 6 月底发布了一个针对视频直播的实时流网络 LiveNet 和完 ...
- 视频直播技术详解(7)现代播放器原理
<视频直播技术详解>系列之七:现代播放器原理 牛小七2016年9月29日发布在 视频直播技术详解 from: http://blog.qiniu.com/archives/7040 七牛云 ...
最新文章
- 机器人煮面机创始人_秋天的第一杯枸杞拿铁,由机器人冲泡
- ArrayList和LinkedList类的用法及区别
- 动态规划 —— 动态规划概述
- 性能为王:SQL标量子查询的优化案例分析
- UITableView性能优化 - 中级篇
- 程序员面试宝典——第6章
- Linux驱动加载总结
- 转:C# 中 MSCHART 饼状图显示百分比
- 提取Windows锁屏壁纸最简单的方式
- linux+qt+分屏显示界面,Qt5支持双屏显示
- 蓝桥杯单片机第七届省赛-模拟风扇控制系统
- 云鲸扫拖一体机器人说明书_比老公更好用的扫拖一体机——自动洗拖布的云鲸扫拖机器人使用体验...
- 删除mysql中的函数
- C语言中%*s,%*c 是什么意思(还有%*.*s,%-*.*s)
- iOS偏好设置的存储注意事项
- 数加平台在数据挖掘项目中的实践 1
- 搜索引擎排名优化技巧有哪些
- 学生免费领取阿里云ECS云服务器并使用全过程(部署个人博客项目)
- 【高考】人生的第一次转折
- 微信小程序mp-uploader组件
热门文章
- mysql len hex asc_MySQL中RR模式下死锁一例
- CVPR 2023 点云系列 | Point-NN无需训练的非参数、即插即用网络
- Vmware设置静态ip连网 ( 使用自定义Vmnet8 net )
- python和matlab的随机种子是一样的吗_matlab中利用不同的随机数种子获取的样本是统一分布吗?...
- Arduino 卡片13自制风扇
- [转载]BBC镜头下的2012年世锦赛
- 如何来解决拉线位移传感器的温度漂移现象?
- Python实现KNN(K近邻)回归模型(KNeighborsRegressor算法)并应用网格搜索算法寻找最优参数值项目实战
- python程序教程答案_2020知到题库Python程序设计答案教程
- MyHeritage - 免费族谱 推出中文版