小编Jun*_*Zhi的帖子

IO调度器和cpu/进程调度器的关系?

IO 调度器和 CPU 调度器的概念让我感到困惑。以下是我的理解:

  1. Linux 默认使用 CFS 调度程序 + nice 值来调度进程。
  2. 每个进程都有一个IO队列。
  3. 有一个 IO 调度程序内核线程。
  4. IO 调度器是在块级别,而不是在文件级别。
  5. IO调度器是文件系统的一个模块。

问题:

IO调度器和CPU调度器是什么关系?从概念上讲,在我看来,CPU 调度程序优于 IO 调度程序。CPU 调度首先发生。IO 调度器本身就是一个线程,受 CPU 调度的影响。

一个人为的场景如下所示:

步骤 1:CPU 调度器选择一个进程 P1 来执行

第二步:P1将IO请求放入自己的IO队列

步骤 3+:CPU 调度程序选择其他线程运行。(假设没有进程有 P1 以外的 IO)

....(过了一会儿)

步骤 n:CPU 调度程序选择 IO 调度程序线程运行。

步骤 n+1:IO 调度程序线程“通知”P1 将 IO 请求排队并将这些请求发送到磁盘。

我的理解和场景是否有意义?

filesystems scheduling kernel io

4
推荐指数
1
解决办法
2573
查看次数

标签 统计

filesystems ×1

io ×1

kernel ×1

scheduling ×1