- •1. Определение ос. Требования, предъявляемые к ос. Классификация ос.
- •2. Основные принципы построения ос.
- •3. Понятие процесса и ресурса. Классификация процессов
- •4. Диаграмма состояния процесса.
- •5. Контекст и дескриптор процесса.
- •6. Классификация процессов.
- •7. Понятие потока. Способы реализация потоков. Планирование потоков.
- •1)Потоки на уровни пользователя
- •2)Потоки на уровни ядра
- •3)Смешанная реализация
- •8. Планирование и диспетчеризация процессов. Стратегии планирования.
- •9. Планирование в системах пакетной обработки данных. Дисциплины fcfs, sjn, srn.
- •10. Планирование в интерактивных системах. Дисциплина rr (круговое планирование), дисциплины приоритетного планирования.
- •16. Понятие взаимного исключения. Критический участок.
- •17. Семафорные примитивы Дейкстры. Решение задачи производителя и потребителя с помощью семафоров.
- •18. Монитор Хоара как примитив синхронизации высокого уровня.
- •19. Понятие физического и виртуального адреса.
- •20. Назначение и функции подсистемы управления памятью.
- •21.Статическое распределение памяти.
- •22.Динамическое распределение памяти.
- •23.Сегментная организация памяти. Трансляция адресов, основанная на сегментации.
- •24.Сегментно–страничная организация памяти. Преимущества и недостатки данного способа.
- •25.Страничная организация памяти. Дескриптор страниц.
- •26. Виртуальная память. Архитектуры.
- •27. Физические принципы организации ввода/вывода в ос.
- •28. Структура системы ввода-вывода. Классификация устройств.
- •29.Сетевые операционные системы
- •30. Операционные системы суперкомпьютеров.
19. Понятие физического и виртуального адреса.
Понятие «адрес памяти» может рассматриваться с двух точек зрения. С одной стороны, при написании любой программы ее автор либо явно указывает, по каким адресам должны размещаться переменные и команды (так бывает при программировании на языке ассемблера), либо присвоение конкретных адресов доверяется системе программирования. Те адреса памяти, которые записаны в программе, принято называть виртуальными адресами.
С другой стороны, каждой ячейке памяти компьютера соответствует ее адрес, который должен помещаться на шину адреса при каждом обращении к ячейке. Эти адреса называются физическими.
Для идентификации переменных и команд на разных этапах жизненного цикла программы используются символьные имена (метки), виртуальные адреса и физические адреса (рис. 5.1).
Символьные имена присваивает пользователь при написании программы на алгоритмическом языке или ассемблере.
Виртуальные адреса, называемые иногда математическими, или логическими адресами, вырабатывает транслятор, переводящий программу на машинный язык. Поскольку во время трансляции в общем случае не известно, в какое место оперативной памяти будет загружена программа, то транслятор присваивает переменным и командам виртуальные (условные) адреса, обычно считая по умолчанию, что начальным адресом программы будет нулевой адрес.
Физические адреса соответствуют номерам ячеек оперативной памяти, где в действительности расположены' или будут расположены переменные и команды.
Физическое адресное пространство представляет собой последовательность ячеек памяти на физической плате, каждая из которых идентифицируется своим номером (это есть физический адрес).
Логическое адресное пространство процесса – виртуальное пространство, принадлежащее только данному процессу со своим набором адресов (адресацией).
Связывание или трансляция адреса – преобразование логического или виртуального адреса процесса в адрес физической ячейки.
Связывание может производится:
1) на этапе компиляции: при этом способе связывания в двоичном коде жестко указаны физические адреса, поэтому программа может загружаться только в конкретное место памяти. Недостаток: несколько программ могут затребовать загрузку в одно и то же место, а значит работать не будут.
2) на этапе загрузки: компилятор оставляет относительные ссылки, которые при загрузке программы в память преобразовываются в абсолютные физические. Достоинства: программа может быть загружена в любое место. Недостатки: впоследствии она не может быть перемещена, при свопинге(свопинг – выгрузка целиком из памяти и последующая загрузка обратно целиком) программа может быть возвращена только в тоже самое место.
3) на этапе выполнения: при каждом обращении к памяти относительные ссылки преобразовываются в абсолютные программно-аппаратным способом с использованием MMU (устройство управления памятью). Достоинства: перемещаемый код.
20. Назначение и функции подсистемы управления памятью.
Подсистема управления памятью производит распределение физической памяти между всеми существующими в системе процессами, загрузку и удаление программных кодов и данных процессов в отведенные им области памяти, настройку адресно-зависимых частей кодов процесса на физические адреса выделенной области, а также защиту областей памяти каждого процесса. Стратегия управления памятью складывается из стратегий выборки, размещения и замещения блока программы или данных в основной памяти. Соответственно используются различные алгоритмы, определяющие, когда загрузить очередной блок в память (по запросу или с упреждением), в какое место памяти его поместить и какой блок программы или данных удалить из основной памяти, чтобы освободить место для размещения новых блоков.
Одним из наиболее популярных способов управления памятью в современных ОС является виртуальная память. Реализация механизма виртуальной памяти позволяет программисту считать, что в его распоряжении имеется однородная оперативная память, объем которой ограничивается только возможностями адресации, предоставляемыми системой программирования.
Важная функция управления памятью – защита памяти. Нарушения защиты памяти связаны с обращениями процессов к участкам памяти, выделенной другим процессам прикладных программ или программ самой ОС. Средства защиты памяти должны пресекать такие попытки доступа путем аварийного завершения программы-нарушителя.
Функции подсистемы управления памятью:
1) учет свободной и занятой памяти;
2) принятие решения о распределении памяти;
3) выделение памяти процессу и учет информации о ее использовании;
4) освобождение памяти и корректировка ее состояния.
При распределении ОЗУ возможны 2 метода 1) статистический (память назначается до выполнения программы) 2)динамический (во время выполнения программы)
Классификация методов организации памяти: