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
|