Software
-
PC Magazine Romania, Mai 2003
FreeBSD 5.0 - Noua Generație
KSE - Kernel Scheduler Entities
În mod tradițional, FreeBSD nu a avut un suport ideal pentru programarea multi-thread
(fire de execuție); la momentul actual sunt folosite librării in modul utilizator
pentru fire de execuție (notabil pthreads). Recent însă s-a hotărât introducerea
KSE, un sistem de fire de execuție cu suport din partea nucleului, cu un design
similar cu tehnologia Scheduler Activations din NetBSD. Aceasta ofera suport
pentru un model de fire de execuție aflat între modelul la nivelul nucleu (1:1)
și modelul nivelul utilizator (1:N), în literatura de specialitate fiind recunoscut
drept un model hibrid (N:M).
Implementarea firelor de execuție pentru acest model presupune suport atât
la nivelul nucleului, cât și nivelul utilizator. La nivelul nucleului au apărut
modificări în planificatorul de procese pentru a lucra cu noile entități, iar
la nivelul utilizator a apărut o implementare POSIX pentru fire de execuție
sub forma unei librării (libpthread) care folosește noile facilități nucleu
pentru a controla firele de execuție.
Practic, se migrează de la conceptul de proces la cel de entitate KSE (de
aici și traducerea alternativă "Kernel-Scheduled Entities"); noul concept permite
planificarea atât a proceselor cât și a firelor de execuție asociate lor printr-un
mecanism de virtualizare a procesorului. Librăria de la nivelul utilizator
are rolul de a planifica individual firele de execuție în interiorul unui proces.
Acest mecanism este transparent pentru procesele care se execută în mod clasic,
fără fire de execuție.
La compilarea programelor cu fire de execuție, în locul clasicei librării
libc_r trebuie folosită noua librărie libpthread. Deoarece ea nu este compilată/instalată
implicit în sistem, va fi nevoie să o compilați dvs. manual din surse - rulați
make all install în directorul /usr/src/lib/libpthread. Legarea aplicațiilor
cu noua librărie este simplă: la compilare în loc de opțiunea -pthread folosiți
-lpthread.
Datorită acestui model, în sistemele multi-procesor, un proces utilizator poate
rula simultan mai multe fire de execuție; practic ele se pot executa concurent
pe CPU-urile reale. De asemenea, toate operațiile care se blochează în nucleu
devin asincrone, așa încât la blocarea unui fir de execuție procesul poate
planifica un alt fir de execuție. Nu în ultimul rând, este posibilă existența
mai multor planificatoare de fire de execuție în interiorul aceluiași proces
și pot opera independent unul de altul. Pentru mai multe detalii puteți consulta
pagina de manual kse(2).
Prima
pagină
Noua
generație (5.0)
SMP
"Next Generation"
KSE
- Kernel Scheduler Entities
ACPI
- controlul avansat al
sistemului
DEVfs
- Device filesystem
Extensii
de securitate
IPFW2
- nouL motor de firewall
ALTQ
- Alternate Queueing
Localizarea
pentru România
Planuri
de viitor
|