[so] [curs 5] exercitii

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Wed Mar 28 08:42:04 EEST 2012


Andrei Epure <epure.andrei at gmail.com> writes:
> Ex 1
> Descrieți o situație în care un proces poate fi planificat într-un
> kernel non-preemptiv în momentul în care execută cod kernel.
> Cred că a răspuns Irina într-o discuție: atunci când îi expiră cuanta.
> Se mai poate întâmpla în alt caz?

Confunzi :-) Întrebarea la care a răspuns Irina era legată de un kernel
preemptiv, nu de unul non-preemptiv.

Vezi în răspunsul de aici[1] cele 5 cauze pentru context switch. Doar
ultimele trei sunt posibile pe un sistem cu nucleu non-preemptiv (adică
planificator non-preemptiv/cooperativ) în nucleu.

> Nu ar fi mai bună ca formulare "un proces poate fi întrerupt de
> planificator" decât cea curentă?

E incorectă exprimarea "proces poate fi întrerupt de planificator". Nu
planificatorul îl întrerupe, ci o întrerupere care generează apoi
rularea codului planificatorului.

> De ce folosirea de priorități statice poate conduce la starvation?
>
> Dacă se folosesc cozi de priorități, atunci vor rula doar procesele cu
> prioritate statică mare (indiferent de IO/CPU-boundness)?

Da. Cât timp în coada cu prioritate "superioară" ai procese READY, cele
din coada cu prioritate "inferioară" nu vor putea rula.

> Ex 2
> Care din următoarele operații apelează planificatorul de procese/thread-uri?
> citirea dintr-un fișier - fișierul e în memorie, se ia direct

Conținutul fișierului este probabil să fie pe disc, nu în memorie – nu
te poți baza pe sisteme de caching. Fișierul trebuie adus de pe
disc. Operația este, deci, o operație blocantă și conduce la invocarea
planificatorului.

> deschiderea unui fișier - I/O - trece în coada waiting

Da.

> operația P pe un semafor - poate să apeleze, dacă semaforul este 0

Da.

> operația V pe un semafor - nu

Și aici este da. În momentul procesul curent face up/V, este posibil să
trezească un proces care aștepta la down. Dacă acel proces este
prioritar, va fi planificat în locul procesului curent – se invocă
planificatorul.

[1]

http://news.gmane.org/gmane.education.region.romania.operating-systems

Răzvan


More information about the so mailing list