Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПЗ_.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
129.54 Кб
Скачать

21. Поняття про потоки.

В звичайнiй ОС кожному процесу вiдповiдає адресний простiр i одиничний керуючий потiк, фактично це i визначає процес. Але часто зустрiчаються ситуацiї, в яких потрiбно мати вазi – паралельних керуючих потокiв в 1-му адресному просторi нiби вони були б рiзними процесами. Процеси використовуються для групування ресурсiв, а потоки є об’єктами, якi почергово виконуються на ЦП: концепцiя потоку доповнює на модулi процесу можливого виконання в одному й тому ж середовищi кiлькох програм в достатнiй мiрi незалежних. Декiлька потокiв, якi процес II в 1-му потоцi аналогiчне декiльком процесам, якi II на 1-му компi. В 1-му випадку потоки роздiляються адресним просторм, вiдкритi файли i iншi ресурси. В 2-му випадку процес сумiсно користувач. Потоки мають деякi властивостi процесiв, тому їх iнколи називають спрощеним процесами. Термiн багато поточнiсть також використовують для опису використання декiлькох потокiв процесу. Потоки роздiляють на декiлька адресних просторiв, дочiрнi процеси, вiдкритi файли i т.д.

22. Використання потоку. Потоки часто використовують в розподiлених системах. Один з прикладiв є обробка вхiдних повiдомлень (запитiв на обслуговування). Традицiйний пiдхiд полягає в наявностi процесу або потоку, який блокується за системним запитом Resive очiкування вхiдного повiдомлення, якщо воно надходить, то приймається i обробляється. Iнший пiдхiд полягає в тому, що при надходження повiдомлення система створює новий потiк для його обробки. Такий потiк називається спливаючим. Його основна перевага полягає у вiдсутностi iсторiї : регiстрiв, стану i iншої iнформацiї.

23. Мiж процесорна взаємодiя. При роботi процесiв часто буває необхiдно їм взаємодiяти мiж собою, тому звiдси виникають проблеми мiж процесорної взаємодiї. В деяких ОС процеси, що працюють сумiсно можуть спiльно використовувати деякий блок даних i зчитувати, записувати в нього. Ситуацiя в яких 2 або бiльше процесiв зчитуються або записуються данi одночасно i кiнцевий результат залежить вiд який з них був 1-м називається станами змагання. Основним способами уникнення проблем пов’язаних з сумiсним використанням пам’ятi, файлiв i т.д. є заборона одночасного запису i читання роздiлених даних. Розроблено багато способiв реалiзацiї взаємного виникнення виключення з метою уникнення входження одного процесу в критичну область при знаходженнi там iнших i пов’язаних з цим проблемами. Деякi способи вирiшення: 1) заборона переривань; 2) змiннi блокування; 3) строге чередування.

24. Примiтиви мiж процесорної взаємодiї. Розглянемо примiтиви мiж процесорної взаємодiї, якi застосовуються замiсть циклiв очiкування, в яких лише витрачається процесорний час. Цi примiтиви блокують процеси у випадку заборони на вхiд в критичну область. В якостi прикладу використання примiтивiв розглянемо проблему виробника i споживача (sleep – це системний запит в результатi якого викликаючий процес блокується поки його не запустить iнший процес). У запиту wake up є 1 параметр – це процес, яки потрiбно запустити. 2 процеси сумiсно використовують буфер обмеженого розмiру. 1 з них виробних розмiщує данi в цей буфер, а 2-й споживач зчитує їх звiдти. Труднощi виникають в той момент, поки робiтних хоче розмiстити в буфер чергову порцiю даних i виявляється, що буфер повний. Для виробника вирiшенням є очiкування поки споживач повнiстю або частково не очистить буфер. Аналогiчно поки споживач хоче забрати данi з буфер, а буфер порожнiй, то споживач переходить в стан очiкування i виходить з нього як тiльки виробних положить що-небудь в буфер i розбудить його. Це рiшення є досить простим, але воно призводить до стану змагання.