`
longxj
  • 浏览: 101773 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

I/O scheduler

阅读更多

I/O scheduler负责处理对物理设备的操作调度,采用的是电梯调度算法。但是为了满足其它的需求。linux提供四种调度策

略:

1.the noop elevator:

这种策略没有order队列,只有一个dispatch队列,每来一个操作请求就将其放在dispatch队列的最后。

2.the cfq(complete fairness queueing)elevator:

这种策略核心是一个hashtable,它将到来的操作请求按所属进程组的id,散列到hashtable中,hashtable的每个项可以

看做是一个队列,调度的时候按照round-robin的方式进行,一个队列一个队列进行处理。

3.the deadline elevator:

这种策略有四个order队列,其中的两个包括read和write队列,另外两个是deadline队列,也分为read和write两种。

当一个操作被长时间搁置时,就会将其加入到deadline队列中去,调度的时候先调度deadline队列,再调度普通队列。

read操作请求的过期时间比write操作请求的过期时间(expire time)要短,因为read操作经常会阻塞进程。

4.the anticipatory elevator:

这种队列跟第3种队列差不多,只是设计的时候更sophisticated,比方说当elevator连续接到一个进程2次I/O请求,那么

elevator会假设该进程会发第3次请求,因此它会停止调度一段时间等进程发出第3次调用,这些假设都是基于进程的一些

统计信息的

分享到:
评论

相关推荐

    Linux内核分析与应用课件第9章(五)块设备驱动程序.pdf

    4. CFQ I/O Scheduler:公平调度,确保所有任务均分I/O带宽,是默认调度器,适合多媒体环境。 **块设备驱动的核心结构** 块设备驱动的核心组件包括: 1. **gendisk**:磁盘描述符,描述物理磁盘或分区的详细信息...

    Linux IO Ccheduler

    ### Linux I/O Scheduler详解 #### 一、引言 在现代计算机系统中,磁盘I/O操作是影响系统性能的关键因素之一。为了提高整体性能,Linux内核采用了一种称为I/O调度器(I/O Scheduler)的技术来优化磁盘请求处理流程...

    linux io层次图

    5. **I/O 调度器(I/O Scheduler)** 6. **物理设备(Physical Devices)** #### 三、应用程序层 应用程序是整个层次结构的最上层,它包括各种用户空间程序,这些程序通过系统调用接口与内核交互。常见的系统调用...

    Linux IO系统简介和调度器的工作流程详细概述.docx

    I/O调度器(Linux I/O Scheduler)是通用块层下面的一层,其主要任务是对从上层来的I/O请求进行排序、合并和调度。不同的调度器策略适用于不同的工作负载,例如,CFQ( Completely Fair Queuing)适用于多用户环境,...

    Linux系统编程

    discussion on avoiding seeks and the role of the Linux kernel’s I/O scheduler. Chapter 5, Process Management This chapter introduces Unix’s second most important abstraction, the process, and the ...

    Linux 2.6内核测试及其到ARM嵌入式平台的移植.pdf

    通过选择这个选项,然后再选择六个小的选项之一,即"Load all symbols for debugging"、"Enable futex support"、"Enable eventpoll support"、"No-op T/O scheduler"、"Anticipatory I/O scheduler"、"Deadline I/O...

    vdbench源码

    4. **I/O调度器(I/O Scheduler)**:vdbench可能包含不同的I/O调度策略,如随机、顺序、混合等,以模拟不同工作负载。这部分代码负责决定何时、何地以及如何执行I/O请求。 5. **结果收集与报告**:vdbench在执行...

    Linux那些事儿之我是Block层

    - **I/O Scheduler**: I/O 调度器用于决定何时以及如何将 I/O 请求发送到磁盘,不同的调度器有不同的策略,如 CFQ、No-Op 和 Deadline。 - **Queue**: 在 Block 层中,每个设备都有一个与之关联的 I/O 请求队列,...

    linux 2.6内核配置选项注解

    - **Deadline I/O scheduler (y):** 截止时间 I/O 调度器,适用于服务器和 I/O 密集型应用。 - **CFQ I/O scheduler (y):** 完全公平队列 I/O 调度器,适合于多任务环境。 #### Processor Type and Features - **...

    Linux 系统优化

    通过命令`echo deadline > /sys/block/sdb/queue/scheduler`可以将I/O调度器设置为deadline。 ##### 1.3 Deadline 调度参数 - **Read Expire**:控制读操作超时时间,推荐设置为500。 - **Write Expire**:控制写...

    基于I_O受限进程识别的虚拟处理器调度机制.pdf

    文章首先介绍了现有的虚拟化技术中,如KVM(Kernel-based Virtual Machine)的调度机制,比如CFS( Completely Fair Scheduler)在处理I/O受限进程时存在的不足。CFS调度器在公平性方面表现出色,但在I/O密集型工作...

    Linux内核缓冲区管理

    4. **块I/O调度器(Block I/O Scheduler)**:负责决定何时以及如何执行磁盘I/O操作,以优化总体性能。不同的调度算法适用于不同的工作负载,如CFQ( Completely Fair Queuing)适合多用户环境,而NOOP(No ...

    Linux启用BFQ I_O调度器实例.pdf

    首先,我们需要检查当前系统的 I/O 调度器信息,可以使用命令 `cd /sys/block/` 进入该目录,然后使用命令 `cat ./sda/queue/scheduler` 查看当前系统使用的默认 I/O 调度器。 之后,我们需要加载 BFQ 模块,可以...

    Linux.Kernel.IO.Scheduler.pdf

    在讨论的文件中,“Linux.Kernel.IO.Scheduler.pdf”详细介绍了Linux内核中IO调度层的相关知识点,包括请求队列、调度器操作、I/O调度器的工作原理、调度算法、请求队列的管理和处理,以及与块设备驱动的交互等。...

    linux IO优化

    ### Linux IO优化详解 ...通过本篇文章的介绍,我们不仅了解了Linux系统提供的几种主要I/O调度算法及其工作原理,还学习了如何查询和更改系统默认的I/O调度算法,这对于实际系统调优具有重要意义。

    google2014 i/o android L demo

    在2014年的Google I/O大会上,Android L(后来被正式命名为Android 5.0 Lollipop)的发布引起了广泛的关注。这场演示不仅展示了新操作系统的一系列改进和新特性,也为开发者提供了丰富的开发资源和指南。以下是关于...

    IO调度算法.docx

    在Linux系统中,可以通过`/sys/block/sda/queue/scheduler`路径下的文件查看和设置当前使用的I/O调度算法,其中的选项包括`noop`、`anticipatory`、`deadline`和`cfq`。此外,`ionice`命令用于改变进程的I/O优先级,...

Global site tag (gtag.js) - Google Analytics