Az 5-ös verzióban a finomabb szabályozást lehetővé tévő alacsonyabb szintű lockolás megjelenésével a kernel egyes részei kikerültek a BGL alól, illetve elkezdett testet ölteni a Kernel Scheduled Entities (KSE), amely a Scheduler Activations elképzelés mintájára készült.
A KSE projekt nagyban hozzájárult ahhoz, hogy a FreeBSD-ben használható és modern threadkezelés legyen, mert bár sokan szidták a viszonylagos bonyolultsága miatt, mégiscsak ez segített valamelyest visszaszerezni a FreeBSD elvesztett teljesítményét a versenytársakkal szemben.
A KSE az 5.3-as verziótól fogva alapértelmezett threading libraryje az OS-nek, az NGPT-hez hasonlóan ez is M:N rendszerű.
A KSE sajnos sosem tudott igazán kifejlődni, így mellette 2003-ban megjelent az 1:1-es megoldást alkalmazó libthr is, amely idővel gyorsabbnak és könnyebben karbantarthatónak bizonyult. Ennek köszönhetően a 7-es verzió már ezt tartalmazza alapból, a 8-as pedig a fentiek tanúbizonysága szerint már csak a libthr-rel kerül kiadásra.
A KSE kapcsán anno sokat kritizálták a FreeBSD-t, hiszen a Sun abban az időben váltott a Solarisban az M:N megközelítésről az 1:1-re, illetve a KSE-vel kapcsolatos munkák sok más feladatot késleltettek, maga a projekt pedig isten igazából sosem fejeződött be.
Részben ennek a projektnek köszönhető a perforce repository is, amelyben a CVS helyett mostanában tartják a kísérleti kódot és ahonnan csak már megfelelő érettségi szint elérése után kerülhet át az elsődleges kódbázisba az újdonság.
Akárhogy is, érdekes kísérlet volt, amely bár elbukott, végső soron csak jobbá lett általa a rendszer...
A háromfajta megközelítésről (1:N, 1:1, M:N) itt és itt olvasható pár gondolat.
- A hozzászóláshoz be kell jelentkezni
- 2399 megtekintés
Hozzászólások
Szép cikk, bra. Ilyenkor irigyellek, mármint, ami az informatikai tudásod/látásmódod illeti. Egyszer szívesen söröznék veled. (Kár, hogy van egy rezignált oldalad is. No, majd, ha egyszer sörözünk valaha, akkor elbeszélgetünk róla.)
- A hozzászóláshoz be kell jelentkezni
Rezignált? Na ezt még nem mondták rám. :)
Inkább csak rosszul menedzselem az időmet.
Amúgy meg nem tudom mi irigylésre méltó van bennem, nem értek én semmihez.
- A hozzászóláshoz be kell jelentkezni
Szeretnek en is annyira nem erteni dolgokhoz mint te :).
York.
------
"Nyugi! Minden a legnagyobb rendben csúszik ki a kezeim közül..."
- A hozzászóláshoz be kell jelentkezni
ne becsuld tul copy&pastelni es szotarazni mindenki tud :P
- A hozzászóláshoz be kell jelentkezni
Így van!
- A hozzászóláshoz be kell jelentkezni
Ha érdekel téged, te is érteni fogsz hozzá, ennyi az egész. Sörözés helyett kockára formáld az agyad és máris kész :)
- A hozzászóláshoz be kell jelentkezni
Suspend/Resume
– POSIX: Take effect on the all threads in a process.
– Linux: Only take effect on the task the signal was delivered to.
Hátőő, nem éppen:
- A hozzászóláshoz be kell jelentkezni
És ezt ugye a linuxthreads-szel próbáltad?
- A hozzászóláshoz be kell jelentkezni
clone(child_stack=0x41001250, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x410019e0, tls=0x41001950, child_tidptr=0x410019e0)
Linux kernelbe sok minden ugy van osszerakva, hogy viselkedesre POSIX-nak tunjon, megha belul maskep is mukodik. pl. getpid sem a pid -et adja vissza hanem group leader pid -jet, igy ugy tunik mintha ugyan ahhoz proceszhez tartozna minden szal. (tid a pid valojaban :))
(a teljes) POSIX viselkedes egy a lehetseges viselkedesek kozzul.
A szoveg kornyezet nem a library -re hanem magara a kernelre vonatkozott.
- A hozzászóláshoz be kell jelentkezni
Ez az erdekes a kiserleti kodokban (meg ugy altalaban), nagy reszeben kiderul rola, h nem jo, de megis rengeteget tanul belole az ember.
---
pontscho / fresh!mindworkz
- A hozzászóláshoz be kell jelentkezni
Nem hiszem, hogy a KSE "nem lett volna jó", egyszerűen csak nem volt, aki "befejezze", foglalkozzon vele. Vannak előnyei/hátrányai ennek is, annak is.
A világ mindenesetre úgy tűnik határozottan nem ebbe az irányba megy... :)
- A hozzászóláshoz be kell jelentkezni