7
Процеси, ПЦБ и нити ОС-а Дефиниција процеса Рани рачунарски системи омогућавали су да се уодређеном тренутку извршава само један програм. Он је имао пуну контролу над системом и свим ресурсима. Насупрот томе данашњи ОС омогућавају да се у меморији рачунара налази више програма који се конкурентно извршавају. Овакав концепт захтева далеко чвршћу контролу и модуларност програма, што је довело до појма процеса Кратко речено ПРОЦЕС (Process) је је програм који се извршава заједно са свим ресурсима који су потреби за његово извршавање. Дакле процес представља основну јединицу у модерним ОС са временском расподелом. ОС се састоји од скупа процеса и то : 1. системски процеси који су део ОС-а и извршаваку системски код и 2. кориснички процеси који извршавају кориснички код - апликације Обе врсте процеса, и системски и кориснички могу да се и звршаваку конкурентно, при чему се процесорско време дели између њих. Додељивањем процесора различитим процесима ОС повећава продуктивност рачунара. Процес је више од кода програма, он садржи и тренутну активност коју представљаку вредности програмског бројача и садржак регистара процесора. Процес у општем случају има стек, динамичку меморију, сегмент података и сегмент кода. Структура типичног процеса дата је на слици: Стек (stack) - садржи привремене податке као што су паралетри функција, локалне променњиве и сл. Хрпа (heap) - динамички додељена меморија током извршавања процеса Подаци (data) - садржи глобалне промељиве Текст секција (text section) - програмски код Напомена:

Двочас 01 - WordPress.com€¦  · Web viewПроцеси, ПЦБ и нити ОС-а. Дефиниција процеса. Рани рачунарски системи омогућавали

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Двочас 01 - WordPress.com€¦  · Web viewПроцеси, ПЦБ и нити ОС-а. Дефиниција процеса. Рани рачунарски системи омогућавали

Процеси, ПЦБ и нити ОС-а

Дефиниција процеса

Рани рачунарски системи омогућавали су да се уодређеном тренутку извршава само један програм. Он је имао пуну контролу над системом и свим ресурсима. Насупрот томе данашњи ОС омогућавају да се у меморији рачунара налази више програма који се конкурентно извршавају. Овакав концепт захтева далеко чвршћу контролу и модуларност програма, што је довело до појма процеса

Кратко речено ПРОЦЕС (Process) је је програм који се извршава заједно са свим ресурсима који су потреби за његово извршавање.

Дакле процес представља основну јединицу у модерним ОС са временском расподелом.

ОС се састоји од скупа процеса и то :1. системски процеси који су део ОС-а и извршаваку системски код и2. кориснички процеси који извршавају кориснички код - апликације

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

Процес је више од кода програма, он садржи и тренутну активност коју представљаку вредности програмског бројача и садржак регистара процесора. Процес у општем случају има стек, динамичку меморију, сегмент података и сегмент кода. Структура типичног процеса дата је на слици:

Стек (stack) - садржи привремене податке као што су паралетри функција, локалне променњиве и сл.

Хрпа (heap) - динамички додељена меморија током извршавања процеса

Подаци (data) - садржи глобалне промељиве

Текст секција (text section) - програмски код

Напомена: Програм сам по себи није процес. Програм је пасиван ентитет, нпр. датотека са списком

инструккција која се чува на диску, често називана извршна датотека или executable file tj. .EXE, док је процес активан ентитет. Програм постаје процес када се његова извршна датотека учита у меморију и почне његово извршење.

Page 2: Двочас 01 - WordPress.com€¦  · Web viewПроцеси, ПЦБ и нити ОС-а. Дефиниција процеса. Рани рачунарски системи омогућавали

Стања процеса

Током извршавања процес мења стања. Стање процеса одређено је његовим тренутним активностима. Сваки процес може бити у једном од следећих стања

1. New - процес је креиран2. Running - инструкције процеса се извршавају3. Waitnig - порцес чека да се деси неки догађај ( рецимо I/O - операција)4. Ready - процес чека да буде додељен процесору 5. Terminated - извршавање процеса је завршено

Јасно је да у једном тренутку само један процесор може да извршава само један процес, тј. само један од свих процеса може да буде у стању Running - извршавања. Међутим може да постоји много процеса који су у стању Ready и Waitnig.

Стање New одговара процесу који је управо креиран.То уствари значи да је ОС обавио све неопходне радње за његово креирање, али јос није почео да га извршава, тј. још увек није у радној меморији, већ се још увек налази у секундарној меморији, обично на диску.

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

Прелази између стања процеса

1. New ---> Ready Процесор је спреман да почне извршавање процеса.

2. Ready ---> Running Када дође тренутак за избор новог процеса који ће се извршавати, ОС (односно распоређивач процеса) ће изабрати неки од процеса у стању Ready.

3. Running ---> Terminatied Пороцес који се тренутно извршава окончава се ако је извршена његова последња инструкција.

4. Running ---> Ready Најчешћи разлог за овај прелаз је то што је процес који се тренутно извршава потрошио сво време које му је додељено за извршавање.

5. Running ---> Waiting Процес се шаље у стање Waiting ако захтева нешто на шта мора да сачека, нпр. услугу коју тренутно ОС не може тренутно да му пружи, рецимо I/О операцију.

6. Waiting ---> Ready Овај прелаз се дешава када се деси догађај на који је процес чекао.

Page 3: Двочас 01 - WordPress.com€¦  · Web viewПроцеси, ПЦБ и нити ОС-а. Дефиниција процеса. Рани рачунарски системи омогућавали

Пример преласка три процеса: А, Б и Ц између различитих стања током извршавања:

Редови Процеса

Циљ мултипрогрмаирања је да се у сваком тренутку неки процес извршава како би се максимизирала искоришћеност ПРОЦЕСОРА. Код једнопроцесорских машина највише један процес се у једном тренутку може извршавати. Ако у систему постоји више процеса,сви остали ће морати да чекају док се процесор не ослободи и додели неком од њих. Дакле у систему постоје редови спремних процеса. Осим редова спремних процеса , у систему постоје и редови уређаја у којима процеси чекају да им се додели I/0 уређај као на слици

Планери

Оперативни систем има више палнера (schedulers). Два су основна дугорочни и краткорочни.

Дугорочни планер или планер послова одрђује који ће се послови пропустити у систем ради обраде. Дугорочни планер бира послове и пуни их у меморију ради извршавања.

Краткорочни планер или планер CPU-а бира један од послова који су у меморији и спремни су за извршење и додељује им процесор.

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

Дугорочни планер се извршава знатно ређе, он заправо управља бројем процеса у меморији и активира се само када неки посао напушта систем, па стог и има дуже време за избор посла.

Page 4: Двочас 01 - WordPress.com€¦  · Web viewПроцеси, ПЦБ и нити ОС-а. Дефиниција процеса. Рани рачунарски системи омогућавали

PCB - Контролни блок процеса Сваки процес у ОС-у представњен је својим контролним блоком процеса PCB - Process Control Block као на слици (надаље ПЦБ)

ПЦБ је најважнија структура података у ОС-у. Сваки ПЦБ садржи све информације о процесу које су потребне ОС-у. Можемо га схватити као део радне меморије тј. меморијску структуру која чува основне информације о процесу, које ОС користи за управљање тим процесом. Зхваљујући ПЦБ ОС може прекидати и настаљати прогам више пута.

ПЦБ је, дакле, структура података која физички представља процес у меморији рачунара.

Уобичајено ПЦБ садржи следеће информације

1. Стање процеса - у ком је станју процес 2. Идентификатор процеса - PID - јединствено име сваког процеса да би се разликовао од

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

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

5. Меморијска ограничења - подаци о меморији - бројеви ПИД-а, распони стека, ...6. Листа отворениx датотека - списак I/O уређаја додељњних процесу, списак отворених

датотека и слично.

Page 5: Двочас 01 - WordPress.com€¦  · Web viewПроцеси, ПЦБ и нити ОС-а. Дефиниција процеса. Рани рачунарски системи омогућавали

Концепт нити

Нит (thread) представља једно извршавање неког дела програма унутар адресног простора процеса. Разлика између процеса (тешки процес) и нити (лаки процес) је у следећем:

1. Процес је једно извршавање једног дела програма са сопственим адресним простором2. Нит је је једно извршавање дела програма унутар адресног простора процеса

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

Примери - иста апликација, исти процес, исти програм, али више упоредних активности - нити

Текст процесор (WORD):1. снима докумет у позадини2. проверава граматику у позадини3. обрађује притиске тастера и друге акције корисника

Web Browser:1. довлачи слике или други садржај са Интернета2. приказује садржај3. одрађује акције корисника

S erver: 1. по једна нит над истим програмом за сваки захтев кориника

PROGRAM - MS Word, smešten na HDD, c:\Program Files\Microsoft Office\PROCES - WINWORD.EXE – u memoriji (RAM)NIT - izmene u tekstu, kontrola gramatike, štampa ...

Редови процеса