Page 27 - 2578
P. 27
Ядро забезпечує базову функціональність ОС: створює
процеси й керує ними, розподіляє пам'ять і забезпечує доступ
до файлів та периферійних пристроїв.
Взаємодія прикладних задач з ядром відбувається за
допомогою стандартного інтерфейсу системних викликів.
Інтерфейс системних викликів являє собою набір послуг
ядра і визначає формат запитів на послуги. Процес запитує
послугу за допомогою системного виклику певної процедури
ядра, зовні схожого на звичайний виклик бібліотечної функції.
Ядро від імені процесу виконує запит — і повертає процесові
необхідні дані.
У наведеному прикладі програма відкриває файл, зчитує з
нього дані і закриває цей файл. При цьому операція відкриття
(open), читання (read) і закриття (close) файла виконуються
ядром за запитом задачі, а функції open (2), read (2), close (2) є
системними викликами.
main()
{
int fd;
char buf [80];
/*Відкриємо файл–одержимо надсилання (файловий
дескриптор) fd*/
fd=open(“filed”,O_RDONLY);
/*Вводимо в буфер buf 80 символів*/
read (fd,buf, sizeof(buf));
/*Закриємо файл*/
close (fd);
}
Ядро складається з трьох основних підсистем:
— файлова підсистема;
— підсистема керування процесами і пам’яттю;
— підсистема введення/виведення.
26