b.Alocarea spaю.de.swap

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


--algoritm malloc / * algoritm pentru alocarea spaюiului din tabela map * /
^intrгri :^ ( 1 ) adresa map / * indicг ce tabelг map se folose?te * /
^ ( 2 ) numгrul necesitat de unitгюi
^ie?iri : adresa ,оn caz de succes
0 ,altfel
^for ( fiecare intrare a map )
^if ( intrarea curentг din map se potrive?te cu numгrul necesitat de unitгюi )
^if ( numгrul necesitat de unitгюi = = numгrul de unitгюi al intrгrii )
?terge intrarea din map ;
^else
^ ajusteazг adresa de оnceput a intrгrii ;
^ return ( 0 ) ;
--Nucleul cautг оn tabela map prima intrare care conюine spaюiu suficient pentru cererea fгcutг. Dacг cererea consumг toate resursele intrгrii din map, nucleul ?terge intrarea din tabelг ?i comprimг tabela оn mod corespunzгtor. Dacг cererea este mai micг decвt numгrul de unitгюi al intrгrii din tabelг, nucleul ajusteazг cвmpurile de adresг ?i numгr de unitгюi ale intrгrii оn concordanюг cu cantitatea de resurse alocate. Cвnd elibereazг resursele, nucleul gгse?te poziюia corectг in tabelг prin intermediul adresei. Existг trei cazuri posibile : 1.Resursele eliberate acoperг complet un gol оn tabelг: ele sunt contigue cu intrгrile ale cгror adrese le-ar precede ?i le-ar urma imediat оn tabelг. Оn acest caz nucleul combinг noile resurse eliberate ?i intrгrile existente ( douг ) оntr-o singurг intrare оn tabelг. 2.Resursele eliberate acoperг parюial un gol оn tabela map. Dacг adresele resurselor eliberate sunt contigue cu intrarea care le-ar precede sau cu intrarea care le-ar urma imediat оn tabelг (dar nu cu amвndouг) , atunci nucleul ajusteazг cвmpurile de adresг ?i numгr de unitгюi pentru intrarea respectivг , юinвnd cont de cantitatea de resurse eliberatг. Numгrul intrгrilor din tabela map rгmвne acela?i. 3.Resursele eliberate acoperг parюial un gol din map dar nu sunt contigue cu nici o resursг din map. Nucleul creazг o nouг intrare оn map ?i o insereazг оn poziюia corespunzгtoare.