[so] [SO][Examen] Întrebare curs 5 SO

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Tue Jun 23 17:28:12 EEST 2009


On Tue, 2009-06-23 at 07:07 -0700, andreea sandu wrote:
> Probabil cand procesul care executa cod kernel efectueaza o operatie
> blocanta si apare necesitatea planificarii unui alt proces in locul
> lui. 

Ce spune Andreea e corect.

Sunt, practic, 4 situatii in care se face planificare in momentul in
care un proces executa cod in kernel-space:
* un proces executa operatie blocanta (down pe semafor/mutex, asteptare
la un eveniment, coada de asteptare, apelare explicita sleep, operatie
cu lucru cu I/O, alocare de memorie care presupune interactiune cu
swap-ul); situatia prezentata de Andreea; valabila si pe kernel
preemptiv si pe kernel non-preemptiv
* un proces moare; valabila si pe kernel preemptiv si pe kernel
nonpreemptiv
* unui proces ii creste prioritatea si este planificat in locul
procesului curent; valabil _doar_ pe un kernel preemtptiv
* unui proces ii expira cuanta; valabil _doar_ pe un kernel preemptiv

Primele doua situatii sunt cele in care procesul planificat pe un kernel
non-preemptiv chiar daca executa cod kernel.

Razvan




More information about the so mailing list