Последната актуализация на този раздел е от 2020 година.

 

5.4.6  Основни функции на операционната система

 

 

      Вече беше споменато, че потребителската програма се изпълнява в средата и под управлението на операционната система (ОС). За да функционира потребителската програма, тя трябва да бъде заредена от външно устройство в оперативната памет, при което става известен нейният начален адрес. Стартирането на тази програма става след команда за преход към нейния начален адрес. Този именно процес се извършва от специални системни програми. Операционната система управлява напълно работата на изчислителната машина, в чиято конфигурация са включени различни външни устройства, най-общо наричани за въвеждане и за извеждане.

      Всички операции във външните устройства, които потребителската програма изисква, се изпълняват практически с помощта и под управлението на операционната система. Тъй като работата на външните устройства се организира най-вече чрез системата за прекъсване то следва, че операционната система обработва и всички прекъсвания. Благодарение на това, че операционната система извършва всички тези действия, работата на приложните програми е значително облекчена.

      При включване на компютъра фактически се стартират програми от състава на операционната система. За стартиране на потребителска програма, се извършва преход към нея, от средата на операционната система. Когато пък в стартиралата потребителска програма се заяви входно-изходна операция, се изпълнява обратен преход, към ОС. Когато входно-изходната операция завърши, се извършва отново преход към потребителската програма. Когато последната завърши се изпълнява преход обратно към ОС.

      В средата на операционната система изчислителната машина може да остане неограничено дълго време, докато не й се наложи да изпълни друга потребителска програма.

А)  Роля и място на операционната система

      И така, след казаното до тук става ясно, че операционната система – това сложна програма, която осигурява възможността за рационално и удобно използване на компютърната система от потребителя. Структурата на компютърната система е йерархична и може да се представи най-общо по следния начин:

 

Фиг. 5.4.6.1.  Йерархия в компютърната система

 

      Основата на всяка компютърна (изчислителна) система представлява апаратното осигуряване – хардуерът. Техническата част включва процесор, памет, монитор, дискови устройства, клавиатура, мишка и прочие външни устройства, които са обединени и свързани помежду си с информационни шини. Техническата част е безжизнена без енергия. С включване на захранването тя “оживява” и придобива свойството да бъде полезна. Това се постига чрез правилно функционираща апаратура и програми, които я управляват. Ето защо тази съставна част се нарича програмно осигуряване. Последното се дели на два основни вида приложно и системно. Операционната система представлява фундаментален компонент от системното програмно осигуряване. Върху операционната система има различни гледни точки:

      Операционната система като виртуална машина

      Компютърната архитектура на ниво машинни команди е крайно неудобна като основа за разработка на програмните приложения. Например, работата с дисковото устройство на това ниво предполага отлично познаване на логическата му и електронна структура – познаване на контролера, на методите за достъп, на командите за управление на диска, и още за организацията на носителя по писти, цилиндри, сектори, за търсене, форматиране, четене и запис на сектори и т.н. Явно е натрапничавото нежелание за тези познания. Приложният програмист в съвременната технология не се занимава с разработката на драйвери за хардуерните устройства. Той винаги се е стремял към простата извисена абстракция в разбиранията, да кажем, на понятието файл. Файлът може да се отваря за четене или за запис на данни и след това да се затваря. Това е концептуално по-просто за разбиране, отколкото детайлната грижа за позиционирането на главите и пр. Аналогично, издигайки нивото на понятията, с помощта на прости и ясни абстракции, се “скриват” от програмиста всичките ненужни му подробности, свързани с организацията на прекъсванията, с работата на таймерите, с управлението на паметта и т.н. Нещо повече, съвременните изчислителни системи създават различни илюзии – за неограниченост на обема на оперативната памет, за неограниченост на броя на процесорите и др. И всичко това е дело на операционната система. По този начин операционната система създава у потребителя представа (описание) за виртуалност на машината. С това виртуално описание (език или начин на манипулиране) той значително по-лесно работи и комуникира.

      Операционната система като менажер на ресурсите

      Операционната система е предназначена да управлява всички съставни елементи на изключително сложната компютърна архитектура. Нека си представим какво би се получило, ако няколко съвместно работещи програми се опитват едновременно да извеждат свои съобщения на печат – в крайна сметка неразбираем текст. Ред в този хаос е в състояние да въведе само операционната система. Това тя постига с помощта на ясни правила, с организиране на необходимото буфериране на потоците от данни към и от различните устройства. Тя има грижата за защитата на информацията и доставянето й до всеки участник в процеса. Следователно ролята на ОС да управлява и защитава ресурсите в компютърната система, е безспорна.

      Операционната система като охранител на потребителите и на програмите

      Ако изчислителната система допуска съвместната работа на няколко потребителя, то възниква проблем с организацията на тяхната безопасна дейност. Необходимо е да се осигури съхранимост на информацията върху диска, така щото никой да не е в състояние да отстрани или да повреди чужди файлове. Не бива да се разрешава на програми на един потребител произволно да се намесват в работата на програмите на друг потребител. Необходимо е да се пресичат опитите на потребители за непозволено използване или достъп в системата. От тази гледна точка операционната система изглежда като система, осигуряваща безопасността с помощта на ясни “полицейски” функции.

      Операционната система като постоянно функциониращо ядро

      Най-накрая може да бъде дадено и следното определение – операционната система е програма, която работи постоянно в процесора и която задължително взаимодейства с всички приложни програми. Това определение може да се приеме като абсолютно правилно, но както ще видим по-нататък, в много съвременни ОС постоянно функционира само малка нейна част, която се нарича ядро.

      Както се вижда от краткото изложение до тук, съществуват много гледни точки, за това какво е операционна система. Това показва, че не съществува напълно адекватно и строго определение на това понятие. По-лесно е да се определи не какво е ОС, а за какво тя е необходима.

Б)  Кратка история на еволюцията на компютърните системи

      Ще бъде разгледано развитието именно на компютърните системи, а не на ОС, тъй като хардуерът и софтуерът са се развивали съвместно, като при това са си влияели взаимно, а освен това се подчиняват и на общи основни принципи. Появяването на нови технически и производствени възможности винаги е водило към пробиви в областта за създаване на удобни, ефективни и безопасни програми. В същото време новите идеи в програмирането са стимулирали новите технически решения. Именно тези качества – удобство, ефективност и безопасност са факторите на естествения подбор при еволюцията на компютърните системи.

      1.)  Годините 1945 – 1955. Компютрите са лампови. Операционните системи не съществуват

      Пропускаме периода на механичните и електромеханичните устройства. Състоянието през този период ние описахме в нашия историческия предговор. Това е периодът, в който са осъзнати и ясно формулирани първите организационни принципи – принцип на програмно управление, принцип на запомнената програма, принцип за използване на двоична бройна система, принцип на електронна реализация. По това време едни и същи специалисти са участвали както в проектирането, така и в експлоатацията и в програмирането на компютрите. Тяхната работа по това време е била по-скоро с научно-изследователки характер в областта на тази нова за науката и техниката област. Програмирането се е извършвало само на машинен език. За операционни системи не е ставало и дума дори. И въобще по това време съвсем не може да се говори за регулярно приложение на компютърните средства. Всички задачи по организация на изчислителния процес са се решавали от програмистите от инженерния пулт за управление. Текстовете на програмите са въвеждани в паметта в най-добрия случай с помощта на хартиен носител – перфолента или перфокарта, или са били пряко набирани върху комутационни табла. Състоянието на компютъра и съдържанието на регистрите му се е индицирало непосредствено в двоична бройна система. Отработването на програмите се е провеждало от пулта на инженера с помощта на изучаване на съдържанието на регистрите. В края на този период се появяват първите системни програми. През 1951-52 година възниква пра-образът на първите транслатори от символичен език (FORTRAN). В 1954 година се появява асемблерът за машината IBM-701. Този период може да се характеризира с изключително високата цена на изчислителните системи, с техния малък брой и ниска ефективност на експлоатация.

      2.)  Годините 1955 – Начало на 60-те. Компютрите са транзисторни. Операционните системи са с пакетна организация

      В началото на този период новите полупроводникови електронни елементи дават силен тласък в развитието и използването на компютърните системи. Системите работят вече непрекъснато, тяхната надеждност е рязко повишена, броят им нараства, използването им е все по-ефективно, завоюват лавинообразно сфери на приложение и излизат от сферата на изследванията. Наблюдава се бурно развитие на софтуера и нови символни езици за програмиране (ALGOL-58, LISP, COBOL, ALGOL-60, PL-1 и пр.). Появяват се първите истински компилатори, първите математически и служебни библиотеки с програмни инструменти. Изчиства се и се опростява технологията за проектиране и създаване на програмите. През този период протича разделение на труда между няколко различни групи специалисти – програмисти, оператори, специалисти по експлоатацията и проектанти.

      В тези условия програмата се нарича задание и съществува върху носител (най-често перфокарта). Перфокартата съдържа едно изречение (оператор) от програмата и може лесно да се подменя с друга при грешка или при промяна в текста. Резултатите се печатат на хартия и програмистът може да работи върху тях, както и върху текста на програмата.

      Ако програмата изисква допълнителни ресурси (дискове, ленти и др.) процесорът често се спира. За повишаване на ефективността при експлоатация, заданията се обединяват и се създава пакет. Типичната организация при изпълнение на заданията носи името пакетна. Развива се формален език за управление на потока от задания в пакета. Системите с пакетна обработка представляват пра-образът на съвременните операционни системи. Системите с пакетна обработка са първите, които съдържали системни програми, предназначени за управление на изчислителния процес.

      3.)  Началото на 60-те – 1980. Компютрите са на ГИС. Първи многозадачни ОС

      Периодът се характеризира с масово производство на големи интегрални схеми (ГИС), които стават елементната база за реализация на компютърните системи. Техниката става масова и нейната цена пада. В същото време както в хардуерно, така и в софтуерно направление осигуряването става изключително богато и сложно. Производителността на процесорите непрекъснато се повишава.

      Механичните външни устройства са ниско производителни (бърз четец на перфокарти обработва 1200 перфокарти в минута, принтерът печата до 600 реда в минута). Вместо непосредствено четене на пакета от задания започнало да се прилага предварително буфериране на магнитна лента или диск. Записът на входните данни върху тези носители, както и разпечатката на предвидените в програмите данни се извършвала на отделно стоящи устройства в режим off-line (Simultaneous Peripheral Operation Off-line). При готовност от тези spooling-устройства, включени към централния процесор, се прочитали заданията и се записвали резултатите. Последните отново в режим off-line разпечатвали резултатите за потребителя. Въвеждането на техниката за напомпване-изпомпване на данните позволило съвместяване на входно-изходните операции на едно задание с изпълнението на друго задание. В резултат на това се развивала системата за прекъсване на процесора. Развитието на входно-изходните устройства на магнитни дискове дава възможност на пакетните системи да се занимават с планиране на заданията, в зависимост от заявените ресурси, привилегията им.

      Повишаването на ефективността на компютърните системи се постигало чрез въвеждане мултипрограмирамен режим. Основната идея се заключавала в стремежа да се оползотворят неизбежните при входно-изходните операции непроизводителни престои на централния процесор, като той се използва за изпълнение на операции от други програми. Това поведение на процесора не е възможно, ако в системата (в паметта) не са заредени за изпълнение няколко задания.

      Мултипрограмният режим на работа на процесора изисква революция в структурата на изчислителната система. Огромна роля в това има съответната апаратна поддръжка, най-съществената от която е следната:

·         Реализация на защитни механизми. Една програма не бива да има самостоятелен достъп до разпределението на ресурсите, което се постига чрез присвояване на командите на различни права – те се делят на привилегировани и непривилегировани. Така например, командите за вход-изход може да изпълнява само операционната система. Казват, че операционната система работи в привилегирован режим. Преходите между потребителската програма и ОС се осъществява чрез контролирана смяна на режима. Налага се защита на оперативната памет, която позволява да се изолират едно от друго конкуриращите се потребителски пространства и пространството за ОС ;

·         Реализация на пълноценна система за прекъсване. Външните прекъсвания оповестяват ОС за настъпило асинхронно събитие. Вътрешните прекъсвания възникват по хода на изпълнението на програмата и изискват намесата на ОС.

      Ролята на самите ОС при реализиране на мултипрограмирането също е еволюирала. Най-съществените изменения тук се състоят в следното:

·         Интерфейсът между приложната програма и ОС е бил организиран с помощта на набор от системни извиквания ;

·         Организацията на опашка от задания в паметта и възлагане изпълнението на едно от тях на процесора изисква механизми за планиране на заданията ;

·         Развила се е системата за съхранение на контекста при прекъсване и преход от една програма към друга и от един режим към друг ;

·         Тъй като оперативната памет е стратегически ресурс с ограничение се оказали необходими механизми за стратегическо управление на паметта, т.е. механизми за разместване, подреждане, заместване, извличане и др. ;

·         Тъй като програмите могат да поискат санкциониран обмен на данни, стават необходими средства за комуникация ;

·         В тази връзка пък стават необходими средствата за синхронизация.

      Логическо продължение стават системите с разделяне на времето. В тези системи процесорът се превключва не само по време на входно-изходни операции, а регулярно през определен интервал. Така се реализира не просто мултипрограмният режим, но и мултипотребителският режим. Реализират се механизми, позволяващи известно отстъпване от принципа на съхранената в паметта програма. Сега вече разбирането е, че в паметта следва да се намира само актуалната част от програмата, а неактуалната може да стои на диска. Реализират се необходимите за целта механизми за прехвърляне на части от програмите между диска и паметта. Като цяло се развива и реализира концепцията на виртуалната памет. Основното достойнство на тази концепция се състои в това, че създава илюзията за неограниченост на оперативната памет за всяко задание. Използването на on-line файлове е довело до разработване на развити файлови системи.

      Паралелно с вътрешната еволюция се наблюдава и външна. В този период конструкторите осъзнават необходимостта от съвместимост и приемственост. Така започва производството на фамилиите (сериите) компютърни системи, първата от които е IBM/360 – система за общо приложение. Втората серия (за производствени нужди) съвместими компютри е тази на PDP, с най-ярък модел PDP-11.

      Силата на едно семейство е в същото време и негова слабост. Множеството модели и непрекъснато развиващото се периферно оборудване води до неимоверно усложняване на ОС. Така или иначе обаче идеята за стандартизация на операционната система е била широко възприета от потребителите и е получила развитие в следващите периоди.

      4.)  Началото на 80-те – Днешно време. Персонални компютърни системи. Класически, мрежови и разпределени операционни системи

      Характеризира се със силно развитие на интегралните технологии и с масово производство на свръх големи интегрални схеми (СГИС). Характеризира се с лавинообразен процес на минитюаризация и поевтиняване на компютърните системи. В същото време почти не остава сфера на човешка дейност без непрекъснат глад за компютърни технологии. Компютрите се използват широко от неспециалисти. Ръстът на разнообразието и сложността на приложенията обаче налага възраждане и внедряване на архитектурните особености на големите изчислителни системи. Множеството средства за изчисление е довело до идеите за тяхното обединяване. Появяват се първите реални компютърни мрежи. Заедно с това се развиват мрежови ОС или разпределени ОС.

Кратки изводи

      В резултат на казаното могат да бъдат изявени следните основни функции на класическите операционни системи:

1.       Планиране на заданията и използването на ресурсите на процесора.

2.       Осигуряване на програмите със средства за комуникация и синхронизация.

3.       Управление на паметта и запомняща система като цяло.

4.       Управление на информационната структурираност в лицето на файловата система.

5.       Управление на входно-изходната система.

6.       Осигуряване на необходимата безопасност и защита.

      Всяка от посочените функции обикновено е реализирана във вид на подсистема, представляваща структурен елемент на ОС. Те не са били измислени изначално като съставни части, а са се появили в процеса на развитие. Въпреки, че компютърните системи, които човек е създал, са се развивали по този известен път, все още никой не е доказал, че той е единствено възможният път за тяхното развитие. Операционните системи съществуват затова, защото към настоящия момент тяхното съществуване е разумният начин за използване на компютърните системи.

В)  Основни понятия и концепции за ОС

      В процеса на развитие са възникнали няколко важни концепции, които са станали неразделна част от теорията и практиката на ОС.

      Системни извиквания (обръщения)

      Във всяка ОС се поддържа някакъв механизъм, който позволява на потребителските програми да се обръщат за услуги към ядрото на ОС. Тези средства са наричани различно. Известни са такива наименования като: екстракодове, системни макрокоманди и др. Тук ще използваме наименованието системни обръщения или извиквания (system calls). Системните обръщения представляват интерфейс между приложенията и ОС. Те създават, отстраняват и използват различни обекти, главните от които се наричат процеси и файлове. Потребителската програма заявява обслужване от ОС чрез системно извикване. В системата се съдържат различни библиотеки с обслужващи процедури, които съхраняват машинните регистри, установяват ново състояние и осъществяват прекъсване на процесора. След това управлението поема съответната на даденото повикване обслужваща програма, влизаща в ядрото на ОС. Изпълнението на тези процедури прави системното обръщение подобно на обръщението към подпрограма.

      Все пак различията са съществени. При системно обръщение задачата преминава в привилегирован режим или режим на ядрото (Kernel mode). По тази причина системните обръщения се наричат още програмни прекъсвания.

      Както вече определихме, понятието програма се определя като последователност от машинни команди и следователно тя не може да осъществи преход (обръщение) към друга програма с друго средство, освен с помощта на машинна команда. Такава машинна команда се нарича команда за програмно прекъсване.

      Същността на описаната най-обща организация на работата се състои в това, че процесорът работи в два режима - системен и потребителски, които непрекъснато се превключват в зависимост от настъпилите събития. В най-общи линии режимът се декларира в регистъра на състоянието на процесора. В същото време, основната памет се дели поне на две области - системна и потребителска. Във всяка област се използува отделен стек, за което в структурата на процесора се използват два стекови указателя (вижте фигура 5.4.1.6 и таблица 5.4.1.1).

      От системен режим може свободно да се премине в потребителски. Обратният преход е по-труден и изисква специални средства. Обратният преход е преход към процедура (подпрограма), която се съдържа в състава на операционната система. Ето защо, преходът от потребителски режим към системен режим, с цел извикване на подпрограма за управление например на входно-изходна операция, се осъществява със специална, привилегирована команда. Тази команда, както вече казахме по-горе, се нарича команда за програмно прекъсване или команда за извикване на системата.

      Действията на тази команда са сходни с действията на МППОП (вижте фигура 5.4.1.2). Оттам идва и наименованието на командата. Все пак има някои отличия. Те се дължат на това, че прекъсването, осъществявано от МППОП, се причинява от външен случаен сигнал, което изисква в МППОП да се реализира някаква форма на диалог с източника на ЗП. В случая на програмно прекъсване обаче липсват всякакви форми на неизвестност – програмистът има ясно съзнание какво иска да постигне и го изразява в структурата на машинната команда, което означава, че липсва диалог. По този начин същността на действията на командата за програмно прекъсване е следното:

·         Съхранение съдържанието на програмния брояч в системния стек ;

·         Съхранение на състоянието на програмата (процесора) в системния стек ;

·         Деклариране (установяване) на новия режим в регистъра на състоянието ;

·         Формиране на ново съдържание в програмния брояч (и останалите системни регистри, ако за това има нужда) и затваряне на командния цикъл.

      Новото съдържание на програмния брояч в случая е функция единствено на записаните в командата за програмно прекъсване данни. Същността и начина за използване на тези данни ние вече пояснихме. След затваряне на командния цикъл стартира програмата, получила управлението в резултат на прекъсването.

      В командната система на различните процесори съставът и структурата на командите за програмно прекъсване са различни. Например в 8-битовите архитектури на Motorola, които вече давахме като пример, има две такива команди - команда "Програмно прекъсване" (SWI) и команда "Oчаквай прекъсване" (WAI). За тази архитектура тези команди са еднобайтови и безадресни. Изпълнението на първата команда е свързано със запис на състоянието на процесора в стека и преход към програма за обслужване на прекъсването. Този преход е автоматичен - устройството за управление генерира последователно и директно върху адресната шина два фиксирани адреса FFFA и FFFB, от които се извлича новото съдържание на програмния брояч. Командата WAI също съхранява в стека думата за състоянието на процесора, след което изключва системните шини и изпада в състояние на очакване на външен сигнал от входовете за прекъсване. Ако се получи заявка за немаскируемо прекъсване, ЦУУ привежда системните шини в работно състояние и генерира фиксираните адреси FFFC и FFFD, от които извлича новото съдържание на програмния брояч. Ако пък се получи заявка за маскируемо прекъсване, тогава се генерират адресите FFF8 и FFF9, от които се извлича друго съдържание за програмния брояч. В по-съвременни модели на тази архитектура (например микроконтролерите от серията МС68НС08) таблицата с векторите е значително по-голяма и заема областта в края на адресното пространство: от FFE5 до FFFF. В други архитектури (например PIC18 на Microchip) процедурата е още по-опростена – освен в стека се прилага и съхраняване в системни регистри (shadow registers), с което се постига висока скорост на прехода. Що се отнася до адреса за преход, то обслужващата програма се адресира относително текущия адрес в близката околност от ±1[KB]. Така командата съдържа само отместването.

      В по-мощните архитектури командите за програмно прекъсване имат и адресна част. Адресната част на командата обикновено съдържа младшата част на пряк изпълнителен адрес, който се интерпретира като номер на вектор за прекъсване, например в системата IA-32 това е командата INT<№>. В края на краищата този номер се превръща в адрес на клетка в нулевата страница на адресното пространство, където се намира таблицата с векторите за прекъсване. В тази клетка се съхранява началният адрес на обслужващата програма, т.е. както вече беше казано, съдържащият се в командата номер има характер на косвен адрес. На този процес беше посветен пункт 5.4.2.

      Командите за програмно прекъсване обикновено се използуват като удобно и ефективно средство за извикване на програми, реализиращи помощни функции на операционната система. Тези команди са ефективни поради това, че обикновено са по-къси от командите за преход към подпрограма. Удобни са още и с това, че във викащата програма, където са употребени, не е необходимо да се посочва адресът за преход към операционната система по време на транслиране, зареждане, или даже при изпълнение на програмата.

      В системите с преобразуване на адресите за обръщение към паметта (т.е. в системите с виртуална памет), програмното прекъсване обикновено представлява единственото средство за извикване на операционната система от потребителската програма, тъй като прякото адресиране в областта на паметта, определена за операционната система, е забранено и генерира специално прекъсване от системата за защита на паметта.

      Тъй като системното извикване се осъществява от ядрото на ОС, което работи в системен режим, това означава, че последното има пълен достъп до паметта на потребителската програма. Тъй като потребителската програма употребява команда INT, програмното прекъсване се приема за синхронно събитие.

      Прекъсвания

      Прекъсванията са събития, които се генерират от външни за процесора устройства. Особено важен тип са прекъсванията от таймера, които се генерират периодически. Прекъсванията от таймера се използват от ОС при планиране на процесите. Апаратните прекъсвания се приемат за асинхронни събития.

      Изключителни ситуации

      Това са събития, възникващи при опит от страна на програмата да изпълни недопустима команда, при отсъствие на данни в паметта или при обръщение към забранен ресурс. Тези събития се приемат също за синхронни. Изключителните ситуации се разделят на поправими и непоправими. Ако при обработката се окаже, че ситуацията се характеризира с непоправима грешка, то ОС обикновено канцелира даденото задание.

      Файлове

      Тази структура данни обикновено се намира на външен носител. Отделните структури има имена. Главната задача на файловата система е да скрие особеностите на процесите въвеждане-извеждане и да даде на програмиста прост абстрактен модел на файловете, който е независим от вида на външните устройства. Манипулациите върху този модел (създаване, унищожаване, отваряне, затваряне, записване, четене и пр.) се осъществяват с помощта на обширна категория от системни обръщения (create, delete, open, close, read, write). На потребителя са добре позначи и следните понятия: каталог, текущ каталог, път.

      Процеси, нишки

      Концепцията за процес в ОС е една от фундаменталните. Основните понятия в нея са следите. Процес – това е поток на изпълнение на програма, записана в оперативната памет, с единствена текуща точка. Всяка програма, която се изпълнява, е отделен процес. Всеки процес си има:

·      Отделен идентификатор – цяло число (process ID);

·      Отделен сегмент памет;

·      Отделна програма за изпълнение (сегмент за код, понякога споделен, но това не се вижда);

·      Отделни привилегии (потребителски account, с чиито права е пуснат, допълнителни привилегии);

·      Отделна таблица с отворени файлове (рядко споделена с родителския и сродни процеси) ;

·      Отделна работна памет (сегмент за данни);

·      Отделна точка на изпълнение (следваща инструкция, която да бъде изпълнена).

      Нишка – това е поток на изпълнение на програма, записана в оперативната памет, с единствена текуща точка ... но в рамките на един процес! В рамките на един процес могат да се изпълняват няколко нишки. Всички нишки споделят:

·     Идентификатора на процеса (process ID);

·     Сегмента памет на процеса;

·     Програмата за изпълнение на процеса;

·     Привилегиите на процеса;

·     Таблицата с отворени файлове на процеса;

·     Сегмента за данни на процеса.

      Всяка нишка си има:

·     Отделен идентификатор в рамките на процеса – цяло число (thread ID);

·     Отделна точка на изпълнение (следваща инструкция, която да бъде изпълнена);

·     Отделна част от сегмента данни, заделена за локални за нишката данни (thread-local storage).

 

 

 

Следващият раздел е:

 

§ 5.5.  Организация на входно-изходната система