Слайд 2
![Загрузка операционной системы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/387206/slide-1.jpg)
Загрузка операционной системы
Слайд 3
![Этапы загрузки операционной системы Включение компьютера Тестирование аппаратуры POST (Power-On](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/387206/slide-2.jpg)
Этапы загрузки операционной системы
Включение компьютера
Тестирование аппаратуры POST (Power-On Self-Test)
Загрузка BIOS из
ПЗУ в ОЗУ
Загрузка из MBR (Master Boot Record) загрузчика операционной системы (загрузчик 1-ого уровня)
Если есть загрузчик 2-ого уровня (обычно драйвер файловой системы), то загружается он
Загрузка ядра
Запуск основного процесса (init)
Слайд 4
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/387206/slide-3.jpg)
Слайд 5
![Состав операционной системы Управление вводом-выводом, часто включает файловую систему Управление оперативной памятью Управление процессами Межпроцессное взаимодействие](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/387206/slide-4.jpg)
Состав операционной системы
Управление вводом-выводом, часто включает файловую систему
Управление оперативной памятью
Управление процессами
Межпроцессное
взаимодействие
Слайд 6
![Подсистема управления вводом-выводом Реализует базовые механизмы обмена данными между устройствами](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/387206/slide-5.jpg)
Подсистема управления вводом-выводом
Реализует базовые механизмы обмена данными между устройствами ввода-вывода
и оперативной памятью вычислительной машины и обеспечивает организацию файлов в файловые системы.
Операция ввода выполняется как чтение данных с внешнего устройства в оперативную память, операция вывода - как запись данных из оперативной памяти на внешнее устройство.
При работе с файлами система ввода-вывода внедряет специальную абстракцию - поток ввода-вывода, что позволяет приложениям, которые обращаются за сервисами ввода-вывода, использовать однообразный перечень функций работы с файлами независимо от типа устройства, на котором находится файл, и типа файловой системы, содержащей этот файл. Различия доступа к различным устройствам и файловым системам обеспечиваются дополнительными программными модулями - драйверами устройств и файловых систем.
Слайд 7
![Подсистема управления оперативной памятью Обеспечивает распределение оперативной памяти между различными](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/387206/slide-6.jpg)
Подсистема управления оперативной памятью
Обеспечивает распределение оперативной памяти между различными компонентами, а
также распределяет память под кэш системы ввода-вывода.
Виртуализирует оперативную памяти, благодаря чему каждая задача (процесс) получает собственную виртуальную память, причем таким образом, что недостаток реальной (физической) памяти покрывается за счет перераспределения данных между оперативной памятью и внешним накопителем и перемещения данных между физической оперативной памятью и внешним накопителем защищен от задач.
Слайд 8
![Подсистема управления процессами Обеспечивает создание процесса, загрузку программного кода и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/387206/slide-7.jpg)
Подсистема управления процессами
Обеспечивает создание процесса, загрузку программного кода и его выполнения
и завершения процесса.
Кроме того, подсистема обеспечивает диспетчеризацию выполнения процессов.
Слайд 9
![Межпроцессное взаимодействие позволяет процессам синхронизировать свою работу, совместно и согласованно](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/387206/slide-8.jpg)
Межпроцессное взаимодействие
позволяет процессам синхронизировать свою работу, совместно и согласованно использовать общие
ресурсы и совместно выполнять обработку данных.
Слайд 10
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/387206/slide-9.jpg)
Слайд 11
![Планирование и диспетчеризация процессов решает две независимые задачи: 1. определяет,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/387206/slide-10.jpg)
Планирование и диспетчеризация процессов решает две независимые задачи:
1. определяет, какой из
готовых к выполнению процессов, когда, и на какой интервал времени следует передать процессору для выполнения, т.е. выполняет собственно планирование процессов;
2. выполняет переключение процессов, т.е. снимает с исполнения текущий процесс и ставит на исполнение запланированный процесс. Такое переключение процессов называют диспетчеризацией.
Задача планирования является аппаратно-независимой. Планирование процессов осуществляется исходя из степени важности процессов для системы или пользователя и временной статистики их исполнения, т.е. без учета каких-либо аппаратных особенностей компьютера.
Задача диспетчеризации, наоборот, является аппаратно-зависимой, т.к. переключение процессов связано с сохранением и загрузкой регистров конкретного процессора.
Слайд 12
![Контекст процесса Каждому процессу соответствует контекст, в котором он выполняется.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/387206/slide-11.jpg)
Контекст процесса
Каждому процессу соответствует контекст, в котором он выполняется. Этот контекст
включает содержимое пользовательского адресного пространства - пользовательский контекст (т.е. содержимое сегментов программного кода, данных, стека, разделяемых сегментов и сегментов файлов, отображаемых в виртуальную память), содержимое аппаратных регистров - регистровый контекст (регистр счетчика команд, регистр состояния процессора, регистр указателя стека и регистров общего назначения), а также структуры данных ядра (контекст системного уровня), связанные с этим процессом. Контекст процесса системного уровня в ОС UNIX состоит из "статической" и "динамических" частей. У каждого процесса имеется одна статическая часть контекста системного уровня и переменное число динамических частей.
Слайд 13
![Статическая часть контекста процесса Описатель процесса, т.е. элемент таблицы описателей](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/387206/slide-12.jpg)
Статическая часть контекста процесса
Описатель процесса, т.е. элемент таблицы описателей существующих
в системе процессов. Описатель процесса включает, в частности, следующую информацию:
состояние процесса;
физический адрес в основной или внешней памяти u-области процесса;
идентификаторы пользователя, от имени которого запущен процесс;
идентификатор процесса;
прочую информацию, связанную с управлением процессом.
Слайд 14
![Статическая часть контекста процесса U-область (u-area), индивидуальная для каждого процесса](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/387206/slide-13.jpg)
Статическая часть контекста процесса
U-область (u-area), индивидуальная для каждого процесса область пространства
ядра, обладающая тем свойством, что хотя u-область каждого процесса располагается в отдельном месте физической памяти, u-области всех процессов имеют один и тот же виртуальный адрес в адресном пространстве ядра. Именно это означает, что какая бы программа ядра не выполнялась, она всегда выполняется как ядерная часть некоторого пользовательского процесса, и именно того процесса, u-область которого является "видимой" для ядра в данный момент времени.
Слайд 15
![U-область процесса указатель на описатель процесса; идентификаторы пользователя; счетчик времени,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/387206/slide-14.jpg)
U-область процесса
указатель на описатель процесса;
идентификаторы пользователя;
счетчик времени, которое процесс
реально выполнялся (т.е. занимал процессор) в режиме пользователя и режиме ядра;
параметры системного вызова;
результаты системного вызова;
таблица дескрипторов открытых файлов;
предельные размеры адресного пространства процесса;
предельные размеры файла, в который процесс может писать;
и т.д.
Слайд 16
![Динамическая часть контекста процесса это один или несколько стеков, которые](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/387206/slide-15.jpg)
Динамическая часть контекста процесса
это один или несколько стеков, которые используются процессом
при его выполнении в режиме ядра. Число ядерных стеков процесса соответствует числу уровней прерывания, поддерживаемых конкретной аппаратурой.
Слайд 17
![Текст операций системы и ее глобальные информационные структуры совместно используются](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/387206/slide-16.jpg)
Текст операций системы и ее глобальные информационные структуры совместно используются всеми
процессами, но не являются составной частью контекста процесса.
Слайд 18
![При запуске процесса система исполняется в контексте процесса. Когда ядро](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/387206/slide-17.jpg)
При запуске процесса система исполняется в контексте процесса. Когда ядро системы
решает запустить другой процесс, оно выполняет переключение контекста с тем, чтобы система исполнялась в контексте другого процесса. Ядро осуществляет переключение контекста только при определенных условиях. Выполняя переключение контекста, ядро сохраняет информацию, достаточную для того, чтобы позднее переключиться вновь на первый процесс и возобновить его выполнение. Аналогичным образом, при переходе из режима задачи в режим ядра, ядро системы сохраняет информацию, достаточную для того, чтобы позднее вернуться в режим задачи и продолжить выполнение с прерванного места. Однако, переход из режима задачи в режим ядра является сменой режима, но не переключением контекста.
Ядро выполняет переключение контекста, когда меняет контекст процесса A на контекст процесса B; оно меняет режим выполнения с режима задачи на режим ядра и наоборот, оставаясь в контексте одного процесса, например, процесса A.
Слайд 19
![Ядро обрабатывает прерывания в контексте прерванного процесса, пусть даже оно](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/387206/slide-18.jpg)
Ядро обрабатывает прерывания в контексте прерванного процесса, пусть даже оно и
не вызывало никакого прерывания. Прерванный процесс мог при этом выполняться как в режиме задачи, так и в режиме ядра. Ядро сохраняет информацию, достаточную для того, чтобы можно было позже возобновить выполнение прерванного процесса, и обрабатывает прерывание в режиме ядра. Ядро не порождает и не планирует порождение какого-то особого процесса по обработке прерываний.
Слайд 20
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/387206/slide-19.jpg)
Слайд 21
![При переключении контекста происходит сохранение и восстановление следующей информации: Регистровый](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/387206/slide-20.jpg)
При переключении контекста происходит сохранение и восстановление следующей информации:
Регистровый контекст регистров
общего назначения (в том числе флаговый регистр)
Контекст состояния сопроцессора с плавающей точкой
Состояние регистров MMX/SSE (x86)
Состояние сегментных регистров (x86)
Состояние некоторых управляющих регистров (например, регистр CR3, отвечающий за страничное отображение памяти процесса) (x86)