Системний виклик в ОС (Operating System): Що таке, типи та приклади
Що таке системний виклик Operating System?
A системний виклик це механізм, який забезпечує інтерфейс між процесом і операційною системою. Це програмний метод, у якому комп’ютерна програма запитує службу від ядра ОС.
Системний виклик пропонує послуги операційної системи програмам користувача через API (інтерфейс прикладного програмування). Системні виклики є єдиними точками входу в систему ядра.

Приклад системного виклику
Наприклад, якщо нам потрібно написати програмний код для читання даних з одного файлу, скопіюйте ці дані в інший файл. Перша інформація, яка потрібна програмі, це ім’я двох файлів, вхідного та вихідного.
В інтерактивній системі цей тип виконання програми вимагає деяких системних викликів ОС.
- Перший виклик полягає в написанні підказки на екрані
- По-друге, прочитати з клавіатури символи, які визначають два файли.
Як працює системний виклик?
Ось кроки для системного виклику в ОС:

Як ви можете бачити на наведеній вище прикладі діаграми системного виклику.
Крок 1) Процеси, що виконуються в режимі користувача до моменту, коли системний виклик не перерве його.
Крок 2) Після цього системний виклик виконується в режимі ядра в пріоритетному порядку.
Крок 3) Після завершення виконання системного виклику керування повертається в режим користувача.,
Крок 4) Виконання процесів користувача відновлено в Режим ядра.
Навіщо потрібні системні виклики в ОС?
Нижче наведено ситуації, які потребують системних викликів в ОС:
- Читання та запис із файлів вимагає системних викликів.
- Якщо файлова система хоче створити або видалити файли, потрібні системні виклики.
- Системні виклики використовуються для створення та керування новими процесами.
- Мережеві з’єднання потребують системних викликів для надсилання та отримання пакетів.
- Для доступу до апаратних пристроїв, таких як сканер, принтер, потрібен системний виклик.
Типи системних викликів
Ось п’ять типів системних викликів в ОС:
- Управління процесом
- Управління файлами
- Управління пристроями
- Обслуговування інформації
- зв'язку

Управління процесом
Ці системні виклики виконують завдання створення процесу, завершення процесу тощо.
Функції:
- Завершення та переривання
- Завантажити та виконати
- Створити процес і завершити процес
- Зачекайте і Signal Event
- Виділіть і звільніть пам'ять
Управління файлами
Виклики системи керування файлами обробляють завдання роботи з файлами, такі як створення файлу, читання та запис тощо.
Функції:
- Створіть файл
- Видалити файл
- Відкрити і закрити файл
- Читайте, пишіть і змінюйте положення
- Отримання та встановлення атрибутів файлів
Управління пристроями
Керування пристроєм виконує роботу з маніпулювання пристроєм, як-от читання з буферів пристрою, запис у буфери пристрою тощо.
Функції:
- Запит і відпустка пристрою
- Логічно приєднувати/від’єднувати пристрої
- Отримання та встановлення атрибутів пристрою
Обслуговування інформації
Він обробляє інформацію та її передачу між ОС і програмою користувача.
Функції:
- Отримати або встановити час і дату
- Отримайте атрибути процесу та пристрою
Комунікація
Ці типи системних викликів спеціально використовуються для міжпроцесного зв’язку.
Функції:
- Створення, видалення комунікаційних з'єднань
- Відправити, отримати повідомлення
- Допоможіть ОС передати інформацію про стан
- Приєднуйте або від'єднуйте віддалені пристрої
Правила передачі параметрів системного виклику
Ось загальні правила передачі параметрів системному виклику:
- Операційна система має надсилати або вилучати зі стеку параметри.
- Параметри можна передавати в регістрах.
- Якщо параметрів більше, ніж регістрів, їх слід зберігати в блоці, а адресу блоку слід передати як параметр до регістру.
Важливі системні виклики, що використовуються в ОС
почекати ()
У деяких системах процес повинен чекати, поки інший процес завершить своє виконання. Цей тип ситуації виникає, коли батьківський процес створює дочірній процес, а виконання батьківського процесу залишається призупиненим, доки не буде виконано його дочірній процес.
Призупинення батьківського процесу відбувається автоматично за допомогою системного виклику wait(). Коли дочірній процес завершує виконання, керування повертається до батьківського процесу.
вилка ()
Процеси використовують цей системний виклик для створення процесів, які є копіями самих себе. За допомогою цієї системи Call parent process створює дочірній процес, і виконання батьківського процесу буде призупинено до виконання дочірнього процесу.
exec ()
Цей системний виклик запускається, коли виконуваний файл у контексті вже запущеного процесу замінює старіший виконуваний файл. Однак вихідний ідентифікатор процесу залишається, оскільки новий процес не створюється, але стек, дані, голова, дані тощо замінюються новим процесом.
вбити ()
Системний виклик kill() використовується ОС для надсилання сигналу завершення процесу, який закликає процес вийти. Однак системний виклик kill не обов’язково означає завершення процесу та може мати різні значення.
вихід ()
Системний виклик exit() використовується для припинення виконання програми. Особливо в багатопоточному середовищі цей виклик визначає, що виконання потоку завершено. ОС відновлює ресурси, які були використані процесом після використання системного виклику exit().
Підсумки
Категорії | Windows | Юнекс |
---|---|---|
Контроль процесу | CreateProcess() ExitProcess() WaitForSingleObject() |
вилка () вихід () почекати () |
Маніпуляції з пристроєм | SetConsoleMode() ReadConsole() WriteConsole() |
loctl() читати () write () |
Маніпулювання файлами | CreateFile() ReadFile() WriteFile() CloseHandle() |
ВІДЧИНЕНО() Читати () write () близько!) |
Ведення інформації | GetCurrentProcessID() SetTimer() сон() |
getpid() будильник() sleep () |
Комунікація | CreatePipe() CreateFileMapping() MapViewOfFile() |
Труба() shm_open() mmap () |
захист | SetFileSecurity() InitlializeSecurityDescriptабо () SetSecurityDescriptабо Група () |
Chmod() Umask() Чоун() |