操作系统:输入输出管理(一)系统概述与设备独立性软件

一战成硕

    • 5.1 I/O系统概述
      • 5.1.1 I/O设备
      • 5.1.2 I/O控制方式
      • 5.1.3 I/O软件层次结构
      • 5.1.4 应用程序的I/O接口
    • 5.2 设备独立性软件
      • 5.2.1 与设备无关的软件
      • 5.2.2 高速缓存与缓冲区
      • 5.2.3 设备分配与回收
      • 5.2.4 spooling技术(假脱机技术)

5.1 I/O系统概述

5.1.1 I/O设备

  1. 设备的分类
    按信息交换
    1)块设备 ,信息交换以数据块为单位,属于有结构设备,如磁盘等。磁盘设备的基本特征是传输率高,可寻址。
    2)字符设备,信息交换以字符为单位,属于无类型结构,如交换机打印机等,传输效率低,不可寻址。
    按传输效率
    1)低速设备
    2)中速设备
    3)高速设备

  2. I/O接口
    io接口位于cpu与设备之间,既要与CPU通信,又要与设备通信,还要具有按cpu发来的命令去控制设备的功能。主要由三部分组成
    1)设备控制器与cpu的接口,数据线,地址线,控制线
    2)设备控制器与设备接口
    3)io逻辑
    在这里插入图片描述

  3. I/O端口
    io端口指设备控制器中可被cpu访问的寄存器,只要有以下三类:
    数据寄存器
    状态寄存器
    控制寄存器
    实现cpu与io端口通信,有两种方法:
    1)独立编址
    2)统一编址

5.1.2 I/O控制方式

设备管理的主要任务之一是控制设备和内存或cpu之间的数据传送,外围设备和内存之间的输入输出控制方式有四种,下面分别加以介绍:

  1. 程序直接控制方式
    简单易于实现但cpu利用率低。
  2. 中断驱动方式
    允许io设备主动打断cpu的运行并请求服务。更有效,但仍然会消耗较多时间。
  3. DMA方式
    在io设备和内存之间开辟直接的数据交换通路,彻底解放cpu。
    1)基本单位是数据库
    2)所传送的数据,是从设备之间存入内存的,或者相反
    3)仅在传送一个或多个数据块的开始和结束时,才需要cpu干预,整块数据传送是在DMA控制器的控制下完成的。
    在这里插入图片描述
    要在主机与控制器之间实现数据的直接交换,须在DMA控制器中设置如下四类寄存器:
    1)命令/状态寄存器
    2)内存地址寄存器
    3)数据寄存器
    4)数据计数器
    DMA方式与中断方式的主要区别是,中断方式在每个数据需要传输时中断cpu,而DMA方式则是在所要求传送的一批数据传送结束时才中断cpu。此外,中断方式的数据传送是在中断处理时cpu控制完成,而DMA方式则是在DMA控制器下完成的。
  4. 通信管道方式
    io通道是指专门负责输入输出的处理机,io通道方式是DMA方式的发展,他可以进一步减少cpu的干预。即把一个数据块的读或写为单位干预,减少对一组数据块的读或写及有关控制和管理为单位干预,同时,又可以实现cpu通道和I/O设备三者并行操作,从而更有效提高整个系统的资源利用率。
    通道指令类型单一,没有自己的内存,通道所执行的通道程序是放在主机内存中的,也就是说,通道与cpu共享内存,通道中传输数据块大小传输内存位置这些信息由通道控制,一个通道可以控制多台设备与内存数据交换。

5.1.3 I/O软件层次结构

在这里插入图片描述

5.1.4 应用程序的I/O接口

(1)字符设备接口
(2)块设备接口
(3)网络设备接口
(4)阻塞/非阻塞I/O

5.2 设备独立性软件

5.2.1 与设备无关的软件

与设备无关的软件是I/O系统最高层软件,他的下层是设备驱动程序,其间的界限因操作系统和设备的不同而有所差异。

5.2.2 高速缓存与缓冲区

  1. 磁盘高速缓存
    利用内存中的存储空间来暂存从磁盘中读出的一系列盘块中的信息。磁盘高速缓存逻辑上属于磁盘,物理上则是驻留在内存中的盘块。
    高速缓存在内存中分为两种形式,一种是在内存中开辟一个单独的空间作为磁盘高速缓存,大小固定。另一种是把未利用的内存空间作为一个缓冲池,供请求分页系统和磁盘IO共享。

  2. 缓冲区
    在设备管理子系统中,引入缓冲区主要目的如下:
    1)缓和cpu与io设备间速度不匹配的矛盾。
    2)减少对CPU的中断频率,放宽对cpu中断响应时间的限制。
    3)解决基本数据单元大小(即数据粒度不匹配的问题)。
    4)提高cpu与io设备之间的并行性。
    实现方法如下:
    1)采用硬件缓冲器,成本高,除关键部位一般不用。
    2)采用缓冲区(位于内存区域)
    根据系统设置缓冲器的个数,缓冲技术可以分为如下几种:
    (1)单缓冲
    (2)双缓冲
    (3)循环缓冲
    (4)缓冲池

  3. 高速缓冲与缓冲区对比
    在这里插入图片描述

5.2.3 设备分配与回收

  1. 设备分配概述
    设备分配是指根据用户的io请求分配所需的设备。分配的总原则是充分发挥设备的使用效率,尽可能让设备忙碌,又避免由于不合理的分配方法造成进程死锁。从设备的特性来看,采用以下三种方通过分时式的设备成为独占设备、共享设备和虚拟设备。
    1)独占式使用设备:进程分配到独占设备后,便由其独占,直至该进程释放该设备。
    2)分时式共享使用设备:对于共享设备,可同时分配多个进程,通过分时共享使用。
    3)以spooling方式使用外部设备,spooling技术实现了虚拟设备功能,可以将设备同时分配多个进程,这种技术实质上就是实现了对设备的io操作的批处理。
  2. 设备分配的数据结构
    设备分配依据的主要数据结构有设备控制表(DCT)、控制器控制表(COCT)、通道控制表(CHCT),各数据结构功能如下:
    在这里插入图片描述
    在这里插入图片描述
  3. 设备分配策略
    1)设备分配原则
    设备分配应根据设备特性,用户要求和系统配置情况,既要充分发挥设备使用效率,又要避免造成进程死锁,还要将用户程序和具体设备隔离开来。
    2)设备分配方式
    静态分配:主要用于对独占设备的分配,在用户作业开始执行前,由系统一次性分配该作业的全部设备,控制器,一旦分配,这些设备控制器就一直由该作业所占用,直到该作业撤销,静态分配不会遭遇死锁,但设备利用率低。
    动态分配:在进程执行过程中,根据执行才需要进行,当进程需要设备时,通过系统调用命令向系统提出调用请求,由系统按某种策略给进程分配所需设备控制器,一旦用完,便立即释放。提高了设备利用率,但若分配方式不当,可能造成死锁。
    3)设备分配算法
    先请求先分配。优先级高者优先等。
    在这里插入图片描述
  4. 设备的安全性
    在这里插入图片描述
  5. 逻辑设备名到物理设备的映射
    在这里插入图片描述

5.2.4 spooling技术(假脱机技术)

操作系统中采用的一项独占设备改造成共享设备的技术。该技术利用专门的外围控制机,将低俗io设备上的数据传送到告诉磁盘,或者相反。
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/128921.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一分钟秒懂人工智能对齐

文章目录 1.什么是人工智能对齐2.为什么要研究人工智能对齐3.人工智能对齐的常见方法 1.什么是人工智能对齐 人工智能对齐(AI Alignment)指让人工智能的行为符合人的意图和价值观。 人工智能系统可能会出现“不对齐”(misalign)…

【EI会议征稿】JPCS独立出版-第五届新材料与清洁能源国际学术会议(ICAMCE 2024)

JPCS独立出版-第五届新材料与清洁能源国际学术会议(ICAMCE 2024) 2024 5th International Conference on Advanced Material and Clean Energy 第五届新材料与清洁能源国际学术会议(ICAMCE 2024)将于2024年2月23-25日在中国▪长沙…

电机应用-无刷直流电机

无刷直流电机 无刷直流电机(Brushless Dirent Current Motor,简称BLDCM)由电动机主体和驱动器组成,无电刷和无换向器,是除了有刷电机外用得最多的一种电机。 无刷直流电机不使用机械的电刷装置,采用方波自控…

带你一分钟看懂 “kubernetes”

目录 什么是 Kubernetes Kubernetes 概述 为什么需要 Kubernetes,它能做什么? 什么是 Kubernetes 从官方网站上可以看到,它是一个工业级的容器编排平台。Kubernetes 这个单词是希腊语,它的中文翻译是“舵手”或者“飞行员”。在…

NFT Insider112:Gucci Cosmos LAND亮相 The Sandbox,和YGG一起探索Web3增长新方式

引言:NFT Insider由NFT收藏组织WHALE Members(https://twitter.com/WHALEMembers)、BeepCrypto(https://twitter.com/beep_crypto)联合出品,浓缩每周NFT新闻,为大家带来关于NFT最全面、最新鲜、最有价值的讯息。每期周…

0基础制作产品图册的干货,一个网站即可

很多朋友想要制作产品图册,但是不知道如何入手,其实制作产品图册并不难,一个网站就可以搞定。下面就为大家分享一些干货,帮助大家快速入门。 首先,我们需要选择一个合适的网站。比如FLBOOK在线制作电子杂志平台。这个网…

【chat】3: ubutnu 安装mysql-8

如何在 Ubuntu 20.04 上安装 MySQLC搭建集群聊天室(七):MySQL数据库配置 及项目工程目录配置 大神是centos的. apt 安装 rootk8s-master-2K4G:~# sudo apt install mysql-server Reading package lists... Done Building dependency tree Re…

SQL触发器

触发器是与表有关的数据库对象。 在insert/update/delete之前(BEFORE)或之后(AFTER),触发并执行触发 器中定义的SQL语句集合。 触发器的这种特性可以协助应用在数据库端确保数据的完整性, 日志记录 , 数据校验等操作 。 使用别名OLD和NEW来引用触发器中发生变化的…

Google play提高上包率——如何防止封号、拒审、下架?

Google Play是全球最大的移动应用商店之一,它是运行Android操作系统的设备的官方应用商店。它提供各种数字内容,包括应用程序(应用)、游戏、音乐、书籍等,包括免费和付费选项。这也为许多游戏/APP出海的企业或开发者提…

国内首批!华为云云原生中间件DCSDMS获软件可信“卓越级”认证

11月6日,在软件供应链可信研讨大会上,工业和信息化部电子第五研究所(以下简称“电子五所”)发布了首批软件产品可信评估结果,并为通过评估的企业颁发证书。 华为云作为中国领先的综合云计算服务商受邀参加本次大会&…

【星海随笔】git的使用

1.在终端,检查git是否安装 git --version 2.没有安装的话去,官网,下载git 3.一直点下一步即可 4.安装后在终端检查git是否安装好 5.设置用户名和邮件地址(最好和GitHub的用户名/邮箱保持一致) git config --global user.name “自己的用户名”…

建表时如何合理选择字段类型

前言 我们在建表的时候关于字段类型的选择会有这么几类人: 严谨型 严格调研每个字段可能的大小,然后根据不同字段类型的限制,进行选择,这一类人在创建关系型数据表的时候是没有问题的。图自己省事型 把所有字段都设置为String&a…

100 寻找重复数

寻找重复数 题解1 二分法题解2 快慢指针(同环形链表2(ab)(ab)kL) 给定一个包含 n 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。 假设 nums 只有 一个重复的整数 ,返…

使用Pytorch的一些小细节(一)

文章目录 前言数据结构-张量max函数索引函数赋值函数拼接函数 前言 由于不经常动手写代码,所以对于python语言中的常见数据结构的用法也不是很熟悉,对于pytorch中的数据结构就更加不熟悉了。之前的代码基础是基于C语言的,属性都是自己定义&a…

动态规划-构建乘积数组

** 描述 给定一个数组 A[0,1,…,n-1] ,请构建一个数组 B[0,1,…,n-1] ,其中 B 的元素 B[i]A[0]A[1]…*A[i-1]A[i1]…*A[n-1](除 A[i] 以外的全部元素的的乘积)。程序中不能使用除法。(注意:规定 B[0] A[1] * A[2] * … * A[n-1…

量子计算和量子通信技术:引领潜力无限的未来

近年来,随着量子计算和量子通信技术的迅速发展,它们在各个领域的广泛应用前景引起了人们的极大兴趣。本文将深入探讨量子计算和量子通信技术的普遍应用,以及它们预示的未来,同时提出业内人士需要注意的事项。 介绍:量子…

【Spring之底层核心架构概念解析】

文章目录 一、BeanDefinition二、BeanDefinitionReader2.1、AnnotatedBeanDefinitionReader2.2、XmlBeanDefinitionReader 五、ClassPathBeanDefinitionScanner六、BeanFactory七、ApplicationContext7.1、AnnotationConfigApplicationContext7.2、ClassPathXmlApplicationCont…

E云管家个微协议框架--新版本的利器

在互联网时代,高效、可靠的互联网协议对于实现稳定、安全的数据传输至关重要。E云管家作为一项创新性的IPAD协议构建工具,基于IPAD8.0.37协议为开发者提供了强大而灵活的功能,使他们能够轻松构建高效的通信协议。本文将介绍E云管家的主要特点…

python3.8及以上版本绑定gdal库的一个注意事项

作者:朱金灿 来源:clever101的专栏 为什么大多数人学不会人工智能编程?>>> gdal和python绑定参考文章:windows环境下python和gdal绑定方法   值得注意的是绑定python3.8及以上版本后在python程序中初始化gdal库时会出…

“三门问题”解决方案:换不换?更换策略与贝叶斯策略?附 Java 验证代码

文章目录 前言一、什么是“三门问题”?二、“三门问题”解决策略详解2.1、错误策略:直觉策略与随机策略2.2、更换策略与事件分析计算2.3、贝叶斯策略及分析流程 三、Java 语言验证“三门问题”总结 前言 “三门问题”作为一道经典逻辑推理题,…