|
P>
所以,处理器和设备之间的基本界面是控制和状态寄存器。当处理器执行程序并且遇到与设备相关的指令 时,它通过向相应的设备发送一条命令来执行该指令。控制器执行所要求的动作并设置状态寄存器的特定位,然后进入等待。处理器有责任检查设备的状态直到发现操作完成。例如并口驱动程序(打印机使用的)一般会 轮询打印机以知道打印机是否准备好。如果打印机没有准备好,驱动程序会睡眠一段时间(处理器此时会做其他有用的工作),该过程将重复直到打印机准备好。这种轮询的机制能够改进系统的性能。另外一种方式则是 系统进行不必要的"死等"(unnecessarily waiting)而不做任何有用的工作。
寄存器拥有在I/O空间明确定义的地址范围。通常这些地址在启动时被分配,使用一组在配置文件中定义的参数。各个设备的地址范围可能被预分配,如果设备是静态加载的。这意味内核包含了已存在设备的驱动 程序,以分配的I/O端口能被存放在Proc目录下。你可以在系统使用这些设备时,通过运行“cat /proc/ioports” 命令同步的检查其所使用的地址范围。第一列输出显示了端口的范围而第二列则是拥用这些端口的设备。一 些操作系统具备在运行时动态加载设备驱动 页码:[1] [2] [3] [4] [5] [6] [7] [8] 第3页、共8页 |