#系统分析师
I/O接口
功能(5个方面)
- 实现主机和外设的通信联络控制
- 简单定义:I/O接口就像是一个“翻译官”,帮助电脑(主机)和外接设备(比如打印机、键盘)互相沟通。
- 类比:想象你在和一个说不同语言的朋友聊天,I/O接口就是那个翻译,确保你们能听懂对方的话。
- 示例:当你按下键盘上的一个键,I/O接口会告诉电脑:“嘿,用户按下了A键!”电脑收到信息后,就会在屏幕上显示“A”。
- 进行地址译码和设备选择
- 简单定义:电脑需要知道它正在和哪个设备“说话”,I/O接口通过“地址译码”来找到正确的设备。
- 类比:就像你在一个大办公室里,每个人都有一个工位号。如果你想找张三,你得先知道他的工位号是多少。
- 示例:当你想打印文件时,I/O接口会通过地址译码找到打印机的位置,确保文件发送到正确的设备。
- 实现数据缓冲
- 简单定义:I/O接口就像一个“临时仓库”,用来暂时存放数据,避免电脑和外设之间的速度不匹配。
- 类比:想象你在用吸管喝水,但水龙头的水流太快了。I/O接口就像一个杯子,先把水接住,再让你慢慢喝。
- 示例:当你从U盘复制文件到电脑时,I/O接口会先把数据存到缓冲区,再慢慢传输到电脑的硬盘。
- 数据格式的变换
- 简单定义:电脑和外设可能用不同的“语言”交流,I/O接口负责把数据转换成双方都能理解的格式。
- 类比:就像你把中文翻译成英文,或者把视频文件转换成音频文件。
- 示例:当你用鼠标移动光标时,鼠标发送的是移动信号,I/O接口会把这些信号转换成电脑能理解的坐标数据。
- 传递控制命令和状态信息
- 简单定义:I/O接口不仅传递数据,还负责传递“命令”和“状态”,比如告诉设备该做什么,或者设备现在忙不忙。
- 类比:就像你和快递员沟通,你告诉他“把包裹放在门口”,他告诉你“包裹已经送到了”。
- 示例:当你点击“打印”按钮时,I/O接口会告诉打印机:“开始打印!”同时,打印机也会通过I/O接口告诉电脑:“我正在打印,请稍等。”
分类
按 I/O 的信号分类,可分为数字接口和模拟接口;
按通用性分类,可氛围通用接口和专用接口;
按功能选择的灵活性分类,可氛围可编程接口和不可编程接口;
根据外部设备与 I/O 模块交换数据的方式,可分为串行接口和并行接口,串行接口一次只能传送 1 位信息,而并行接口一次可传送多位信息。
串行通信
- 简单定义:串行通信是一种数据传输方式,数据像“排队”一样,一位一位地依次传输。
- 类比:想象你在排队买奶茶,每个人(数据位)依次进入店里,而不是一群人同时挤进去。
- 示例:USB、串口(RS-232)都是串行通信的例子。
- 异步通信
在异步通信中,发送方和接收方不共享统一的时钟信号。 数据以字符为单位传输,每个字符通常包含起始位、数据位、可选的校验位和停止位。 这些控制位用于标识字符的开始和结束,确保接收方能够正确识别和接收数据。 由于无需共享时钟,异步通信实现相对简单,适用于低速或对实时性要求不高的通信场景。 - 同步通信
同步通信要求发送方和接收方共享统一的时钟信号,以确保数据传输的同步性。 数据通常以数据块(帧)的形式传输,每个帧包含多个字符。 在传输过程中,数据位之间没有间隔,接收方通过同步时钟准确接收数据。 由于需要共享时钟,同步通信的实现相对复杂,但传输效率较高,适用于高速和实时性要求高的通信场景。常见接口
- IDE
- ATA
- SATA
- eSATA
- SCSI
- PCMCIA
- IEEE-1394
- USB
端口
Coding
- 同步调用java
void parsefile() { file f = readfile('a.txt'); parse(f) }

2. 异步回调
```java
void parsefile() {
file f = readfile('a.txt', parse);
parse(f);
string input = get_user_input();
show(input);
}
面试问题
#面试
- 什么情况下使用同步?什么情况下使用异步?
- 有什么差异?
- RPC接口是同步还是异步?
#MSO
28_字处理考点精讲_邮件合并(标签处理)_哔哩哔哩_bilibili
课外
How do Hard Disk Drives Work? 💻💿🛠 (youtube.com)
How does Computer Memory Work? 💻🛠 (youtube.com)