logo
СПЗ_лекції

Модель клієнт-сервер

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

Рис.2.8. Модель клієнт-сервер

В моделі, зображеній на рис.2.8, в задачу ядра входить тільки керування зв’язком між клієнтами і серверами. Завдяки розподілу операційної системи на частини, кожна з яких керує всього одним елементом системи (файловою системою, процесами, терміналом або пам’яттю), всі частини стають малими і керованими. Оскільки всі сервери працюють як процеси в режимі користувача, а не в режимі ядра, то вони не мають прямого доступу до апаратури.

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

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

Рис.2.9. Модель клієнт-сервер в розподіленій системі