计算机系统基础ppt2019第8章 输入输出操作的实现

合集下载

第八章-输入输出系统(共64张PPT)全文编辑修改

第八章-输入输出系统(共64张PPT)全文编辑修改

3、中断类型:
– 按中断产生的位置: • 外部中断:CPU以外的部件引起的中断。 外中断又可分为不可屏蔽中断和可屏蔽中断 两种。不可屏蔽中断优先级较高,常用于 应急处理,如掉电、内存读写校验错等。 可屏蔽中断级别较低,常用于一般I/O设 备的数据传送。
• 内部中断:由CPU内部硬件或软件引起的中 断,如单步中断、溢出中断。
路之前,还要受到屏蔽触发器的控制。
当MASK=1,表示对应中断源的请求被屏蔽。 当MASK=0,才允许对应中断源的请求参与排队判优
中断屏蔽寄存器的作用
INT
≥1
由程序 控制
中断屏蔽 0 1 0 1 0 1 0 1 寄存器 &
向 量 地 址
……
编 码 器
排 队 逻 辑


& 0 1 0 1 0 1 0 1 中断请求 寄存器
程序查询方式——程序流程图
设置计数值
修改计数器
设置内存缓冲区首址
比如指令系统中的软中断指令INT n。 中断处理次序和中断响应次序是两个不同的概念:

中断事件在提出中断请求的同时,通过硬件向主机提供中断服务程序的入口地址,即向量地址。 传送完?
CPU等候输入设备的数据成为有效
(2)数据通道中断源,也称直接启存动储外器设存放(DMA)操作。
3级
4级
则 只 需 使 中 断 屏 蔽 码 改 (1)一般的输入、输出外围设备。
一般是故障引起的中断最优先;
为: 第1级 1 1 1 1 (4)DMA传送速度快,CPU和外设并行工作,提高了系统的效率;
先由主机通过启动指令启动外设工作,启动后主机用测试指令不断查询外设工作状态,当输入设备处于准备好状态或输出设备处于空闲状态时,

计算机组成原理第8章 输入输出系统.ppt

计算机组成原理第8章 输入输出系统.ppt

2019年12月24日星期

25
8.1 主机与外设的连接
计算机组成原理
1. 程序查询方式
这种方式控制简单,但外设和主机不能同时 工作,各外设之间也不能同时工作,系统效率很 低,因此,仅适用于外设的数目不多,对I/O处理 的实时要求不那么高,CPU的操作任务比较单一, 并不很忙的情况。
2019年12月24日星期

8
8.1 主机与外设的连接
计算机组成原理
(5) 传递控制命令和状态信息
当CPU要启动某一外设时,通过接口中的控 制命令寄存器向外设发出启动命令;当外设准备 就绪时,则有状态信息送回接口中的状态寄存器, 为CPU 提供反馈信息,告诉CPU,I/O设备已经 具备和CPU交换数据的条件。当外设向CPU提出 中断请求和DMA请求时,CPU也有相应的响应信 号反馈给外设。
2019年12月24日星期

27
8.1 主机与外设的连接
计算机组成原理
2.
程序中断在信息交换方式中处于最重要的地 位,它不仅允许主机和外设同时并行工作,并且 允许一台主机管理多台外设。但是完成一次程序 中断需要许多辅助操作,可能使CPU应接不暇; 另外,对于一些高速外设,由于信息交换是成批 的,如果处理不及时,可能会造成信息丢失,因 此,它主要适用于中、低速外设。
任意两个连续的8位端口可作为1个16位端口 处理;四个连续的8位端口可作为1个32位端口处 理。因此,I/O地址空间最多能提供64K个8位端 口、32K个16位端口、16K个32位端口或总容量 不超过64KB的不同端口的组合。
2019年12月24日星期

20
8.1 主机与外设的连接
计算机组成原理
80x86的专用I/O指令IN和OUT有直接寻址和 间接寻址两种类型。直接寻址I/O端口的寻址范围 为00~FFH,至多为256个端口地址。这时程序 可以指定:

第8章输入输出设备2PPT课件

第8章输入输出设备2PPT课件

8.2 输入输出接口 I/O接口的功能 1、实现数据缓冲 实现输入缓冲、输出锁存,协调CPU与外设在速度上的差异 2、执行CPU的命令 CPU对外设的各种命令以控制代码的形式发送到接口电路 3、向CPU返回外设的状态 为了控制CPU与外设之间的数据传送,接口电路还要向CPU提
供诸如数据寄存器“空”、“满”、“准备就绪”、“忙” 、“闲”等状态信号,并在CPU查询时反馈这些状态信息
➢ 外设的编址方式 • 独立编址(I/O映射方式) - 存储单元和I/O端口统一分开编址,各自有独立的地址空间 - 指令系统中设置了专用I/O指令来用访问I/O端口,通过指令
来区分寻址对象(I/O 还是Memory) - 优点:I/O端口不占用存储器空间;I/O端口数目不多,占用
地址线少,译码电路简单;I/O指令长度短,速度快 - 缺点: 专用I/O指令增加指令系统复杂性,且指令较少,程
I/O接口的功能 4、设备选择 外设接口应具有识别自我的能力,只有当CPU给出的端口地址
处于自己的地址范围内(即被选中),接口才与CPU交换信 息,否则不允许有任何操作 5、实现数据格式的转换 CPU与接口的数据传送是并行数据传送,而有的外设是串行数 据传送,因此接口应具有数据并行→串行或串行→并行的功 能
设的核心
8.3 主机与外设交换信息的方式 ➢ 计算机的基本功能之一是能够与外部设备交换信息 ➢ 主机与外设交换数据有5种方式 • 程序查询方式 • 程序中断方式 • 直接存储器访问(DMA)方式 • 通道方式 • 输入输出处理机(IOP)方式
程序查询方式
开始
• 工作原理:CPU查询外设是否 准备好。准备好交换数据,否则
I/O指令格式 • I/O设备统一编址时,指令系统中不设置专用的I/O指令,用

操作系统输入输出系统PPT课件

操作系统输入输出系统PPT课件
内部中断:你正在吃饭,这时碗里的饭没有了,你要去盛饭,盛 了饭回来继续吃,在这里吃饭依然是你目前正在处理的一个程序, 碗里的饭没有了相当于是一个中断,这个中断是由你吃饭引起了, 相当于系统中的标志位溢出;
40
4. 向量与非向量中断
中断向量是指向量中断在中断事件在提出 中断请求时,通过硬件向主机提供的中断向 量地址。中断向量由中断源的有关硬件电路 殊功能的处理器,
它能独立地执行通道程序,产生相应的 控制信号,实现对外设的统一管理和外 设与主存间的数据传送。
32
但它不是一个独立的处理器,需要
在CPU的I/O指令的指挥下才能启动、停
止和改变工作状态,其运行的程序一般
也放在CPU程序存储空间中。
33
4. I/O处理机方式 I/O处理也叫外围处理机,I/O处理机
划出地址给I/O端口,优点类型多,功能 全,缺点使存储器的可用地址空间变小。
17
18
2. I/O独立编址
19
20
输人输出设备的控制 1. 程序控制
21
(1)无条件传送方式
22
(2)条件控制方式
条件控制方式又称为程序查询方式。 在这种方式中,计算机的主机在与外设 传送信息时需先检查外设的或主机的工 作状态。
39
3. 内部中断和外部中断:
外部中断是指外部有中断源时执行相应的中断程序,主要是指 INT0,INT1,通讯中断;内部中断主要是指定时器/计数器中断, 装栈溢出后置位相关特殊寄存器来执行中断;
举一个例子,外部中断:你在吃饭,这时候电话响了,你暂时放 下餐具去接听电话在这里吃饭是你目前正在执行的程序,电话响 了,是一个中断源,他是随机的,不定时发生,接完电话(处理 完中断事件)你回来继续吃,(继续执行中断点没有做处理完的 程序)

输入和输出处理PPT课件

输入和输出处理PPT课件
• 1. 生成流对象 • 2. 读入/写出字符
第8页/共23页
FileReader和FileWriter类 由于InputStreamReader和OutputStreamWriter字符流类在创建
流类的对象时必须以一个字节流作为原始的数据流来打开文件。为了能够 直接将一个具体的文件名的文件直接转换为字符流类的对象,在java.io 包中还为程序员提供了InputStreamReader和OutputStreamWriter字 符 流 类 的 两 个 子 类 F i l e Re a d e r 和 F i l e W r i t e r.
第13页/共23页
FileInputStream类
• 下列3种方法可创建FileInputStream对象: FileInputStream(File file) FileInputStream(FileDescription fdObj) FileInputStream(String name) • 在读文件时有几个必要流程如下: 使用文件输入流读取文件夹 处理I/O异常 从输入流中读取字节 关闭流
• 2. 读入和写出字符 • 3. 获取当前编码方式 • 4. 关闭流
第7页/共23页
BufferedReader和BufferedWriter • 为提高字符流的处理效率,可以采用缓冲机制。JDK引入了 BufferedReader和BufferedWriter类,用来对字符流进行成批的处理。 其中的方法readLine()是读出一行字符,而newLine()则是写入一行字符, 由于提供缓冲机制,把任意的输入流或输出流“捆绑”到缓冲流上将获得 性能的提高,同时也可以在创建缓冲流对象进设置缓冲区的大小。
第21页/共23页
串行化的注意事项

计算机原理课件——输入输出系统

计算机原理课件——输入输出系统
中断的具体过程如下图所示:
中断是CPU处理外部突发事件的一个重要技 术。它能使CPU在运行过程中对外部事件发出的 中断请求及时地进行处理,处理完成后又立即返 回断点,继续进行CPU原来的工作。引起中断的 原因或者说发出中断请求的来源叫做中断源。根 据中断源的不同,可以把中断分为硬件中断和软 件中断两大类,而硬件中断又可以分为外部中断 和内部中断两类。
(7)可编程功能:现代微机的I/O接口多数是可编程 接口(Programmable interface)。这样可以在不改动任 何硬件的情况下,只要修改控制程序就可以改变接口的工 作方式,使接口执行不同的操作命令,大大增加了接口功 能的灵活性。
2. I/O接口的基本结构
I/O接口电路的一侧与各种各样的外围设备 相连接,另一侧与系统总线相连接,由于均采用 标准的逻辑电路,所以硬件的连接十分简单。如 图所示是I/O接口的基本结构。
(3)支持多个I/O设备同时执行输入/输出操作,降低 在输入/输出操作过程中对CPU干预的需求。与CPU相比, 许多设备的读写速度是非常慢的,如果要求CPU一定要等 待这些设备读写完成之后再执行下一条指令,CPU的大部 分时间将花在等待上,系统性能会降低。为此,引进了程 序中断方式和直接存储器存取方式(DMA)等来解决这些 问题,这些在本章内都会有所介绍。
计算机中的中断源一般有以下几种: (1)外设的服务请求。如用户敲了一个键后,键盘向
CPU提出中断请求,请求CPU接收该按键的编码。又如打 印机在打印完一个字符后向CPU提出中断请求,请求CPU 输出下一个要打印的字符(有的打印机设有数据缓冲区, 等缓冲区的数据都打印完后,才提出中断请求)。
(2)CPU内部事件。如除法错,运算过程中出现溢出, 设置了单步执行方式等。

2019【大学课件】输入输出系统.ppt

2019【大学课件】输入输出系统.ppt
/sundae_m eng 14


异步通信方式(续)

根据请求和应答信号的建立和撤销是否互相依赖,异步 通信又可分为三种:非互锁通信、半互锁通信和全互锁 通信,其中全互锁通信的可靠性最高。
/sundae_m eng
15
/sundae_m eng
3
1、总线定义

所谓总线是一组能为多个功能部件分时共享的信息传输线路, 借助该传输线路,计算机在各功能部件之间实现地址、数据和 控制信息的交换。总线包含地址总线、数据总线和控制总线。

学习总线概念应搞清楚两点,一要搞清楚“一组信息传输线 路e_m eng
10
总线宽度

任何总线的信号线在功能上可分为数据线、地址线、控制线。所 谓总线宽度就是各功能组中的信号线数,关系到计算机系统数据 传输的速率、可管理内存的大小、集成度和硬件成本的问题。
数据线提供各部件数据传送的途径。典型的数据总线有8位、16 位、32位等。数据总线的宽度决定同时传送的数据位数,增加数 据总线的宽度能够提高总线带宽。总线带宽是指单位时间内总线 传送的数据量,它定义了总线本身所能达到的最高传输速率。 地址总线用于传送读写数据的单元地址。总线中地址线数越多, CPU可直接寻址的空间越大。n位总线可寻址2n个单元。 控制线主要用来实现控制功能,如中断请求线和应答线、总线请 求线和应答线等。

CPU内部总线:CPU内部连接各寄存器和运算部件之间的互联 线。由于CPU的集成化,这组总线从外部是看不见的。 系统总线:连接计算机系统各功能部件,如CPU、存储器、I/O 接口之间的总线。系统总线是可见的。 外总线:计算机之间、计算机与其它设备之间的连接线称为外 总线。在很多情况下,这些连线不是计算机专用的,主要用于 其它设备上。

计算机控制-输入输出.ppt

计算机控制-输入输出.ppt

2.3 模拟量输出通道
2.3.1 D/A转换器概述
模拟量输出通道的核心部件是D/A转换器。D/A转换器是指将 数字量转换成模拟量的元件或装置,它输出的模拟量(电压或电 流)与参考电压和二进制数成比例。D/A转换器品种繁多,但在 集成D/A产品中多按T型和倒T型电阻解码网络的D/A转换原理进 行转换,故下面将以倒T型电阻D/A为例介绍D/A转换原理。
本章内容其实质是《微机原理与应用》课程中的知识
2.1过程输入输出通道概述
过程输入输出通道由模拟量输入输出通道和开关量(包含脉冲 量)输入输出通道组成。模拟量输入通道把反映生产过程或设备工 况的模拟信号(如温度、压力、流量、速度、液位等)、转换为数 字信号送给微型计算机;模拟量输出通道则把微型计算机输出的数 字控制信号转换为模拟信号(电压或电流)作用于执行机构,实现 对生产过程或设备的控制。开关量(脉冲量、数字量)输入通道把 反映生产过程或设备工况的开关信号(如继电器接点、行程开关、 按扭等)、脉冲信号(如速度、位移、流量脉冲等)送给微型计算 机;微型计算机通过开关量输出通道控制那些接受开关(数字)信 号的执行机构和显示、指示装置。
1.D/A转换器工作原理
D/A转换器主要由四部分组成:基准电压VREF,R-2R T型电 阻网络,电子开关Ki(i=0,1,...,n-1)和运算放大器A。一个 4位的D/A转换器的原理框图如图2.14所示。
图2.14 R-2R电阻网络D/A转换器
2.D/A转换器的主要技术指标 ⑴ 分辨率
分辨率是指当输入数字量发生单位数码变化即最低有效位LSB产 生一次变化时,输出模拟量对应的变化量。分辨率△与数字量输入 的位数n呈下列关系: △=VREF/2n
2.1.4 开关量(数字量)输出通道的基本结构
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

最终用户:键盘、鼠标通过操作界面传递给OS
用户程序:通过函数(高级语言)转换为系统调用传递给OS
I/O软件被组织成从高到低的四个层次,层次越低,则越接近设备 而越远离用户程序。这四个层次依次为:
(1) 用户层I/O软件(I/O函数调用系统调用)
(2) 与设备无关的操作系统I/O软件 (3) 设备驱动程序 (4) I/O中断处理程序
• 为用户(最终用户、用户程序)使用系统提供一个操作接口
I/O子系统概述
° 所有高级语言的运行时(runtime) 都提供了执行I/O功能的机制
例如,C语言中提供了包含像printf() 和scanf()等这样的标准I/O库函数, C++语言中提供了如 <<(输入)和 >>(输出)这样的重载操作符。
– I/O子系统的组成和层次结构 – 用户空间I/O软件 – I/O硬件与软件的接口 – 内核空间I/O软件
I/O操作的实现
° 分以下三个部分介绍 • 第一讲:用户空间I/O软件 - I/O子系统概述 - 文件的基本概念 - 用户空间的I/O函数 • 第二讲:I/O硬件和软件的接口 - I/O设备和设备控制器 - I/O端口及其编址方式 - I/O控制方式 • 第三讲:内核空间I/O软件 - 与设备无关的I/O软件 - 设备驱动程序 - 中断服务程序
“hello,world/n ”
“hello” “hello,world/n”
Hello可执行文件
问题:hello程序何时被装?谁来装入?被谁启动?每次是否被装到相同的地 方?Hello程序是否能直接访问硬件资源?
操作系统在程序执行过程中的作用
° Shell进程生成子进程,子进程调用execve系统调用启动加载器,以 装入Hello程序,最后跳转到第一条指令执行
108 111 44 32 119 111 114 108 100 92 110 34 41 59 10 125
复习:Hello程序的数据流动过程 Unix>./hello
Red:shell命令行处理 Blue:可执行文件加载
hello, world unix>
Cyan:hello程序执行过程
“hello”
° 从高级语言程序中通过I/O函数或I/O 操作符提出I/O请求,到设备响应并完 成I/O请求,涉及到多层次I/O软件和 I/O硬件的协作。
° I/O子系统也采用层次结构
从用户I/O软件切换到内核I/O软件的唯一 办法是“异常”机制:系统调用(自陷)
I/O子系统概述
各类用户的I/O请求需要通过某种方式传给OS:
° 在Hello程序执行过程中,Hello本身不会直接访问键盘、显示器、磁 盘和主存储器等硬件资源,而是依靠OS提供的服务来间接访问。 例如,利用° 操作系统是在应用程序和硬件之间插入的一个中间软件层。 ° 操作系统的两个主要的作用:
• 硬件资源管理,以达到以下两个目的: - 统筹安排和调度硬件资源,以防止硬件资源被用户程序滥用 - 对于广泛使用的复杂低级设备,为用户程序提供一个简单一 致的使用接口
I/O操作的实现
用户空间I/O软件 I/O硬件与软件的接口
内核空间I/O软件
I/O和文件操作
° 主要教学目标
– 通过揭示高级语言程序中的I/O及文件操作请求的底层实 现机制,使学生深刻理解OS在输入/输出系统中的重要 作用;深刻理解计算机中硬件和软件如何协调工作以完 成计算机功能。
° 主要教学内容
printf("hello, world\n"); \n <sp> <sp> <sp> <sp> p r i n t f ( " h e l
}
10 32 32 32 32 112 114 105 110 116 102 40 34 104 101 108
l o , <sp> w o r l d \ n " ) ; \n }
OS在I/O系统
OS 中极其重要!
大部分I/O软件都属于操作系统内核态程序,最初的I/O请求在用 户程序中提出。
用户I/O软件
用户软件可用以下两种方式提出I/O请求: (1)使用高级语言提供的标准I/O库函数。例如,在C语言程序中可以直接使
用像fopen、fread、fwrite和fclose等文件操作函数,或printf、putc、 scanf和getc等控制台I/O函数。 程序移植性很好! 但是,使用标准I/O库函数有以下几个方面的不足: (a) 标准I/O库函数不能保证文件的安全性(无加/解锁机制) (b) 所有I/O都是同步的,程序必须等待I/O操作完成后才能继续执行 (c) 有时不适合甚至无法使用标准I/O库函数实现I/O功能,如,不提供读取文 件元数据的函数(元数据包括文件大小和文件创建时间等) (d) 用它进行网络编程会造成易于出现缓冲区溢出等风险 (2)使用OS提供的API函数或系统调用。例如,在Windows中直接使用像 CreateFile、ReadFile、WriteFile、CloseHandle等文件操作API函数,或 ReadConsole、WriteConsole等控制台I/O的API函数。对于Unix或Linux 用户程序,则直接使用像open、read、write、close等系统调用封装函数。
用户I/O软件
° 用户进程请求读磁盘文件操作
• 用户进程使用标准C库函数fread,或Windows API函数 ReadFile,或Unix/Linux的系统调用函数read等要求读一个 磁盘文件块。
复习:一个典型程序的转换处理过程
经典的“ hello.c ”源程序
hello.c的ASCII文本表示
#include <stdio.h> int main() {
# i n c l u d e <sp> < s t d i o . 35 105 110 99 108 117 100 101 32 60 115 116 100 105 111 46 h > \n \n i n t <sp> m a i n ( ) \n { 104 62 10 10 105 110 116 32 109 97 105 110 40 41 10 123
相关文档
最新文档