Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 计算I/O模型的值_C_Unix_Memory_Architecture - Fatal编程技术网

C 计算I/O模型的值

C 计算I/O模型的值,c,unix,memory,architecture,C,Unix,Memory,Architecture,只是想知道我是如何计算编程I/O、DMA和中断驱动I/O模型的一些值的 如果应用程序需要从内存向硬盘输出1000个字,我如何计算每个I/O型号的以下值: 处理器中断的次数 内部存储器被激活的次数 由处理器读取这1000个单词 次数,磁盘的次数 处理器是否读取控制器 磁盘运行的次数 控制器是否由处理器写入 谢谢 这取决于处理器字大小、磁盘总线上的字大小、中断中需要处理的元数据类型、正在使用的处理器缓存类型。。。在平台信息为零的情况下,什么也说不出来。在编程I/O中:除了1000个读取命令和1000

只是想知道我是如何计算编程I/O、DMA和中断驱动I/O模型的一些值的

如果应用程序需要从内存向硬盘输出1000个字,我如何计算每个I/O型号的以下值:

  • 处理器中断的次数
  • 内部存储器被激活的次数 由处理器读取这1000个单词
  • 次数,磁盘的次数 处理器是否读取控制器
  • 磁盘运行的次数 控制器是否由处理器写入

  • 谢谢

    这取决于处理器字大小、磁盘总线上的字大小、中断中需要处理的元数据类型、正在使用的处理器缓存类型。。。在平台信息为零的情况下,什么也说不出来。

    在编程I/O中:除了1000个读取命令和1000个写入命令外,不会有中断

    在中断驱动I/O中:将有1000个中断、1000个读取命令和1000个写入命令


    在DMA中:只有一个中断、一个读取命令和一个写入命令用于传输整个内存块

    谢谢!你能举一个例子,说明如何解决它(通过选择一个随机处理器等)?为什么不选择一个随机处理器,并提供缺失的信息?在存在处理器缓存的情况下,无论如何都无法真正预测内存访问量。