- •Срс 1. Класифікація операційних систем. Основні принципи побудови операційних систем Класифікація операційних систем
- •1. По призначенню ос діляться на:
- •2. По режиму обробки даних розрізняють:
- •3. За засобом взаємодії з обчислювальною системою ос діляться на:
- •4. За основним архітектурним принципом ос діляться на:
- •Основні принципи побудови операційних систем
- •1. Принцип модульності
- •2. Принцип функціональної вибірковості
- •3. Принцип генерованості ос
- •4.Принцип функціональної надлишковості
- •5. Принцип віртуалізації
- •Срс 2. Базові дисципліни планування psjn, hprn, srr, mlfb
- •Срс 3. Фіксовані розділи пам'яті
- •Срс 4: Сегментно-сторінкова модель пам'яті. Плоска модель пам'яті Сегментно-сторінкова модель
- •Плоска модель пам'яті
- •Срс 5: Класична задача розподілу ресурсів, що носить назву "Проблеми філософів, що обідають" Філософи, що обідають
- •Срс 6: Нескінченне відкладання Нескінченне відкладання
- •Срс 7: Таблиця розташування файлів. Структура завантажувального запису dos
- •Структура завантажувального запису dos
- •Срс 8: Файлова система ntfs Файлова система ntfs (New Technology File System)
- •Основні можливості файлової системи ntfs
- •Срс 10: Захист інформації в комп’ютерних системах засобами ос. Захист файлів в операційних системах класу Unix Захист файлів
- •Срс 11: Модель віртуальних комунікаційних портів. Програмні канали. Черги повідомлень Загальні області пам'яті
- •Семафори
- •Програмні канали
- •Черги повідомлень
- •Срс 12: Взаємодія з користувачем в ос. Інтерфейс користувача. Елементи інтерфейсу. Віджети Взаємодія з користувачем в ос
- •Інтерфейс користувача.
- •Елементи інтерфейсу
- •Контрольні запитання:
- •Срс 13: Багатопроцесорні розподілені системи Функціонально розподілені системи
- •Паралельні комп’ютери
- •Продуктивність паралельних комп’ютерів
- •Системи з розподіленою пам’яттю
- •Класичні матричні системи
- •Обчислювальні кластери
- •Срс 14: Microsoft Windows для планшетів
- •Срс 15: Історія появи комп'ютерів Macintosh і їх застосування
- •Особливості апаратного забезпечення комп'ютерів Macintosh
- •Срс 16: Організація операційних систем на базі Linux
- •Срс 17: Хмарні операційні системи
- •Що таке хмарні операційні системи?
- •Найпопулярніші на сьогоднішній день WebOs:
- •Висновки
- •Література
- •Навчальне видання Тетяна Іванівна Трояновська Методичні вказівки до виконання самостійної роботи студентів з дисципліни “Комп’ютерні системи та мережі”
Програмні канали
Програмний канал по-англійськи називається pipe (труба), і це вельми вдала назва. Канал дійсно можна представити як трубопровід «пневматичної» пошти, прокладений між двома процесами, як показано на рис.11.2. По цьому трубопроводу дані передаються від одного процесу до іншого. Як і трубопровід, програмний канал однонаправлений (хоча, наприклад, в Unix одним системним викликом створюються відразу два різноспрямовані канали). Як і трубопровід, програмний канал має власну ємкість: дані записані в канал, не обов'язково повинні негайно вибиратися не протилежному його кінці, але можуть накопичуватися в каналі, поки це дозволяє його ємкість. Як і трубопровід, канал працює по дисципліні FIFO: перший увійшов - перший вийшов.
Рисунок 11.2 – Програмні канали |
|
Зі всіх засобів взаємодії між процесами канали (pipe) краще всього вписуються в модель віртуальних комунікаційних портів. Канал для процесу практично аналогічний файлу. Спеціальні системні виклики типу createPipe, openPipe використовуються для створення каналу і діставання доступу до каналу, а для роботи з каналом використовуються ті ж виклики read і write, що і для файлів, і навіть закриття каналу виконується файловим системним викликом close. При створенні каналу для нього створюється дескриптор, як для відкритого файлу, що дозволяє працювати з ним далі, як з файлом. Канал, проте, є не зовнішніми даними, а областю пам'яті. Для каналу виділяється пам'ять в системній області, що може обмежувати ємкість каналу.
Найчастіше використовуються неіменовані канали, як засіб зв'язку між батьком і нащадком. Операція створення неіменованого каналу повертає два файлові маніпулятори: для читання і для запису. Процес-предок передає ці маніпулятори процесу-нащадкові. Якщо зв'язок між предком і нащадком однонаправлений, то кожен з них закриває канал по одному з маніпуляторів. Наприклад, якщо дані передаються тільки від предка до нащадка, то предок після передачі маніпуляторів закриває канал на читання, а нащадок - на запис.
З погляду реалізації каналом є класичний варіант завдання "виробник-споживач": один процес пише в канал дані, інший - читає їх з каналу. Якщо при спробі запису даних в канал виявляється, що канал повний, пишучий процес блокується до звільнення місця в каналі, якщо при спробі читання даних виявляється, що канал порожній - процес, що читає, блокується до появи в каналі даних. Внутрішнім механізмом ОС, що забезпечує синхронізацію в таких ситуаціях, є, звичайно ж, семафор.
Іменовані канали є зручним засобом клієнт-серверних комунікацій. Іменовані канали в деяких ОС (наприклад, OS/2) істотно відрізняються від неіменованих. Іменовані канали орієнтовані в цих системах перш за все на взаємодію процесів в мережевому середовищі (або, точніше, для них прозоро, чи знаходяться обидва процеси на одному комп'ютері або в різних вузлах мережі). Такий канал двонаправлений, тобто, до нього можливі звернення і для читання, і для запису. Дані в каналі можуть передаватися як потоком байт, так і повідомленнями. У останньому випадку кожне повідомлення забезпечується заголовком, в якому указується його довжина. До одного кінця каналу постійно підключений процес, що його створив, - власник або сервер, до іншого кінця можуть підключатися різні процеси-клієнти, таким чином, обмін даними по іменованому каналу між процесами, жоден з яких не є власником каналу, неможливий. При створенні каналу (системний виклик createNamedPipe) указується максимально можливе число клієнтів, які можуть бути одночасно підключені до каналу (це число, втім, може і не обмежуватися). Коли власник створює канал, канал знаходиться в так званому відключеному стані. Системним викликом connectNamedPipe власник переводить канал в стан, очікування. Тепер процеси-клієнти можуть підключатися до іншого кінця каналу за допомогою файлових системних викликів openNamedPipe. Канал, відкритий хоч би одним клієнтом, вважається підключеним, сервер і підключені клієнти можуть працювати з ним, використовуючи виклики файлового API. Клієнти відключаються від каналу викликом close, у розпорядженні власника є виклик disconnectNamedPipe - розриву каналу. Крім звичайних викликів файлового обміну, для роботи з іменованим каналом у складі API можуть бути спеціальні системні виклики, що забезпечують виконання складних транзакцій на іменованому каналі наприклад: transactNamedPipe - взаємний обмін даними (введення і введення) за одну операцію, callNamedPipe - забезпечує також відкриття каналу, взаємний обмін, закриття каналу. Крім того, до іменованого каналу або до декількох іменованих каналів може бути підключений семафор, який скидається при зміні стану каналу (заповнений - не заповнений, порожній - не порожній).
