- •Конспект лекций по курсу: «Операционные системы. Ч.1»
- •Введение
- •Аппаратные средства.
- •Центральный процессор.
- •Разрядность шины памяти.
- •Архитектура процессора.
- •Процессорное ядро.
- •Декодер.
- •Регистры процессора.
- •Многопроцессорные и многоядерные системы.
- •Многоядерные системы.
- •Оперативная память.
- •Адресация оп.
- •Ввод-вывод.
- •Прерывания.
- •Внешние устройства.
- •Классификация ос.
- •Основные понятия ос.
- •Структура ос.
- •Программная структура ос.
- •Программная структура ядра.
- •Интерфейсы системы вызовов.
- •Понятие мобильной ос.
- •Микроядерная архитектура.
- •Основные компоненты ос
- •Процессы и потоки.
- •Потоки.
- •Взаимодействие процессов, потоков.
- •Управление памятью.
- •Организация виртуальной памяти в ос.
- •Организация виртуальной памяти.
- •Сегментно-страничное распределение.
- •Преобразование адресов.
- •Буферы быстрого преобразования адреса.
- •Инвертированные таблицы страниц.
- •Алгоритмы замещения страниц.
- •Распределение виртуального адресного пространства.
- •Очистка страниц.
- •Перезапуск прерванной команды процессора.
- •Хранение страничной памяти на диске.
- •Реализация виртуальной памяти ос multics.
- •Виртуальная память в ос с аппаратной платформой Intel Pentium.
- •Защита памяти.
- •Ввод-вывод.
- •Контроллеры устройств.
- •Обмен данными с реальной оп.
- •Принципы программной реализации управления вводом-выводом.
- •Программная организация ввода-вывода.
- •Уровни реализации ввода-вывода.
- •Обработчики прерываний
- •Драйверы устройств.
- •Управление внешними устройствами.
- •Службы времени.
- •Алфавитно-цифровые терминалы.
- •Программное обеспечение ввода.
- •Программное обеспечение вывода.
- •Датчики.
- •Управление электропотреблением.
- •Файловые системы.
- •Логическая и физическая организация файлов.
- •Файловая система msdos.
- •Организация нескольких логических разделов.
- •Надежность файловой системы.
- •Производительность фс.
- •Файловая система cdr.
- •Формат записи каталога.
- •Сжатие видеоинформации.
- •Стандарт mpeg (Motion Picture Expert Group).
- •Структура реальной оп.
- •Структура виртуальной оп виртуальной машины.
- •Организация вычислительного процесса.
- •Планирование и диспетчирование.
- •Обработка прерываний.
- •Управление памятью.
- •Управление внешней памятью.
- •Планирование и диспетчирование.
- •Управление вводом-выводом.
- •Средства программирования и инструментальные средства.
- •Сетевые возможности операционных систем.
- •Понятие dce.
- •Подходы к обеспечению безопасности информации в ос.
Обработка прерываний.
Все модули CP (страничное и нестраничное ядро) являются реентерабельными, т.е. при их выполнении прерывания не допускаются и в ходе выполнения содержимое их не меняется. Для обработки прерываний CP включает так называемые окна между переходами от одного модуля (группы модулей) к другому для проверки есть прерывание или нет. При работе CP динамическое преобразование адресов не осуществляется, адрес определяется с помощью загрузки базового адреса страницы. Размер страницы 4К. Все модули CP меньше 4К.
Все прерывания делятся на 3 группы:
1. Прерывания, которые требуют выполнения CP системных функций: прерывания от реальных устройств ввода-вывода, прерывания от средств службы времени, прерывания страничного обмена и т.п.
2. Прерывания, которые приводят к моделированию реальных ресурсов для ВМ : прерывания для предоставления кванта реального ЦП, прерывания для подкачки одной виртуальной страницы ВМ и т.п.
3. Прерывания, которые относятся к ОС виртуальной машины:
- прерывания от виртуальных устройств ввода-вывода (ВМ запустила операцию ввода-вывода, CP спланировала, выполнила и отразила прерывание об окончании ввода-вывода в виртуальную машину);
- программное прерывание в ОС или прикладной среде, выполняемой в ВМ (ошибки программирования);
- внешние прерывания. ОС виртуальной машины поддерживает свою службу времени и в свою очередь может предоставлять пользователям ОС виртуальные кванты, которые потом отражаются квантами реального ЦП, когда ВМ получит его ресурсы;
- прерывания по выполнению системных функций ОС ВМ. При предоставлении кванта ВМ работа ВМ на реальном ЦП начинается с адреса, указанного в виртуальном текущем PSW. Виртуальное текущее PSW хранится в Vmblock ВМ. Когда ВМ теряет управление по какой-либо причине, адрес последней выполняемой команды ВМ заносится в поле текущего PSW Vmblock. Функционирование модулей CP не квантируется, т.е. управляющая программа не по квантам работает. CP работает в режиме ядра, ВМ в режиме пользовательский процесс или задача.
Управление памятью.
Задачи по управлению памятью следующие:
- управление реальной памятью;
- управление виртуальной памятью CP;
- управление виртуальной памятью ВМ;
- управление страничным обменом.
Управление реальной памятью.
Вся реальная память описывается таблицей CORTable. Для каждой рамки реальной ОП строится 16-ти битный элемент описания. Все рамки делятся на типы:
- распределенные рамки (принадлежат активным ВМ, принадлежат CP);
- зафиксированные рамки (т.е. в ней находится страница активной ВМ);
- зарезервированные рамки (она планируется для страничного обмена ВМ);
- разделяемые рамки (совместно используемые несколькими ВМ).
В описателе зарезервированных рамок есть ссылка на Vmblock виртуальной машины.
Рамки, доступные для распределения. Каждая рамка, описываемая в CORTable, может находится в одном из трех состояний:
- доступная для распределения (свободная) (свободные рамки реальной ОП или принадлежащие неактивным ВМ, описываются также в списке FreeList, а принадлежащие неактивным ВМ FlashList)
Когда ВМ вновь становится активной, возникает ситуация, когда возможно отсутствие нужной ее виртуальной страницы в реальной ОП. CP пытается восстановить страницу и если она вдруг находится в реальной ОП и не вытеснена, то данная страница используется. Если изменена, то выполняется страничный обмен.
- недоступная для распределения -- рамки, по какой-либо причине(например, из-за сбоя) не могут быть выделены во время вычислительного процесса.
Выполнение запроса на размещение страницы в реальной ОП.
Когда ВМ предоставляется квант времени, CP пытается поместить рамку виртуальной ОП в реальную ОП. После того, как виртуальной странице выделена рамка и управление передано коду, он начинает выполняться. После каждой команды, находящейся в виртуальной ОП или до каждой команды выполняется команда ассемблера LRA(load real adres), которая представляет собой однократное выполнение механизма преобразования адресов для одного виртуального адреса. По результатам LRA вырабатывается признак -- признак результата.
1) Признак результата равен 0 -- страница уже находится в реальной ОП, реальный адрес страницы возвращается в регистре 1. Возврат в программу, выдавшую запрос.
2) Признак результата равен 1 -- недоступность сегмента
а) в данном сегменте РОП нет ни одной страницы для данной ВМ, то есть, таблица страниц для данного сегмента не сформирована -- строится таблица страниц и сегмент объявляется доступным
б)к сегменту не было обращения для распределения его для ВМ. Сегмент делается доступным.
3) Признак результата равен 2 -- недоступные страницы в сегменте.
а) страница является распределенной для другой ВМ, либо разделяется с другой ВМ
б) страница находится в режиме ввода в real frame. Если frame находится в списке free list, осуществляется распределение данной рамки за данной ВМ и происходит загрузка в эту рамку реальной ОП страницы виртуальной ОП ВМ. Если frame находится во flush list, то есть принадлежит какой-то ВМ, котрую CP вывел из списка активных ВМ, то, если страница изменялась, она выводится во внешнюю память, а на ее место загружается требуемая виртуальная страница.
