磁盘访问延迟 = 队列时间 + 控制器时间 + 寻道时间 + 旋转时间 + 传输时间
磁盘调度的目的是减小延迟,其中前两项可以忽略,寻道时间是主要矛盾。
FCFS
:先进先出的调度策略,这个策略具有公平的优点,因为每个请求都会得到处理,并且是按照接收到的顺序进行处理。
SSTF(Shortest-seek-time First 最短寻道时间优先)
:选择使磁头从当前位置开始移动最少的磁盘I/O请求,所以 SSTF 总是选择导致最小寻道时间的请求。总是选择最小寻找时间并不能保证平均寻找时间最小,但是能提供比 FCFS 算法更好的性能,会存在饥饿现象(会导致较远的I/O请求不能满足)。
SCAN
:SSTF+中途不回折,每个请求都有处理机会。SCAN 要求磁头仅仅沿一个方向移动,并在途中满足所有未完成的请求,直到它到达这个方向上的最后一个磁道,或者在这个方向上没有其他请求为止。由于磁头移动规律与电梯运行相似,SCAN 也被称为电梯算法
。
SCAN 算法对最近扫描过的区域不公平,因此,它在访问局部性方面不如 FCFS 算法和 SSTF 算法好。
C-SCAN
:SCAN+直接移到另一端,两端请求都能很快处理。把扫描限定在一个方向,当访问到某个方向的最后一个磁道时,磁道返回磁盘相反方向磁道的末端,并再次开始扫描。其中“C”是Circular(环)的意思。
LOOK(C-LOOK)
:釆用SCAN算法和C-SCAN算法时磁头总是严格地遵循从盘面的一端到另一端,显然,在实际使用时还可以改进,即磁头移动只需要到达最远端的一个请求即可返回,不需要到达磁盘端点。这种形式的SCAN算法和C-SCAN算法称为LOOK和C-LOOK调度。这是因为它们在朝一个给定方向移动前会查看是否有请求。
磁盘阵列(Redundant Arrays of Independent Disks,RAID),独立冗余磁盘阵列之。原理是利用数组方式来作磁盘组,配合数据分散排列的设计,提升数据的安全性。
Linux文件采用10个标志位来表示文件权限,如下所示:
-rw-r--r-- 1 skyline staff 20B 1 27 10:34 1.txt
drwxr-xr-x 5 skyline staff 170B 12 23 19:01 ABTableViewCell
第一个字符一般用来区分文件和目录,其中:
第2~10个字符当中的每3个为一组,左边三个字符表示所有者权限,中间3个字符表示与所有者同一组的用户的权限,右边3个字符是其他用户的权限。
这三个一组共9个字符,代表的意义如下:
权限的掩码可以使用十进制数字表示:
chmod命令非常重要,用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。
该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
chmod [who] [+ | - | =] [mode] 文件名 |
命令中各选项的含义为:
操作对象who可是下述字母中的任一个或者它们的组合:
操作符号可以是:
设置mode所表示的权限可用下述字母的任意组合:
文件名:以空格分开的要改变权限的文件列表,支持通配符。
在一个命令行中可给出多个权限方式,其间用逗号隔开。例如:chmod g+r,o+r example
使同组和其他用户对文件example 有读权限。
直接使用数字表示的权限来更改:
例: $ chmod 644 mm.txt
功能:改变文件或目录所属的组。
语法:chgrp [选项] group filename
例:$ chgrp - R book /opt/local /book
改变/opt/local /book/及其子目录下的所有文件的属组为book。
功能:更改某个文件或目录的属主和属组。这个命令也很常用。例如root用户把自己的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应该把这个文件的属主设为xu,否则,用户xu无法存取这个文件。
语法:chown [选项] 用户或组 文件
说明:chown将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户ID。组可以是组名或组ID。文件是以空格分开的要改变权限的文件列表,支持通配符。
例:把文件shiyan.c的所有者改为wang。
chown wang shiyan.c