linux操作系统原理知识

linux操作系统原理知识

  一、磁盘的调度算法

  磁盘是可被多个进程共享的设备。常用的磁盘调度算法有:先来先服务、最短寻道时间优先、扫描算法和循环扫描算法等。

  1、先来先服务FCFS算法:这是一种最简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度,平均寻道时间可能较长。

  2、最短寻道时间优先SSTF算法:该算法总是为那些与当前磁头所在的磁道距离最近的请求服务,这种调度算法有较好的平均寻道时间,被广泛采用。但它可能导致某些进程长时间的得不到服务(称之为饥饿现象)

  3、扫描(SCAN)算法:SCAN算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向,避免了饥饿现象的出现。又称为电梯调度算法。

  4、循环扫描CSCAN(Circular SCAN)算法:这是SCAN算法的一种变种算法,CSCAN算法规定磁头只能单向运动,当磁头运动到最外面的被访问磁道时,磁头立即返回到最里面的欲访的磁道。

  5、N-Step-SCAN算法

  在SSTF、SCAN及CSCAN这几种算法中,都可能出现磁臂停留在某处不动的情况。例如,有一个或几个进程对某一磁道有着较高的访问频率,反复请求对某一磁道进行I/O,从而垄断了整个磁盘设备,把这一现象称为“磁臂粘着”。N步SCAN算法是将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列,又按SCAN算法处理队列中的每一个请求,这样就可避免出现粘着现象。当N值取得很大时,会使其性能接近于SCAN算法;当N=1时,该算法退化为FCFS算法。

  二、外碎片和内碎片

  外碎片,操作系统自己浪费的空间一般是外碎片,比如动态内存分配时用户需求多少空间,操作系统就分配多少空间,此时会产生外碎片;再比如分段内存管理中每个段的大小不一,又要连续分配,此时容易产生外碎片。用户自己浪费的空间一般是内碎片,比如分页机制中,操作系统给用户分配的是整页的空间,用户可能使用不完,此时剩余的空间就是内碎片。总之,如果用户要多少就给多少的内存管理机制一般是外碎片,给用户分配整页或整块空间的内存管理机制一般是内碎片。

  三、操作系统的时空互换

  为了提升系统的性能,操作系统往往会在时间、空间上进行折衷。比如快表的引入虽然增加了存储空间的管理,但却换取了访存时间的降低;再比如虚拟存储器技术,由于内存空间有限,为了提升内存空间,只能利用置换等方法降低程序运行的速度,从而提升存储空间的大小,属于时间换空间;再比如,硬盘的对换区,为了提升访问硬盘数据的速度,对换区的管理采用连续空间分配的机制,虽然浪费了空间,但速度却提升了,属于空间换时间。因此如果速度提升了,一般就是空间换时间,如果速度变慢了,一般就是时间换空间。那么缓冲区是什么呢?应该是空间换时间,因为设备和cpu并行工作了,速度提升了。

  四、页面抖动和工作集

  在页面置换过程中的一种最糟糕的情形是,刚刚换出的页面马上又要换入主存,刚刚换入的页面马上就要换出主存,这种频繁的页面调度行为称为抖动,抖动会大大降低系统效率。工作集(或驻留集)是指在某段时间间隔内,进程要访问的页面集合。经常被使用的页面需要在工作集中,而长期不被使用的页面要从工作集中被丢弃。为了防止系统出现抖动现象,需要选择合适的工作集大小。工作集模型的原理是:让操作系统跟踪每个进程的工作集,并为进程分配大于其工作集的物理块。

【linux操作系统原理知识】相关文章:

LINUX操作系统01-22

Linux操作系统的安装01-23

Linux操作系统的优缺点03-29

常见的Linux操作系统有哪些12-08

Linux操作系统KDE简介学习01-22

Linux和windows操作系统有哪些区别03-02

计算机三级考试知识点:Linux网络操作系统11-21

Linux操作系统rpm包安装方式详细步骤03-01

linux系统命令11-23

下一篇:返回列表