Корисник:Tarpe Popovic

Извор: Викикњиге

НИТИ ОПЕРАТИВНОГ СИСТЕМА

НИТИ Традиционални приступ подразумева да процеси имају свој меморијски простор, ресурсе и да имају само једну јединицу извршавања, тј. да се сви послови процеса извршавају се по реду. Савремени оперативни системи обично подржавају концепт нити (threads) које представљају основне јединице за извршавање у оквиру процеса.

ШТА СУ НИТИ?

Нити су делови једног процеса и извршавају се коришћењем ресурса који су њему придружени. Осим ресурса процеса којем припадају, нити имају и сопствене ресурсе. Свака нит поседује своје регистре, програмски бројач и стек, а разликује их и јединствени идентификатор (thread ID – TID). Код сегмент, сегмент података, подаци о отвореним фајловима итд. заједнички су за нити једног процеса.

НИТИ

С обзиром да нити имају све карактеристике процеса, при чему неке ресурсе деле с другим нитима, често се називају и лаким процесима. ПОДЕЛА НИТИ

У зависности од тога да ли се нитима управља са корисничког или системског нивоа, нити се називају корисничке или нити језгра.

ПОДЕЛА ПРЕСЛИКАВАЊА НИТИ

Приступ процесору и прилику да се извршавају имају само нити језгра, тако да је потребно направити одговарајућу везу између корисничких и нити језгра. Ово се постиже пресликавањем (мапирањем) корисничких у нити језгра. Најчешће подржана пресликавања су:

Пресликавање више у једну; Пресликавање једна у једну; Пресликавање више у више.

ПРЕСЛИКАВАЊЕ ВИШЕ У ЈЕДНУ

Пресликавање више у једну (many-to-one) подразумева да се више корисничких нити, све које припадају једном процесу, пресликају у једну нит језгра: Број нити језгра је у овом случају једнак броју процеса који постоје у систему.

ПРЕСЛИКАВАЊЕ ЈЕДНА У ЈЕДНУ

Пресликавање једна у једну (one-to-one) подразумева да се свака корисничка нит преслика у једну нит језгра. При томе, управљање нитима потпуно се препушта језгру оперативног система. Нити језгра се креирају спорије и има их мање.

ПРЕСЛИКАВАЊЕ ВИШЕ У ВИШЕ

Пресликавање више у више (many-to-many) је комбинација (хибрид) претходна два приступа јер подразумева да се, у зависности од потреба процеса и могућности система, корисничке нити једног процеса пресликавају у мањи (или исти у екстремном случају) број нити језгра.

БРОЈ НИТИ

Број нити језгра које ће бити креиране зависи од конкретног процеса, али често и од броја процесора у систему. Наиме, у системима са више процесора природно је да се корисничке нити процеса пресликају у више нити језгра. Ово је најкомплекснији модел за имплементирање, али је и најквалитетнији јер се може прилагодити потребама процеса као и карактеристикама система.

ЗАШТО СУ НИТИ ДОБРЕ?

Оваквим приступом смањује се заузети простор и омогућава се да више нити обавља различите задатке у оквиру једног процеса.Нити деле меморију и нек ересурсе који припадају истом процесу тако да заузимају мањепростора него када су у питањунезависни процеси.

НИТИ

На почетку извршавања сваки процес добија свој меморијски простор и контролну (иницијалну) нит. Ова нит има задатак да креира остале нити које су потребне за извршавање процеса.

ПРИМЕР НИТИ

Употреба нити може се илустровати на примеру веб прегледача. Они се могу имплементирани тако да користе бар три нити. Једна нит служи за приказивање хипертекста у оквиру прозора, друга учитава податке са неког сервера, док трећа служи за преузимање података преко мреже.