- •СПбГУТ им. проф. Бонч- Бруевича )))
- •План
- •Используемый софт
- •Ядро операционной системы
- •Ядро операционной системы
- •Ядро операционной системы
- •Ядро операционной системы
- •Ядро операционной системы
- •Ядро операционной системы
- •Объекты ядра
- •Объекты ядра
- •Объекты ядра: Создание
- •Объекты ядра
- •Объекты ядра: Закрытие дескриптора
- •Объекты ядра: Закрытие дескриптора
- •Объекты ядра: Именованные объекты
- •Объекты ядра: Именованные объекты
- •Объекты ядра: Именованные объекты
- •Объекты ядра: Наследование
- •Объекты ядра: Наследование
- •Процессы и потоки
- •Процессы и потоки
- •Процессы и потоки
- •Создание процесса
- •Создание процесса
- •Создание потока
- •Функции ожидания
- •Функции ожидания
- •Функции ожидания
- •События, семафоры и мьютексы
- •Создание события
- •Создание события
- •Создание семафора
- •Создание мьютекса
- •Создание мьютекса
- •Windows API подробнее
- •Windows API подробнее
- •Windows API подробнее
- •Windows API подробнее
- •Windows API подробнее
- •Windows API подробнее
- •Windows API подробнее
- •Windows API подробнее
- •Windows API подробнее
- •Windows API подробнее
- •Windows API подробнее
- •Windows API подробнее
- •Windows API подробнее
- •Windows API подробнее
- •Литература
- •Используемая литература
- •FINAL
СПбГУТ им. проф. Бонч- Бруевича )))
Механизмы ядра
Алгоритмические основы программной инженерии Ерофеев С. А.
Коваленко Л. А.
План
1.Ядро операционной системы.
2.Объекты ядра операционной системы.
3.Процессы и потоки.
4.Функции ожидания.
5.События, семафоры и мьютексы.
6.Windows API подробнее.
Используемый софт
1.Используемые языки: C (Си).
2.Стандарт языка Си: C89 (ISO C90).
3.Среда разработки: Dev-C++ 5.11 (2015).
4.Компилятор: GNU C89 (tdm64-1) version 5.1.0 (x86_64-w64-mingw32).
5.Используемые заголовочные файлы: windows.h, stdio.h, stdlib.h.
Ядро операционной системы
Ядро операционной системы
Ядро ОС (англ. kernel) —
центральная часть операционной системы, находящаяся в оперативной памяти.
Ядро операционной системы
Функции ядра:
•обработка прерываний;
•создание и уничтожение задач;
•переключение задач из состояния в состояние;
•приостановка и активизация задач;
•синхронизация задач;
•организация взаимодействия между задачами;
•поддержка операций ввода-вывода;
•поддержка распределения и перераспределения памяти;
•поддержка работы файловой системы…
Ядро операционной системы |
|||||||||
Пространство ядра |
Пространство пользователя |
||||||||
|
|
|
|
(пользовательские |
|||||
|
|
|
|
|
|
|
программы) |
||
|
|
|
|
|
|
|
|
|
й |
|
|
|
|
|
|
|
|
ы |
|
|
|
|
|
|
|
|
н |
|
|
|
|
|
|
|
|
м |
|
|
|
|
|
|
|
|
е |
|
|
|
|
|
|
|
|
т |
|
|
|
|
|
|
|
|
с |
|
|
|
|
|
|
|
|
и |
|
|
|
|
|
|
|
Оперативная |
|
С |
|
вызов |
|
||||
память |
Ядро |
Системный |
|||||||
|
|||||||||
Жесткий |
ОС |
С |
|
|
вызов |
||||
|
|
ис |
|
|
|
|
|
||
|
|
|
|
т |
|
|
|
|
|
|
|
|
|
|
е |
|
|
|
|
диск |
|
|
в |
|
мны |
й |
|||
|
|
|
|
|
|
||||
|
|
|
|
ызов |
|
|
|||
Системный вызов (программное прерывание) — |
|||||||||
обращение прикладной программы к ядру |
|||||||||
операционной системы для выполнения какой-либо |
|||||||||
операции. |
|
|
|
|
|
|
|
|
|
Ядро операционной системы |
||||||||||||
Пространство ядра |
Пространство пользователя |
|||||||||||
|
(пользовательские программы) |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
и |
|
|
|
|
|
|
|
|
|
|
|
и |
|
|
|
|
|
|
|
|
|
|
|
ц |
|
|
|
|
|
|
|
|
|
|
|
к |
|
|
|
|
|
|
|
|
|
|
|
н |
|
|
|
|
|
|
|
|
|
|
|
у |
|
|
|
|
|
|
|
|
|
|
|
в |
ф |
|
|
|
|
|
|
|
|
|
|
о |
|
|
|
|
|
|
|
|
|
|
|
з |
|
|
|
|
|
|
|
|
|
|
|
ы |
|
|
|
|
|
|
|
|
|
|
|
|
В |
|
|
|
|
|
|
|
|
|
|
Ядро |
Библиотек |
|
Вызов функции |
|||||||||
ОС |
а или API |
|
Выз |
|
|
|
|
|
|
|||
|
|
|
|
|
|
ов ф |
|
|
|
|||
|
|
|
|
|
|
|
|
|
ункци |
|||
|
|
|
|
|
|
|
|
|
|
|
|
и |
Как правило, операционная система предоставляет библиотеку или API, посредством которых происходит взаимодействие между
пользовательским процессом и ОС.
Ядро операционной системы
API (application programming interface, [«эй-пи-ай»]) — это набор готовых классов, функций,
процедур, структур и констант.
Практически все операционные системы (UNIX, Windows, OS X и т. д.) имеют API,
с помощью которого программисты могут создавать приложения для этой операционной системы.