第7章 输入与输出

合集下载

第7章 Java的输入 输出流

第7章   Java的输入 输出流

第7章 Java的输入/输出流
String dirList[]=f1.list(m); for(int i=0;i<dirList.length;i++) Transcript.println(dirList[i]); } } public MyClass3(File f) { this.f=f; } public boolean accept(File dir, String name){ return name.startsWith("un"); } }
第7章 Java的输入/输出流
该程序的运行结果如图7.3所示。 此程序中,我们为了说明路径分隔符的使用方法, 实例化文件对象的时候给出了全路径,其实由于我们 已经在Java系统中设置好了源路径,只要给出文件名 就行了。 表7.1中,list方法用于列出一个目录中所有的文件 或与某个模式相匹配的文件。下面我们给出两个例子 来讨论带参数或不带参数的list方法的使用。
返回指定格式的目录中的文件名 返回当前目录中的所有文件名 创建目录,成功返回真 创建路径中所有目录,成功则返回真 返回路径分隔符 文件更名,成功返回真 返回文件分隔符 返回对象的字符串表示
第7章 Java的输入/输出流
下面我们给出几个File类的应用实例。通过例题的 使用,希望读者对File类有更清楚的认识。 例7.1 import java.io.*; public class MyClass1 { public static void main(String args[]){ Filef=new File("c:\\jbuilder3\\myprojects\\untitled5\\MyClass1.java"); if(!f.exists())

西安电子科技大学_计算机组成原理第7章输入输出IO系统_课件PPT

西安电子科技大学_计算机组成原理第7章输入输出IO系统_课件PPT
9
7.2 外部设备:习题
设一个磁盘盘面共有200个磁道,盘面总存储容量 60MB,磁盘旋转一周的时间为25ms,每磁道有8个扇 区,各扇区间有一间隙,磁头通过每个间隙需1.25ms。 则磁盘通道所需最大传输率是_____。
A. 10MB/s
B. 60MB/s
C. 83.3MB/s D. 20MB/s
14
7.3 I/O接口(I/O控制器):习题
在统一编址的情况下,就I/O设备而言,其对应的I/O 地址说法错误的是_____。 A. 要求固定在地址高端 B. 要求固定在地址低端 C. 要求相对固定在地址的某部分 D. 可以随意在地址的任何地方
7 第 章 输入输出(I/O)系统
7.4 I/O方式
2021年9月3日 21:40:22
7.4 I/O方式
程序查询方式 实现简单;CPU与I/O设备只能串行工作。
程序中断方式 中断的基本类型 按中断源的位置: 内中断 外中断 如何得到中断服务程序的入口地址: 向量中断: 由中断事件自己提供(硬件向量法) 非向量中断:由CPU查询得到(软件查询法)
19
7.4 I/O方式
程序中断方式
中断的过程:
中断请求:由中断源发出
中断响应:每条指令执行阶段结束前,未屏蔽
断点保护(硬件完成) 中断判优
PUSH PSW 关中断: IF=0; TF=0
中断源识别
PUSH CS
获得中断服务程序首地址 PUSH IP
中断处理
PUSH regs STI (选) 中断处理
一台字符显示器的VRAM中存放的是_____。
A. 显示字符的ASCII码
B. BCD码
C. 字模
D. 汉字内码

第7章输入和输出

第7章输入和输出

微机原理及应用
图7-19
2024年1月27日星期六
第 7 章 输入和输出
7.3 DMA 控 制 器
7.3.1 8237的结构
Intel 8237的方框图如图7-21所示。图中的通道(4个)部分 只画出了一个通道的情况。
每个通道都有一个基地址寄存器(16位),基字节数计数器 (16位),现行地址寄存器(16位)和现行字节数计数器(16位), 每一个通道都有一个模式寄存器以控制不同的工作模式,所 以,8237的内部寄存器的类型和数量如表7-1所示。
第 7 章 输入和输出
POLL:
IN AL,2;输入状态信息D0
SHR AL,1
JNC POLL;若未READY=0, 程序循环等待
IN AL,3;否则,输入数据
STOSB ; 存至内存 ,AL存入[DI]
INC
DL;修改多路开关控制
信号,指向下一个模拟量
JNE
AGAIN;8个模拟量未输
入完,循环已完,执行别的程序段
据缓冲区的地址偏移量→DI
AGAIN: MOV
AL,DL
AND
AL,0EFH;使D4=0
OUT
4,AL;停止A/D转换
CALL
DELAY;等待停止A/D操作 的完成
MOV
AL,DL; D4=1
DELAY: O…UT
4,AL;启动A/D,且选择 模拟量A0
RET
微机原理及应用
2024年1月27日星期六
微机原理及应用
2024年1月27日星期六
第 7 章 输入和输出
7.2.3 直接数据通道传送(DMA)方式
但是中断传送仍然是由CPU通过程序来传送的,每次要 保护断点、保护现场需用多条指令,每条指令要有取指和执 行时间。这对于一个高速I/O设备,以及成组交换数据的情 况,例如磁盘与内存间的信息交换,就显得速度太慢了。

微机原理第7章练习题及答案

微机原理第7章练习题及答案

第7章输入/输出与中断一、自测练习题㈠选择题1.一微机系统有10根地址线用于I/O端口寻址,因而具有I/O空间的范围是( )字节。

A) 1024 B) 10K C) 0.5M D) 1M2.8086CPU读/写一次存储器或I/O端口所需的时间称为一个( )。

A) 总线周期 B) 指令周期 C) 时钟周期 D) 基本指令执行时间3.微型计算机的输入/输出有三种不同的控制方法,其中以( )控制的输入/输出是微机进行I/O的一种最主要的控制方式。

A) 程序控制 B) 中断控制C) DMA控制D) 以上均可4.程序查询I/O方式的工作流程是按( )的次序完成一个字符的传输。

A) 写数据端口,读/写控制端口B) 读状态端口,读/写数据端口C) 写控制端口,读状态端口,写数据端口D) 随I/O接口的具体要求而定5.在CPU与外设的I/O传送控制方式中,效率高、实时性强的方式是( )。

A) 同步传送 B) 查询传送 C) 无条件传送 D) 中断传送6.在CPU与外设的I/O传送控制方式中,传送速度最快的方式是( )。

A) 无条件传送 B) 查询传送 C) 中断传送 D) DMA传递7.用具有两个状态(“0”和“1”态)的一组开关作简单输入设备时,应采用( )传送方式来输入信息。

A) 无条件B) 查询C) 中断D) DMA8.用一组发光二极管作为简单输出设备时,应采用( )传送方式来输出信息。

A) DMA B) 无条件C) 查询D) 中断9.在微机系统中引入中断技术,可以( )。

A) 提高外设速度B) 减轻主存负担C) 提高处理器的效率D) 增加信息交换的精度10.CPU响应中断请求的时刻是在( )。

A) 执行完成正在执行的程序以后 B) 执行完正在执行的指令以后C) 执行完本时钟周期以后D)执行完正在执行的机器周期以后11.8086/8088CPU向应两个硬中断INTR和NMI时,相同的必要条件是( )。

A) 允许中断B) 当前I/O操作执行结束C) 总线空闲D) 当前访问内存操作结束12.在微型计算机系统中,高速外设与内存储器进行批量数据传送时,应采用( )。

8071第七章输入输出接口技术第一节内容2009.01.20(第三稿)

8071第七章输入输出接口技术第一节内容2009.01.20(第三稿)

2.I/O端口独立编址

优点:

I/O端口的地址空间独立 控制和地址译码电路相对简单 专门的I/O指令使程序清晰易读 I/O指令没有存储器指令丰富

缺点:

80x86采用I/O端口独立编址
2013年8月1日星期四 中北大学《微机原理及接口技术》 37
Байду номын сангаас
2.I/O端口独立编址
特点:

00000H 内存 地址
12
7.1.3 I/O接口的主要功能



对输入输出数据进行缓冲和锁存 输出接口有锁存环节,输入接口有缓冲环节 实际的电路常用: 输出锁存缓冲环节,输入锁存缓冲环节 对信号的形式和数据的格式进行变换 微机直接处理:数字量、开关量、脉冲量 对I/O端口进行寻址 与CPU和I/O设备进行联络
中北大学《微机原理及接口技术》 24
2013年8月1日星期四
外设接口
输入接口 输出接口 并行接口 串行接口
数字接口
模拟接口
2013年8月1日星期四
中北大学《微机原理及接口技术》
25
输入输出接口的特点
输入接口:

要求对数据具有控制能力(常用三态门实现)
输出接口:

要求对数据具有锁存能力(常用锁存器实现)
中北大学《微机原理及接口技术》
6
7.1.2 I/O接口概述
为什么需要I/O接口(电路)?

多种外设
微机的外部设备多种多样

工作原理、驱动方式、信息格式、以及工作 速度方面彼此差别很大
它们不能与CPU直接相连 必须经过中间电路再与系统相连 这部分电路被称为I/O接口电路

第7章输入输出习题参考解答

第7章输入输出习题参考解答

第7章思考题与习题参考答案1.计算机的I/O系统的功能是什么?它由哪几个部分组成?答:计算机的I/O系统,主要用于解决主机与外部设备间的信息通讯,提供信息通路,使外围设备与主机能够协调一致地工作。

计算机的I/O系统由I/O硬件和I/O软件两大部分组成。

其中I/O硬件包括:系统总线、I/O接口、I/O设备及设备控制器。

I/O软件包括:用户的I/O程序、设备驱动程序、设备控制程序。

2.I/O硬件包括哪几个部分?各部分的作用是什么?答:I/O硬件包括:系统总线、I/O接口、I/O设备及设备控制器。

系统总线的作用是为CPU、主存、I/O设备(通过I/O接口)各大部件之间的信息传输提供通路。

I/O接口通常是指主机与I/O设备之间设置的一个硬件电路及其相应的控制软件。

它用于在系统总线和外设之间传输信号,并起缓冲作用,以满足接口两边的时序要求。

I/O设备的作用是为主机与外部世界打交道提供一个工具。

设备控制器用来控制I/O设备的具体动作,不同的I/O设备需要完成的控制功能不同。

3.什么是用户I/O程序?什么是设备驱动程序?什么是设备控制程序?答:用户I/O程序是指用户利用操作系统提供的调用界面编写的具体I/O设备的输入输出程序。

例如用户编写的用打印机输出文本的程序。

设备驱动程序是一种可以使计算机和设备通信的特殊程序。

可以说相当于操作系统与硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。

设备控制程序就是驱动程序中具体对设备进行控制的程序。

设备控制程序通过接口控制逻辑电路,发出控制命令字。

命令字代码各位表达了要求I/O设备执行操作的控制代码,由硬件逻辑解释执行,发出控制外设的有关控制信号。

4.说明设计I/O系统的三个要素的具体内容。

答:设计I/O系统应该考虑如下三个要素:①数据定位: I/O系统必须能够根据主机提出的要求进行设备的选择,并按照数据在设备中的地址找到相应的数据。

第7章 输入输出系统与接口

第7章 输入输出系统与接口

计算机通过输入设备获取来自外部的信息。 计算机通过输出设备把处理结果显示出来。
第2页
2013年8月1日星期四
第7章
输入输出系统及接口
7.1 接口电路概述 7.1.1 接口基本概念

输入设备:输入信息 输出设备:送出结果 输入设备
各设备的组成 结构、电气性 能和工作原理 各不相同
键盘、鼠标、扫描仪、磁带机、磁盘机、光盘机、 解调器、A/D转换器 输出设备 显示器、打印机、绘图仪、磁带机、磁盘机、光盘 机、调制器、D/A转换器
第8页 2013年8月1日星期四
第7章
输入输出系统及接口
7.1.3 接口信号
与计算机交换的信息 数据信息、状态信息和控制信息 。 1.数据信息
数字量 、模拟量 、开关量 2.状态信息

外设发送给计算机,反映外设工作状态 有BUSY和READY
3.控制信息 计算机发送给外设,控制外设的工作

第24页 2013年8月1日星期四
2.输出指令
第7章
输入输出系统及接口
7.3 输入输出的数据传送方式
计算机与I/O接口间的数据传送即数据交换。 数据传送的控制方式 程序直接控制传送方式、中断方式、DMA方式和 I/O处理机方式
7.3.1 程序直接控制传送方式
定义:是指在程序控制下进行的数据传送,通常是 在用户程序中安排一段由I/O指令和其它指令组成的 程序段,直接控制I/O接口的输入/输出操作。

目标寄存器为AX时,读取16位数据 直接寻址 端口地址n只能为8位地址信号,最多可以访问 28=256个不同的端口。对应指令有: IN AL, n ;AL←(n) IN AX, n ;AX←(n)
第23页 2013年8月1日星期四

计算机组成原理(第七章 输入输出系统

计算机组成原理(第七章  输入输出系统

第七章输入输出系统第一节基本的输入输出方式一、外围设备的寻址1.统一编址:将输入输出设备中控制寄存器、数据寄存器、状态寄存器等与内存单元一样看待,将它们和内存单元联合在一起编排地址,用访问内存的指令来访问输入输出设备接口的某个寄存器,从而实现数据的输入输出。

2.单独编址:将输入输出设备中控制寄存器、数据寄存器、状态寄存器单独编排地址,用专门的控制信号进行输入输出操作。

3.CPU与外围设备进行通信有三种类型:(1)CPU向外围设备发出操作控制命令。

(2)外围设备向CPU提供状态信息。

(3)数据在CPU与外围设备之间的传递。

历年真题1.对外设统一编址是指给每个外设设置一个地址码。

(2002年)【分析】CPU与外设之间的信息传送是通过硬件接口来实现的,各种外设的硬件接口上又都包含有多个寄存器,如控制寄存器、数据寄存器、状态寄存器等。

统一编址是将外设接口上的各种寄存器等同于内存储器的存储单元,通过使用访问内存单元的指令来访问外设接口上的各个寄存器,这样就可以使用访存指令来访问外设,输入输出操作简单,程序设计比较简便。

由于外设接口上的寄存器种类和数量通常不止一个,所以一个外设至少对应一个以上的内存地址。

【答案】对外设统一编址是将外设接口上的寄存器等同内存单元,给每个外设设置至少一个地址码。

二、外围设备的定时1.外围设备的定时方式有异步传输方式和同步定时方式两种。

2.实现输入输出数据传输的方式主要有:程序控制方式、直接存储访问(DMA)方式、通道方式。

程序控制方式又可分为程序查询方式和中断方式两种。

历年真题1.对I/O数据传送的控制方式,可分为程序中断控制方式和独立编址传送控制方式两种。

(2001年)【分析】对1/O数据传送的控制方式,可分为程序直接控制方式、程序中断控制方式、DMA控制方式、通道控制方式等。

程序中断控制方式只是其中的一种方法,独立编址是指对1/O设备的控制寄存器、数据寄存器、状态寄存器等单独进行地址编排,使用专门的指令对其进行操作,可用在各种数据传送的控制方式中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第7章输入与输出本章要点标准输入输出流文件输入输出随机文件的访问流过滤7.1 输入/输出包在JDK中的java.io包下提供了多种输入输出类,利用这些输入类可以建立输入数据类对象7.1.1 I/O流流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。

Java中的流分为2种,一种是字节流,另一种是字符流。

Java实现这些操作分别由4个抽象类来表示(每种流包括输入和输出2种所以一共4个):InputStream,OutputStream,Reader,Writer。

7.1.2 InputStream类常用接口public abstract int read() throws IOException说明:从串流中读取一个字节(1 bytes) 。

如果有错误发生,则抛出IOException异常。

传回值:读到的字符。

若传回-1 ,代表已经读到串流结尾。

public int read(byte[] b) throws IOException说明:由串流读入字节数据,并填入b[] 中。

如果有错误发生,则抛出IOException异常。

传回值:读取到的byte 数。

-1 代表已经读到串流结尾。

public abstract int read(byte[] b, int off, int len) throws IOException说明:由off 开始写入len 个byte数据到b[]中。

如果有错误发生,则抛出IOException异常。

传回值:读取到的byte 数。

-1 代表已经读到串流结尾。

如果有错误发生,则抛出IOException 异常。

7.1.2 InputStream类常用接口(续)public int available() throws IOException说明:传回目前Stream 有多少byte 可供读取。

如果有错误发生,则抛出IOException异常。

public void reset() throws IOException说明:将读写头移至Stream 的最开头。

如果有错误发生,则抛出IOException异常。

public long skip(long n) throws IOException说明:将读写头跳过串流中n 个字符。

如果有错误发生,则抛出IOException异常。

传回值:真正跳过去的字符数。

public abstract void close() throws IOException说明:将串流关闭。

如果有错误发生,则抛出IOException异常。

7.1.3 OutputStream类常用接口public void write(int b) throws IOException说明:写入一个byte 至Stream 中。

如果有错误发生,则抛出IOException异常。

public void write(byte[] b) throws IOException说明:写入一个byte 数组至Stream 中。

如果有错误发生,则抛出IOException异常。

public abstract void write(byte[] b, int off, int len) throws IOException说明:将b[]中的数据从off 开始,写入len 个字符长度。

如果有错误发生,则抛出IOException 异常。

public void flush() throws IOException说明:将Stream 中数据写入目标对象中。

如果有错误发生,则抛出IOException异常。

public void close() throws IOException说明:将Stream 关闭。

如果有错误发生,则抛出IOException异常。

7.1.4 Reader类常用接口public int read() throws IOException说明:由串流中读取一个字符(2 bytes) 。

如果有错误发生,则抛出IOException异常。

传回值:读到的字符。

若传回-1 ,代表已经读到串流结尾。

public int read(char[] cbuf) throws IOException功能:由串流读入字符,并填入cbuf[] 中。

如果有错误发生,则抛出IOException异常。

传回值:读取到的字数。

-1 代表已经读到串流结尾。

public abstract int read(char[] cbuf, int off, int len) throws IOException功能:由cbuf[] 的驻标off 开始写入len 个字符。

如果有错误发生,则抛出IOException 异常。

传回值:读取到的字数。

-1 代表已经读到串流结尾。

7.1.4 Reader类常用接口(续)boolean ready() throws IOException说明:传回Stream 是否已经可供读取。

如果有错误发生,则抛出IOException异常。

public void reset() throws IOException说明:将读写头移至Stream 的最开头。

如果有错误发生,则抛出IOException异常。

public long skip(long n) throws IOException说明:将读写头跳过串流中n 个字符。

如果有错误发生,则抛出IOException异常。

传回值:真正跳过去的字符数。

public abstract void close() throws IOException说明:将串流关闭。

如果有错误发生,则抛出IOException异常。

7.1.5 Writer类常用接口public void write(int c) throws IOException说明:写入一个字符至Stream 中,如果有错误发生,则抛出IOException异常。

public void write(char[] cbuf) throws IOException说明:写入一个字符数组至Stream中,如果有错误发生,则抛出IOException异常。

public void write(String str) throws IOException说明:写入一个字符串至Stream中,如果有错误发生,则抛出IOException异常。

public abstract void write(char[] cbuf, int off, int len) throws IOException说明:将cbuf[]中的数据从off 开始,写入len 个字符长度。

如果有错误发生,则抛出IOException异常。

7.1.5 Writer类常用接口public abstract void write(String str, int off, int len) throws IOException说明:由str 字符串的第off 字符开始,写入len 个字符。

如果有错误发生,则抛出IOException异常。

public abstract void flush() throws IOException说明:将Stream 写目标对象中。

如果有错误发生,则抛出IOException异常。

public abstract void close() throws IOException说明:将Stream 关闭。

如果有错误发生,则抛出IOException异常。

7.2 常用的输入/输出流从目标来说输入输出包括很多,但常用的有标准输入/输出、文件、字符、网络等。

7.2.1 标准输入/输出所谓标准输出是指将数据输出到计算机的屏幕。

即System.out方法。

所谓标准输入是指接收从键盘上输入的数据。

即System.in方法。

7.2.2 操作目录和文件File类中对目录操作的方法有:public boolean isDirectory()说明:判断目前java.io.File 内所包含的这个名称是否为一个目录。

public boolean isFile()说明:判断目前java.io.File 内的名称是否为一个文件。

public String[] list()说明:获取目前目录下所包含的子目录名称及文件名称。

7.2.2 操作目录和文件(续)File类对文件的操作方法有:public boolean renameTo(File dest)说明:更改文件名称返回值:true(成功),false(失败)public boolean delete()说明:删除文件返回值:true(删除成功),false(删除文件失败)7.2.3 文件流FileInputStream和FileOutputStream类FileInputStraam类允许以流的形式从文件中读取输入。

FileInputStream类的对象通过将文件名字符串、File或FileDescriptor对象作为参数使用来创建。

FileOutputStream类运行将输出写到文件流中。

FileOutputStream类的对象与FileInputStream 类对象一样,也是通过将文件名字字符串、File对象和FileDescriptor对象作为参数使用来创建。

7.2.4 随机文件的访问顺序文件访问限制了对文件操作的灵活性。

Java和其他语言一样也提供一个随机文件的访问功能。

RandomAssessFile类是Java中提供了对随机文件访问的支持。

7.3 过滤流FilterInputStream和FilterOutputStream类通常通过在构造方法的参数中指定所要连接的输入/出流来实现。

例如:FilterInputStream( InputStream in );FilterOutputStream( OutputStream out );7.3.1 数据流DataInputStream与DataOutputStream类实现了DataInput与DataOutput接口。

这两个接口标识了提供允许从流读写任意对象与基本数据类型的功能的方法。

7.3.2 使用I/O缓冲区BufferedInputstream类Java的bufferedInputstream类可以对任何的InputStream进行带缓冲区的封装以达到性能的改善。

BufferedOutputStream类BufferedOutputStream类在方法上和OutputStream类并没有太多的改变,只是增加了一个flush方法,这个方法用来将缓冲区内的数据强制的写入目标设备中。

7.4 字节流与字符流的转换在Java中有InputStreamReader和OutputStreamWriter这两个类来完成2种流的转换。

相关文档
最新文档