Linux操作系统学习(大容量存储)

一,磁盘结构

 

 磁盘格式化:

 低级格式化:基础装修,划分扇区,写入控制信息

高级格式化:装入操作系统对应的文件系统

二,磁盘性能

 

 

三,磁盘调度

任何一个程序需要从磁盘进行io操作时,都要进行一次系统调用,这个调用请求需要包含一下信息:

1.是输出操作还是输入操作

2.磁盘传输的地址(柱面,磁头,扇区)

3.对应的内存地址

4.要传输的扇区数量(传输以扇区为单位)

对于并发系统的进程,在同一时刻会发生大量的磁盘调度请求,操作系统是管理者,但是磁盘只能一个一个的处理,所以操作系统会安排一个队列来进行等待,一个请求完成后,操作系统安排下一个请求

饥饿扫描,循环扫描,look扫描(循环扫描改进版,类似电梯的算法)

CFCS:先来先服务,最简单

SSTF:最常用了,但是会出现饥饿现象,也就是磁臂粘连,

SCAN or C-SCAN:适用于负载比较大的系统,比如安装了数据库的,或者是kafka之类的

查看LInux的磁盘扫描算法:

 

 noop表示当前正在使用的,一共支持三种,后面是将算法修改位cfq

三种i调度算法的差别:

noop:先来先服务算法,非常适合SSD(没有磁道)

deadline:会构建两个队列,一个放读的请求,一个放写的请求,每个IO请求都有一个时间戳,来表示过期时间,如果过期时间到了,将会推送到最高优先级来处理。读和写的请求的优先级不一样,所以需要两个队列。

        --适合大量读操作的系统

cfq:完全公平的队列方法。为每个进程创建一个IO队列,cfq的目标是对每个进程提供一个公平的IO优先级。为每个进程创建一个时间片,在时间片里面进行请求,循环进行,跟CPU的时间片循环差不多,但这个算法很复杂,对于每一个进程队列中的请求进行了排序,达到优化目的,所有的请求的IO队列都是公平的,

          --适合多应用的系统

经过测试 noop和deadline的效率是差不多的 cfq 虽然最复杂,但是效率不如noop和deadline

总结:

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值