控制块进程

时间:2016-09-16 16:42:23

标签: data-structures architecture

每当进程进入等待状态时,我都知道CPU已移动到另一个进程。但是,如果进程处于等待状态,如果它仍然需要向另一个I / O资源发出请求,那么该计算是否需要处理?我是否假设处理器的一小部分专门用于帮助计算I / O请求以来回移动数据?

我希望这个问题有道理。

1 个答案:

答案 0 :(得分:0)

IO操作实际上是外围设备完成某些工作的任务。通常,您可以通过将数据写入属于设备的特殊内存区域来设置任务。他们监视该小区域的变化并开始执行任务。因此,CPU在操作正在进行时不需要执行任何操作,并且可以切换到另一个程序。 IO完成后,通常会触发中断。这是一种特殊的硬件机制,可以在任意位置暂停当前执行的程序并切换到特殊的程序,该程序决定以后要执行的操作。可以有另外的设计,例如设备可以在其内存区域的某处设置特殊标志,操作系统必须不时检查它。

问题是这些IO通常很小,例如通过COM端口发送1个字节,因此CPU必须经常中断。你不能用它们达到高速。这是DMA派上用场的地方。这是一种特殊的协处理器(或外围设备的一部分),它可以直接访问RAM,并可以为内存设备提供大块内存。因此它可以在不中断CPU的情况下处理数兆字节的数据。