b.reincarcarea proces

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


Dacг swapper-ul nu gгse?te nici un proces de evacuat ?i dacг nici unul dintre procesele care trebuiesc оncгrcate nu au stat evacuate cel puюin 2 secunde, atunci swapper-ul se pune оn a?teptare pe evenimentul: dore?te sг оncarce un proces оn memorie dar nu are loc suficient. Ceasul va trezi swapper-ul la fiecare o secundг. Nucleul treze?te de asemenea swapper-ul dacг un alt proces intrг оn starea de a?teptare, devenind astfel mai potrivit de a fi evacuat decвt procesele examinate anterior de cгtre swapp-er. Dacг swapper-ul evacueazг un proces sau dacг se pune оn a?teptare pentru cг nu poate evacua un proces, el о?i va relua execuюia cu оnceputul algoritmului, оncercвnd sг оncarce un proces.
--Algoritmul swapper:
^algoritm swapper /*оncarcг procesele executate, evacueazг alte procese pentru a face loc*/
^intrare: nici una;
^ie?ire: nici una;
{
buclг:
^for (toate procesele evacuate care sunt "ready to run")
^alege procesul care a stat cel mai mult evacuat;
^if (nu existг asemenea proces)
{
^sleep(eveniment: trebuie sг оncarce);
^salt la buclг;
}
^if (este loc suficient pentru proces оn memoria principalг)
{
^оncarcг procesul;
^salt la buclг;
}
/*bucla2 */
^for (toate procesele оncгrcate оn memoria principalг, care nu sunt zombie ?i nu sunt
blocate оn memorie)
{
^if (existг un proces оn a?teptare )
alege procesul pentru care valoarea prioritate+timp de rezidenюг este cea mai
mare;
^else (nu sunt procese care a?teaptг )
^alege procesul pentru care valoarea timp de rezidenюг+nice este cea mai mare:
}
^if (procesul ales nu este оn a?teptare sau cerinюele de rezidenюг nu sunt satisfгcute )
^sleep(eveniment : trebuie sг incarce un proces);
^else
^evacueazг procesul;
^salt la buclг; /*goto buclг 2 */