5.1.4 I/O管理概述

I/O 管理需要完成如下4部分内容:

(1)状态跟踪:要能实时掌握外部设备的状态

(2)设备存取:要实现对设备的存取操作

(3)设备分配:在多用户环境下,负责设备的分配与回收

(4)设备控制:包括设备的驱动、完成和故障的中断处理

一、设备分类

1、按传输速率分

(1)低速:如键盘、鼠标

(2)中速:如行式打印机、激光打印机

(3)高速:如磁带机、磁盘机、光盘机

2、按信息交换单位分

(1)块设备:如磁盘

(2)字符设备:如键盘,打印机

二、控制方式

1、程序直接控制:程序直接对设备特环测试

2、中断驱动:引入中断机制,当设备准备完成时,发生中断

3、DMA:在I/O设备与主存之间开辟直接数据通路

4、通道控制:引入专门的I/O处理机进行管理

三、I/O子系统层次

1、用户层I/O软件:实现与用户交互的接口

2、设备独立性软件:实现用户程序与设备驱动器的统一接口、设备命令、设备保护以及设备分配与释放等,同时为设备管理和数据传送提供必要的存储空间。

设备独立性又称设备无关性,使得应用程序独立于具体使用的物理设备。为了实现设备的独立性而引入了逻辑设备和物理设备这两个概念。在应用程序中,使用逻辑设备名来请求使用某类设备;而在系统实际执行时,必须将逻辑设备名映射成物理设备名使用。

使用逻辑设备名的好处:

①增加设备分配的灵活性;

②易于实现I/O重定向(用于I/O操作的设备可以更换,而不必改变源程序)

为了实现设备独立性,必须再在驱动程序之上设置一层设备独立性软件。设备独立性软件主要功能:

①执行所有设备的公有操作。包括:对设备的分配与回收;将逻辑设备名,映射为物理设备名;对设备进行保护,禁止用户直接访问设备;缓存管理;差错控制;提供独立于设备的大小统一的逻辑块,屏蔽设备之间信息交换单元大小和传输速率的差异。

②向用户层(或文件层)提供统一接口。无论何种设备,他们向设备提供的接口应该是相同的。例如,对设备的读写操作,在应用程序中都统一使用read/write命令等。

3、设备驱动程序:与硬件直接相关,设备具体的差别被设备驱动程序所封装,负责具体实现系统对设备发出的操作指令

4、中断处理程序:用于处理中断相关事项,保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完毕并恢复被中断进程的现场,返回被中断进程。

硬件设备:保护一个机械部件(设备本身)和一个电子部件(控制器)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

如何用几个简单的命令改善你的Linux安全

作者:lrq110120 来源:http://richylu.blog.51cto.com/1481674/1915484 本文中,我们将讨论如何通过一些Lin...

39490
来自专栏CaiRui

Lvs IP负载均衡技术

Lvs集群的通用结构    Lvs集群采用IP负载均衡技术,属于IP层的交换(L4),具有很好的吞吐率。调度器分析客户端到服务器的IP报头信息,将请求均衡地转移...

44490
来自专栏皮振伟的专栏

[linux][storage]Linux存储栈

前言: 随着Linux的版本升高,存储栈的复杂度也随着增加。作者在这里简单介绍目前Linux存储栈。 分析: 1,storage stack ? 在用户态,可...

1.3K130
来自专栏北京马哥教育

调优 PHP

调优 PHP PHP 是运行应用程序代码的引擎。应该仅安装计划使用的那些模块,并配置您的 Web 服务器,使之仅为脚本文件(通常是以 .php 结尾的那些文...

50150
来自专栏云计算

虚拟机备份和恢复的六大最佳实践

虚拟机( virtual machine,简称 VM)的体系结构与传统的本地环境存在较大差异,因此需要不同的数据备份技术。基于此,本文将对虚拟机备份的一些最佳实...

40770
来自专栏北京马哥教育

误删重要文件怎么办?学会Linux 救援模式再也不担心

背景 在运用Linux时会出现一些误操作,导致系统无法正常使用,比如删除了某个重要依赖库,或者删除了rpm等等。在这里记录下具体的操作步骤,供以后参考。 意义 ...

41690
来自专栏云计算教程系列

物联网入门:搭建MQTT服务器

MQTT(消息队列遥测传输)是ISO 标准下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设...

5.4K90
来自专栏运维小白

25.2 安装Docker

Docker安装 curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/y...

41590
来自专栏月牙寂

k8s源码分析-----kubelet(9)podWorkers

第一时间获取文章,可以关注本人公众号 月牙寂道长 yueyajidaozhang

35130
来自专栏程序员叨叨叨

Spring in Action笔记(更新至2.2)

Web应用程序 : 是一种结构化的软件,它提供了该领域中常见的任务的自动化实现,同时作为一个内置的架构解决方案可以被在其上实现的应用程序轻松地继承。

6940

扫码关注云+社区

领取腾讯云代金券