1、扫描算法(SCAN)(1),进程“饥饿”现象SSTF算法虽然能获得较好的寻道性能, 但却可能导致某个进程发生“饥饿”(Starvation)现象。因为只要不断有新进程的请求到达, 且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的I/O请求必须优先满足。对SSTF算法略加修改后所形成的SCAN算法, 即可防止老进程出现“饥饿”现象。,扫描算法(SCAN)(2),2)扫描算法磁头从磁盘的一端开始向另一端移动,沿途响应访问请求,直到到达了磁盘的另一端,此时磁头反向移动并继续响应服务请求。有时也称为电梯算法。,特点:寻道性能较好,避免了饥饿,但不利于远离磁头一端的访问请求。,循环扫描算法(
2、CSCAN),规定磁头单向移动,特点:消除了对两端磁道请求的不公平。,N-STEP-SCAN调度算法,SSTF、SCAN及CSCAN存在的问题-磁臂粘着 在SSTF、SCAN及CSCAN几种调度算法中,可能出现磁臂停留在某处的情况,即反复请求某一磁道,从而垄断了整个磁盘设备,这种现象称为磁臂粘着。N-STEP-SCAN调度算法 将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列,而每一子队列按SCAN算法处理。 N=1(每个子队列中只有一个请求) FCFS算法 N很大(只有一个子队列) SCAN算法 N取半长度(分成两个子队列) FSCAN算法,FSCAN算法,FSCAN算法实质上是N步SCAN算法的简化, 即FSCAN只将磁盘请求队列分成两个子队列。一个是由当前所有请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理。在扫描期间,将新出现的所有请求磁盘I/O的进程,放入另一个等待处理的请求队列。这样,所有的新请求都将被推迟到下一次扫描时处理。,