от task_struct(16-03-2011)
На 15.Март.2011г. излезе Линукс 2.6.38
Новостите са:
1. Автоматично групиране на процесите (a.k.a. "пача, който прави чудеса")
Най-голямата промяна в тази версия е така наречения "пач, който прави чудеса". Този пач променя съществено начина, по който
диспечъра на
процесите разпределя процесорното време между процесите. С тази промяна системата ще групира всички процеси с еднакъв номер на
сесията в едно "scheduling entity".
Пример: Нека си
представим една система с шест гладни за CPU процеси, първите четири в една и съща сесия и други в две различни сесии. Без
автоматично групиране
ще имаме: | | [процес 1 | процес 2 | процес 3 | процес 4 | процес 5 | процес 6] || С автоматично: || [процес 1, 2, 3, 4 |
процес 5 | процес 6]
||
Номер на сесията е особеност на процесите в UNIX системите.( може да се види чрез команди като ps -eo session,
pid,cmd).
Номерът се наследява, когато процес създаде друг процес, и може да се промени със setsid(2). Bash обвивката използва
setsid() всеки път,
когато се стартира, което означава, че можете да стартирате "make -j 20" в шел на вашият десктоп и да не го усетите, докато
разглеждате страници
в браузъра ви. Автоматичното групиране е реализирано на базата на груповото диспечиране (появило се в ядро 2.6.24). Можете да
изключите
групирането чрез /proc/sys/kernel/sched_autogroup_enabled
2. По-добра мащабируемост на VFS: скалиране на директорния кеш
Има постоянни усилия да се направи VFS слоя (Virtual File System, кода, който слепва системните извиквания с файловата система)
по-скалируем. В
2.6.37 бяха добавени някои промени, а в тази версия dcache (съкратено от "directory cache") и целият механизъм за търсене по
път са преработени,
за да станат по-скалируеми (За повече информация тук).
Промените не само правят VFS по-скалируемa при многонишкови натоварвания, но по-интересно (и това е, което вълнува Линус
Торвалдс) е че и някои
еднонишкови приложения работят доста по-бързо (това се дължи на премахването на атомични процесорни операции в изпълнението на
функциите).
3. Btrfs LZO компресия, read-only snapshots
В Btrfs е добавена поддръжка на прозрачна компресия, която използва LZO алгоритъма, като алтернатива на zlib. Сравнение на
прозиводителността
между двата алгоритъма може да бъде намерено тук.
Добавена е и поддръжка за създаване на read-only snapshots. Файлови системи, в които са намерени грешки, са принудени да се
монтират само за
четене, което е крачка напред към по-толерантна към грешки система.
4. Прозрачни големи страници памет
Процесорите управляват паметта на малки части наречени "страници" (те са по 4KB за x86). Всеки процес има виртуалното адресно
пространство и
съществува таблица на страниците, в която се пазят съответствията меджу RAM страниците и виртуалните адреси. Работа по
откриването на
съответствията е доста тежка, за това процесорите имат кеш. Но този кеш не е много голям и поддържа само 4KB-ови страници. Това
води до големи
натоварвания и проблеми с производителността в приложения, които използват много данни (бази данни, KVM), тъй като не могат да
се кешират
всичките им често използвани виртуални адреси.
За да се реши този проблем, в модерните процесори е добавена поддръжка на страници по-големи от 4KB ( пр. 2MB/4MB ). До сега,
единственият начин
потребителското пространство да достъпва тези страници беше hugetblfs, базирано на файлова система АПИ. В тази версия е
добавена поддръжка на
прозрачни големи страници (използват се автоматично, когато е възможно).
5. B.A.T.M.A.N. протокол
B.A.T.M.A.N. съкратено от "Better Approach To Mobile Adhoc Networking". Ad hoc е децентрализирана мрежа, която не разчита на
предварително
изградена инфраструктура като маршрутизатори в кабелните мрежи или точките за достъп в безжичните мрежи. Вместо това, всеки
възел участва в
маршрутизирането чрез изпращане на данни за другите възли, и така определянето на кои възли да препращат данни се прави
динамично, базирайки се
на свързаността в мрежата. B.A.T.M.A.N. е реализация на рутиращ протокол за тези мрежи. Той е полезен за извънредни ситуации
като природни
бедствия, военни конфликти или интернет цензура. Повече информация за този проект може да се намери на open-
mesh.org
Източник: kernelnewbies.org
<< Firefox 4 се очаква на 22 март | Български Freenode сървър >>
|