русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Ядро системи


Дата додавання: 2014-11-27; переглядів: 947.


 

Ядро забезпечує базову функціональність ОС:створює процеси й керує ними, розподіляє пам'ять і забезпечує доступ до файлів та периферійних пристроїв.

Взаємодія прикладних задач з ядром відбувається за допомогою стандартного інтерфейсу системних викликів.

Інтерфейс системних викликів являє собою набір послуг ядра і визначає формат запитів на послуги. Процес запитує послугу за допомогою системного виклику певної процедури ядра, зовні схожого на звичайний виклик бібліотечної функції. Ядро від імені процесу виконує запит — і повертає процесові необхідні дані.

У наведеному прикладі програма відкриває файл, зчитує з нього дані і закриває цей файл. При цьому операція відкриття (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);

}

 

Ядро складається з трьох основних підсистем:

— файлова підсистема;

— підсистема керування процесами і пам’яттю;

— підсистема введення/виведення.

 

Файлова підсистема забезпечує уніфікований інтерфейс доступу до даних, розташованих на дискових накопичувачах, і до периферійних пристроїв. Ті самі функції open (2), read (2), write (2) можуть використовуватися як при зчитуванні запису даних на диск, так і при виведенні тексту на принтер або термінал.

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

Файлова підсистема забезпечує переспрямовування запитів, адресованих периферійним пристроям, котрі збігаються з модулями підсистеми введення/виведення. Внутрішню структура ядра наведено на рисунку 2.2.

 

 
 

 


Рисунок 2.2 — Внутрішня структура ядра UNIX

 

Підсистема керування процесами і пам’яттю контролює:

— створення й вилучення процесів;

— розподіл системних ресурсів поміж процесами;

— синхронізацію процесів;

— міжпроцесну взаємодію.

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

Спеціальна задача ядра, називана розпорядником, планувальником процесів (scheduler), розв’язує конфлікти поміж процесами в конкуренції за системні ресурси (процесор, пам’ять, пристрої введення/виведення). Планувальник запускає процес на виконання, стежачи за тим, щоби процес монопольно не захопив поділювані системні ресурси. Процес звільнює процесор, очікуючи на тривалу операцію введення/виведення або на завершення кванта часу. У цьому разі планувальник обирає процес з найвищим пріоритетом і запускає його на виконання.

Модуль керування пам’яттю забезпечує розміщення оперативної пам’яті для прикладних задач. Оперативна пам’ять — коштовний ресурс, її рідко буває “забагато”. Якщо для всіх процесів недостатньо пам’яті, ядро переміщує частини процесу у вторинну пам’ять, звільнюючи ресурси для виконуваного процесу. Усі сучасні системи зреалізовують віртуальну пам’ять: процес виконується у власному логічному адресному просторі, що може перевищувати доступну фізичну пам’ять.

Модуль міжпроцесної взаємодії відповідає за повідомлення процесів про події за допомогою сигналів і забезпечує можливість передавання даних поміж різними процесами.

 

Підсистема введення/виведення виконує запити файлової підсистеми і підсистеми керування процесами для доступу до периферійних пристроїв. Вона забезпечує необхідну буферизацію даних і взаємодіє з драйверами пристроїв — спеціальними модулями ядра, які обслуговують зовнішні пристрої.

 


<== попередня лекція | наступна лекція ==>
Архітектура UNIX | Командний рядок і формат команд


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн