logo
СПЗ_лекції

4.Примітиви міжпроцесної взаємодії.

Розглянемо примітиви міжпроцесної взаємодії, які застосовуються замість циклів очікування, в яких лише витрачається процесорний час. Ці примітиви блокують процеси у випадку заборони на вхід в критичну область.

В якості прикладу використання примітивів розглянемо проблему виробника і споживача (sleep – системний запит, в результаті якого викликаючий процес блокується, поки його не запустить інший процес; у запиту wake up є один параметр – це процес, який потрібно запустити). Аналогічно, якщо споживач хоче забрати дані з буфера, а буфер порожній, споживач переходить в стан очікування і виходить з нього як тільки виробник положить що-небудь в буфер і розбудить його. Це рішення є досить простим, але воно приводить до стану змагання.