内核态特权态 设备寄存器 数据缓冲区 计算机的心智操作系统之哲学原理 无缓冲的直接数据通道 直接内存访问
4.3 多道编程的效率
在忽进程切换需要的系统消耗的情况下
随着进程数量的增加,即随着多道编程的度的增加,CPU的利用率将逐步提升,直到某个临界点时为止。这个临界点就是多道编程的极限。
超过这个极限,多道编程的好处将逐步消失,甚至呈下降趋势。
多道编程度数、I/O时间和CPU利用率的关系
进程的状态
1、在CPU上执行
2、不在 :挂起状态
挂起原因:
1、主动
在运行过程中执行了某种阻塞操作,如读写磁盘。由于阻塞操作需要等待结果后才能执行,操作系统把这个进程挂起来,让其他进程运转。
2、被动
一个进程执行时间太长了,为了公平,操作系统将其挂起,让其他进程有机会执行。
由上,将进程分为3种状态:执行、阻塞、就绪。
第五篇 I/O原理篇
19 输入输出
19 输入输入
输入输出设备
电气工程师:芯片、布线、能量供应、电机
软件工程师:可接受的命令、能提供的功能、错误处理机制
以设备存储和传输数据的方式来划分
2类
块设备:以数据块为单位存储和传输数据的输入输出设备,如磁盘、光盘、U盘、磁带
字符设备:将数据按照字符(字节)为单位来存放和传输数据的设备,如鼠标、键盘、打印机、网络界面
寻址:
块设备的数据按数据块为单位进行处理,而每块数据块都有一个唯一的磁盘地址,即数据块是可寻址的;
字符设备是不可以寻址。
数据的传输速度
输入输出设备:
机械部分 设备的物理硬件部分
电子部分 设备的控制器,也称适配器,任务:
控制设备的物理运行、将序列字位流转化为字节块流、进行纠错操作
设备控制器与CPU之间的数据交互通过设备寄存器进行。
设备寄存器附着在设备控制器上。
通过向这些寄存器进行写入,操作系统可以向设备发出输入输出命令,或把设备关闭或打开。
而通过读取这些寄存器的内容,操作系统可以获得设备的状态信息。
为了提高与CPU交互数据的效率,输入输出设备通常还备有数据缓存区。例如,视频控制器通常带有
自己的视频RAM。CPU通过与视频RAM进行数据交互,就可以传输巨大的数据量。
物理I/O模式
物理输入设备模式
1、专有通道I/O
I/O与内存完全脱离的。
每个控制寄存器被赋予一个唯一的I/O端口。这个I/O端口就是一个9位或者16位的一个整数。
这个整数与内存地址没有任何关系。
2、内存映射的I/O
将I/O映射到内存里面,从而使得I/O和内存管理得到统一。
将I/O设备的每个控制寄存器和设备缓冲区寄存器赋予一个唯一的内存地址。
对这些地址的访问,就是对输入输出设备的访问,从逻辑上看就是内存的访问。
direct memory access 直接内存访问
让I/O设备与计算机内存直接数据交换
DMA输入输出过程
1、CPU对DMA进行设置,告诉其I/O的起始地址和数据长度;
2、启动DMA过程;
3、DMA进行数据传输;
4、DMA结束后发出中断;
5、CPU响应中断并处理结束事宜。
DMA要和CPU竞争内存总线
设备驱动程序
直接驱动I/O设备进行输入输出操作的软件
属于与设备控制器直接联系的I/O软件部分
设备控制程序通常由设备制造商提供,但归属于操作系统内核。
1、从上层接收抽象的读写请求
2、确保读写操作被完成
3、初始化设备,开、关设备
4、对设备功能进行管理
设备独立的操作系统软件
设备驱动程序并不直接从用户处接受I/O请求,而是通过另外一层中介获得用户请求。
这层介于设备驱动程序与用户程序之间的中介就是设备独立的操作系统软件。
1、统一界面
2、缓冲
缓冲是几乎所有I/O设备都需要的一种操作。
缓冲的目的:
1、桥接速度不同的设备,使之可以沟通同步;
2、提供灵活的健壮机制,因为在每个缓冲层都可以进行一些健壮性、可靠性、安全性处理。
1-1:
提高数据传输速度,因为快速设备不必等待慢速设备
1-2:
防止溢出,因为慢速设备来不及处理的数据可以存放在缓冲区而不会丢失
缺点:
降低了数据传输的时效性。
缓冲层处理是需要时间的。如果一个系统的时效性重要,则最好不要用缓冲,而是在
通信双方之间创建一个没有缓冲的直接通道,这样数据从一方发出后,另一方将马上收到。