Пређи на садржај

Нити оперативних система

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

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

Елементи заједнички за све нити у једном процесу су: Код сегмент, сегмент података, подаци о отвореним фајловима итд. Оваквим приступом се смањује заузети простор и омогућава се да више нити обавља различите задатке у оквиру једног процеса. Кориштењем нити се пружа могућност да се боље искористе предности које доноси вишепроцесорска архитектура, док рад са више нити подразумева могућност оперативног система да подржи конкретно или паралелно извршавање више нити. На почетку извршавања сваки процес добија свој меморијски простор и контролну нит. Ова нит има задатак да обави потребне иницијализације и креира остале нити које су потребне за извршење процеса. С обзиром да нити имају све карактеристике процеса, при чему неке ресурсе деле са другим нитима, често их називамо и лаким процесима.

Предности кориштења нити

[уреди]

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

Пресликавање

[уреди]

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

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

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

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