Системний виклик в ОС (Operating System): Що таке, типи та приклади
⚡ Розумний підсумок
Системний виклик — це контрольований інтерфейс, який процес використовує для запиту служб ядра, таких як доступ до файлів, керування процесами та зв'язок з пристроями, безпечно перемикаючи процесор з режиму користувача в привілейований режим ядра.

Що таке системний виклик Operating System?
A системний виклик це механізм, який забезпечує інтерфейс між процесом і операційною системою. Це програмний метод, у якому комп’ютерна програма запитує службу від ядра ОС.
Системний виклик пропонує послуги операційної системи програмам користувача через API (інтерфейс прикладного програмування). Системні виклики є єдиними точками входу в систему ядра.
Системні виклики Operating System
Приклад системного виклику
Наприклад, щоб написати програму, яка зчитує дані з одного файлу та копіює їх в інший, програмі спочатку потрібні імена двох файлів: вхідного та вихідного.
В інтерактивній системі цей тип виконання програми вимагає деяких системних викликів від ОС.
- Перший виклик — написати підказку на екрані.
- Другий — зчитати з клавіатури символи, що визначають два файли.
Як працює системний виклик?
Ось кроки для системного виклику в ОС:
Archiструктура системного виклику
Як видно на діаграмі системних викликів вище:
Крок 1) Процеси виконуються в режимі користувача, доки системний виклик не перерве їх.
Крок 2) Після цього системний виклик виконується в режимі ядра на основі пріоритету.
Крок 3) Після завершення виконання системного виклику керування повертається до режиму користувача.
Крок 4) Виконання користувацьких процесів відновлюється, переходячи між користувацьким режимом і режим ядра в міру необхідності.
Навіщо потрібні системні виклики в ОС?
Нижче наведено ситуації, які потребують системних викликів в ОС:
- Читання та запис із файлів вимагає системних викликів.
- Якщо файлова система хоче створити або видалити файли, потрібні системні виклики.
- Системні виклики використовуються для створення та керування новими процесами.
- Мережеві з’єднання потребують системних викликів для надсилання та отримання пакетів.
- Для доступу до апаратних пристроїв, таких як сканер або принтер, потрібен системний виклик.
Типи системних викликів
Ось п'ять типів системних викликів в ОС:
- Управління процесом
- Управління файлами
- Управління пристроями
- Обслуговування інформації
- Комунікація
Типи системних викликів в ОС
Управління процесом
Ці системні виклики виконують завдання створення процесу, завершення процесу тощо.
Функції:
- Завершити та перервати
- Завантажити та виконати
- Створити процес і завершити процес
- Зачекайте і Signal Event
- Виділіть і звільніть пам'ять
Управління файлами
Виклики системи керування файлами обробляють завдання роботи з файлами, такі як створення файлу, читання та запис тощо.
Функції:
- Створіть файл
- Видалити файл
- Відкрити і закрити файл
- Читайте, пишіть і змінюйте положення
- Отримання та встановлення атрибутів файлів
Управління пристроями
Керування пристроєм виконує роботу з маніпулювання пристроєм, як-от читання з буферів пристрою, запис у буфери пристрою тощо.
Функції:
- Запит і відпустка пристрою
- Логічно підключати або відключати пристрої
- Отримання та встановлення атрибутів пристрою
Обслуговування інформації
Він обробляє інформацію та її передачу між ОС і програмою користувача.
Функції:
- Отримати або встановити час і дату
- Отримайте атрибути процесу та пристрою
Комунікація
Ці типи системних викликів спеціально використовуються для міжпроцесної комунікації.
Функції:
- Створення та видалення комунікаційних з'єднань
- Надсилання та отримання повідомлень
- Допомога з інформацією про стан перенесення ОС
- Приєднуйте або від'єднуйте віддалені пристрої
Правила передачі параметрів системного виклику
Ось загальні правила передачі параметрів системному виклику:
- Параметри повинні бути завантажені в стек або видалені зі стеку операційною системою.
- Параметри можна передавати в регістрах.
- Коли параметрів більше, ніж регістрів, їх слід зберігати в блоці, а адресу блоку слід передавати в регістрі.
Важливі системні виклики, що використовуються в ОС
почекати ()
У деяких системах один процес має чекати на завершення іншого. Це трапляється, коли батьківський процес створює дочірній процес, і батьківський процес залишається призупиненим, доки дочірній процес не завершить свою роботу.
Призупинення батьківського процесу відбувається автоматично за допомогою системного виклику wait(). Коли дочірній процес завершує виконання, керування повертається до батьківського процесу.
вилка ()
Процеси використовують цей системний виклик для створення процесів, які є їхніми копіями. За допомогою fork() батьківський процес створює дочірній процес, і батьківський процес призупиняється до виконання дочірнього процесу.
exec ()
Цей системний виклик запускає виконуваний файл у вже запущеному процесі, замінюючи старий. Початковий ідентифікатор процесу залишається, оскільки новий процес не створюється, але стек, дані, купа тощо замінюються новим процесом.
вбити ()
Системний виклик kill() використовується ОС для надсилання сигналу завершення процесу, спонукаючи його до виходу. Однак системний виклик kill не обов'язково означає завершення процесу та може мати різні значення.
вихід ()
Системний виклик exit() використовується для завершення виконання програми. Особливо в багатопотоковому середовищі цей виклик визначає, що виконання потоку завершено. ОС повертає ресурси, використані процесом, після виклику exit().




