a.Alg bread

Сделай свою wap-шпаргалку =) попробуй конструктор сайтов http://www.panweb.com/


algoritm bread /* citire bloc */
intrare: numгrul blocului din sistemul de fi?iere;
ie?ire: buffer conюinвnd date;
{
obюine buffer pentru bloc (algoritm getblk);
if (datele din buffer sunt valide)
return (buffer);
iniюiazг operaюia de citire a discului;
sleep (pвnг la оncheierea operaюiei de citire)
return (buffer);
}
modulele de nivel оnalt ale nucleului (cum ar fi subsistemul de fi?iere) pot anticipa necesitatea unui al doilea bloc disc cвnd un proces cite?te secvenюial un fi?ier. Modulele solicitг a doua operaюie asincronг de I/O оn speranюa cг datele vor fi оn memorie cвnd va fi nevoie de ele, sporind astfel performanюele sistemului. Pentru a realiza aceasta, nucleul executг algoritmul de citire оn avans a blocului, breada .Cвnd este trezit, procesul оntoarce bufferul pentru primul bloc ?i nu-l intereseazг cвnd se terminг operaюiile de I/O pentru al doilea bloc. Cвnd operaюiile de I/O pentru al doilea bloc s-au terminat, controlerul de disc оntrerupe sistemul; rutina de tratare a оntreruperii recunoa?te cг operaюiile de I/O au fost asincrone ?i elibereazг bufferul (algoritmul brelse).