от 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 сървър >>