2.65M
Category: informaticsinformatics

Программа профессиональной переподготовки «Технологии DevOps». Операционная система

1.

Программа профессиональной
переподготовки
«Технологии DevOps»

2.

Операционная система
доцент кафедры КБ-3
Порсев Илья Сергеевич

3.

Список рассматриваемых вопросов:
Архитектура ОС.
Ядро ОС.
Процессы и потоки.

4.

Архитектура ОС
Функции ядра:
- распределение ресурсов (scheduling) между задачами;
- межпроцессорное взаимодействие;
- организация хранения информации (файловая система);
- унифицированный доступ к оборудованию (API).

5.

Архитектура ОС Windows

6.

Архитектура ОС Linux

7.

Ядро ОС
Ядро – самый нижний уровень легкозаменяемого ПО, взаимодействующий с
оборудованием компьютера. Оно отвечает за взаимодействие приложений, работающих
в пользовательском режиме, с реальным оборудованием и позволяет процессам,
известным
как
«серверы»,
получать
информацию
друг
у
друга,
используя
межпроцессное взаимодействие (IPC).
Существуют разные подходы к построению ядра и разнообразные архитектурные
особенности, которые надо учесть при разработке ядра с нуля. В целом, большинство
ядер можно разделить на три вида:
монолитное - Linux;
микроядерное;
гибридное - OS X (XNU) и Windows NT.

8.

Ядро ОС
Микроядро
Подход микроядра заключается в управлении только тем, чем должно управлять ядро
– процессор, память и IPC. Практически все остальное рассматривается как
дополнительное оборудование и управляется в пользовательском режиме. У микроядер
есть преимущество в переносимости, так как вам не нужно беспокоится о смене
видеокарты или даже операционной системы, до тех пор, пока операционная система
обращается к оборудованию тем же образом. Микроядра очень малы, как в смысле
занимаемой памяти, так и в смысле занимаемого места на диске при установке, и, как
правило, они более безопасны, потому что большинство процессов, в том числе
системных, выполняются в режиме пользователя, что не требует (и не предоставляет)
многих прав доступа, в отличие от работы в режиме ядра.
Плюсы
Минусы
Переносимость
Требуют мало места для установки
Занимают мало места в памяти
Безопасность
Драйверы как слой абстракции для оборудования
Оборудование может иметь большие задержки, потому что драйверы
работают в пользовательском режиме
Процессы вынуждены ждать своей очереди для получения
информации
Процессы не могут получить доступ к другим процессам без
ожидания

9.

Ядро ОС
Монолитное ядро
Монолитные ядра противоположны микроядрам – они включают в себя не только
системы управления процессорами, памятью и IPC, но еще и драйверы устройств,
управление файловыми системами и системные обслуживающие вызовы. Монолитные
ядра обычно выигрывают в работе с оборудованием и в многозадачности, потому что
если программе нужно получить информацию из памяти или от другого запущенного
процесса, ей не нужно ждать в очереди — для нее есть более прямой и простой путь к
получению необходимого. Однако, это может вызвать проблемы, так как чем больше
программ требуют обширных прав доступа, тем больше опасности «уронить» систему,
если одна из них не функционирует корректно.
Плюсы
Минусы
Прямой доступ к оборудованию для приложений
Процессам проще взаимодействовать друг с другом
Если устройство поддерживается — оно будет работать без
лишних телодвижений
Процессы более отзывчивы, т.к. нет очереди за процессорным
временем.
При установке занимает много места
Занимает много памяти
Менее безопасно, т.к. больше процессов
выполняется в режиме ядра

10.

Ядро ОС
Гибридное ядро
Гибридные ядра выбирают, что они будут запускать в пользовательском режиме, а что
– в режиме ядра. Часто такие компоненты, как драйверы устройств и ввод/вывод
файловой системы, запускаются в пользовательском режиме, в то время как IPC и
обслуживающие вызовы работают в режиме ядра. Это дает преимущества обоих
подходов, но часто требует большей работы со стороны производителей, потому что
ответственность за драйверы перекладывается на них. Так же имеются скрытые
недостатки, которые присущи микроядрам.
Плюсы
Минусы
Разработчик может выбрать, какие компоненты
запускать в пользовательском режиме, а какие – в
режиме ядра
Занимает меньше места, чем монолитное ядро
Более гибкое по сравнению с остальными
подходами
Может страдать от тех же задержек процессов, что и
микроядро
Драйверы устройств – забота пользователя (как
правило)

11.

Основные подсистемы ядра ОС Linux

12.

Свойство ядра ОС
Основное свойство ядра - многозадачность т. е. обеспечить возможность
параллельной или псевдопараллельной обработки нескольких задач.
Кооперативная
многозадачность
-
переключение
контекста
инициирует
приложение.
+ отсутствие необходимости синхронизации.
- ненадёжность.
Вытесняющая многозадачность - переключение контекста инициирует ОС по
прерыванию таймера
+ надёжность.
- необходимость в неэффективных механизмах синхронизации.

13.

Процессы и потоки
Однопоточное приложение
Многопоточное приложение

14.

Процессы и потоки

15.

Процесс функционирования ядра ОС

16.

Процесс функционирования ядра ОС

17.

Процесс функционирования ядра ОС

18.

Ядро ОС Linux
Из-за своей монолитности ядро Linux имеет наибольший размер и максимальную
сложность из всех ядер. Это было конструктивной особенностью Linux.
Чтобы обойти эти недостатки, разработчики Linux-ядра создали модули ядра,
которые могут загружаться и выгружаться во время работы, то есть вы можете
добавлять и удалять функции ядра на лету. Это позволяет не только добавлять
поддержку нового оборудования в ядро, добавляя модули, которые запускают
обслуживающие процессы, такие как низкоуровневая виртуализация, но и возможность
замены целого ядра без необходимости перезагрузки в некоторых случаях.
Версии:
- mainline;
- stable;
- longterm (LTS);
- linux-next.

19.

Ядро ОС Linux
Соответствует стандарту ISO/IEC/IEEE 9945:2009 «Информационные технологии.
Переносимый интерфейс операционной системы (POSIX). Базовые технические
требования», выпуск 7.
POSIX (англ. Portable Operating System Interface – переносимый интерфейс
операционных систем) – набор стандартов, описывающих интерфейсы между
операционной системой и прикладной программой (системный API), библиотеку языка C
и набор приложений и их интерфейсов. Стандарт создан для обеспечения
совместимости различных UNIX-подобных операционных систем и переносимости
прикладных программ на уровне исходного кода, но может быть использован и для неUnix систем.

20.

Ядро ОС Linux
Файл ядра лежит в папке /boot и называется vmlinuz-<версия>. Имя vmlinuz пришло
из мира UNIX шестидесятых годов , в котором ядра назывались просто «unix», в
результате чего в начале девяностых при появлении ядро стало называться «linux».
Также в каталоге /boot есть очень важные файлы, называющиеся initrd.img<версия>, system.map-<версия>, и config-<версия>. Файл initrd используется как
маленький RAM-диск, который распаковывает и исполняет собственно ядро. Файл
system.map используется для управления памятью до полной загрузки ядра и файл
config указывает ядру, какие опции и модули загружать в ядро в процессе сборки.

21.

Подсистемы (модули) ядра ОС Linux
Модуль обычно добавляет базовому ядру возможности в таких сферах, как
поддержка оборудования, файловых систем и системных вызовов. Обычно файлы LKM
имеют расширение .ko и хранятся в папке /lib/modules. Благодаря модульности можно
легко настраивать ядро указывая, какие модули загружать, а какие нет, во время
загрузки при помощи команды menuconfig, редактируя файл /boot/config или загружать и
выгружать модули на лету при помощи команды modprobe.
Утилиты для работы с модулями:
lsmod
modprobe
modinfo
ls –l /lib/modules
find /lib/modules -name *.ko
cat /proc/modules

22.

Подсистемы (модули) ядра ОС Linux
https://makelinux.github.io/kernel/map/

23.

Спасибо за внимание
English     Русский Rules