Effektiviteten för C-Scan (Circular Scan) Disk Scheduling Algoritm anses vanligtvis
måttlig till bra , faller någonstans mellan skanning och FCF när det gäller prestanda. Den är utformad för att ta itu med rättvisaproblemen i skanningsalgoritmen samtidigt som den tillhandahåller anständig genomströmning.
Här är en uppdelning av dess effektivitet och de faktorer som påverkar det:
Nyckelegenskaper och påverkan på effektiviteten:
* enkelriktad svep: Liksom skanning flyttar C-Scan skivhuvudet i en riktning (t.ex. från det innersta spåret till det yttersta). Till skillnad från skanning, när den når slutet av disken (yttersta spåret), hoppar det emellertid omedelbart * tillbaka till * början * på disken (innersta spår) * utan att * betjäna några förfrågningar på returresan. Den återupptar sedan serviceförfrågningar i framåtriktningen.
* Rättvisa: Detta hopp tillbaka till början är avgörande för rättvisa. I skanningsalgoritmen får förfrågningar nära slutet av svepriktningen snabbare, vilket leder till längre väntetider för förfrågningar i andra änden. C-skanning minskar denna skillnad eftersom alla vänteledningar effektivt "väntar på samma sida" när huvudet har återställts.
* reducerad varians i väntetider: C-Scan tenderar att ge mer enhetliga väntetider jämfört med skanning. Denna förutsägbarhet kan vara fördelaktig i realtidssystem eller applikationer som är känsliga för responstidsvariationer.
* genomströmning: C-Scan's genomströmning är i allmänhet lägre än skanningar på grund av att den tid som används tillbaka till början. Emellertid beror den * graden * till vilken genomströmning påverkas på arbetsbelastning och diskegenskaper.
Faktorer som påverkar effektiviteten:
* diskstorlek: Ju större skivan (fler cylindrar), desto mer tid spenderas på att hoppa tillbaka till början, vilket kan minska genomströmningen. Men med en större disk blir rättvisa förbättringarna mer betydelsefulla.
* Arbetsbelastning/begäran distribution:
* enhetlig distribution: C-Scan presterar bra när förfrågningar distribueras relativt jämnt över skivan.
* klusterförfrågningar: Om förfrågningar är starkt klusterade i ett område på skivan, kommer C-Scan's prestanda att påverkas eftersom huvudet fortfarande måste göra ett fullt svep, även om det inte finns några förfrågningar i vissa regioner. Detta är en vanlig svaghet som delas med skanning.
* Hög begäran: Vid mycket höga begäran kan rättvisa förbättringar av C-skanning vara mer märkbar jämfört med skanning, eftersom väntetiderna konsekvent är mer balanserade.
* huvudrörelsetid (söktid): Effektiviteten är också beroende av skivans mekaniska egenskaper. Snabbare söktider gör hoppet tillbaka till början mindre påverkande på den totala prestandan.
Jämförelse med andra algoritmer:
* fcfs (först till kvarn, först-tjänad): C-Scan är nästan alltid mer effektiv än FCF:er eftersom det minimerar huvudrörelsen genom att serviceförfrågningar i en sorterad ordning (relativt huvudpositionen). FCF:er kan leda till vilda huvudrörelser och långa söktider.
* sstf (kortaste söktid först): SSTF har i allmänhet bättre genomströmning än C-Scan. SSTF lider emellertid av *svält *, där förfrågningar långt ifrån den nuvarande huvudpositionen aldrig kan få service. C-Scan undviker svält.
* skanning (hissalgoritm): C-skanning offrar viss genomströmning jämfört med skanning för att förbättra rättvisan och minska variansen i väntetiderna. I arbetsbelastningar där rättvisa är ett stort problem är C-Scan att föredra.
* Look och C-look: Dessa är optimeringar av skanning respektive C-Scan. Titta bara går så långt som den längsta begäran i varje riktning och undviker onödiga svep till den fysiska änden av disken. C-Look är den cirkulära versionen av Look. C-look är i allmänhet något bättre än C-skanning eftersom det optimerar svepavståndet.
Sammanfattningsvis:
Effektiviteten för C-skanning är måttlig till bra , balansera genomströmning med rättvisa. Det är vanligtvis mycket bättre än FCF och undviker svältproblemen för SSTF. Det offrar viss genomströmning jämfört med skanning för att uppnå bättre rättvisa. Det optimala valet av diskplaneringsalgoritm beror starkt på de specifika arbetsbelastningsegenskaperna och prioriteringarna för systemet (genomströmning kontra rättvisa kontra responstid). I många fall är de praktiska skillnaderna i prestanda bland väl implementerade algoritmer inte så dramatiska som teoretisk analys antyder.
Tänk på dessa faktorer vid utvärdering av C-Scans lämplighet:
* Rättvisa krav: Är det kritiskt att alla förfrågningar har en rimlig chans att bli service snabbt?
* Arbetsbelastningsfördelning: Är förfrågningar jämnt fördelade eller klusterade?
* diskegenskaper: Vilka är söktiden och rotationslatensegenskaperna för disken?
I slutändan är benchmarking med en representativ arbetsbelastning det bästa sättet att bestämma den mest effektiva diskplaneringsalgoritmen för en viss applikation.