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