
- •1. Задачи и функции операционной системы компьютера. Классификация ос. Основные современные ос.
- •2, 4. Архитектура современных ос. Структура ос unix.
- •3. Архитектура современных ос. Структура ос Windows nt.
- •4. Архитектура современных ос. Системы с монолитным (макро-) ядром и с микроядром.
- •5. Архитектура современных ос. Ос с множественными интерфейсами прикладных программ на примере ос Windows nt.
- •6. Процессы и потоки в ос. Понятие процесса. Атрибуты процесса. Создание нового процесса в различных ос.
- •7, 6. Процессы и потоки в ос. Понятие процесса. Жизненный цикл процесса. Различные состояния процесса.
- •8. Процессы и потоки в ос. Понятие нити (thread). Основные отличия нити от процесса.
- •9, 11, 12. Процессы и потоки в ос. Необходимость синхронизации при работе с общими ресурсами. Способы синхронизации.
- •10. Механизмы синхронизации. Понятие семафора (semaphore) и основные операции с ним. Двоичный семафор.
- •11. Механизмы синхронизации. Понятие мьютекса (mutex) и основные операции с ним. Пример использования мьютекса для синхронизации нитей.
- •12. Механизмы синхронизации. Сравнение мьютекса и двоичного семафора.
- •13. Управление оперативной памятью. Способы защиты оперативной памяти процесса от случайного или злонамеренного вторжения из другого процесса. Сегментная организация памяти. Виртуальная память.
- •14, 13, 15. Управление оперативной памятью. Понятие виртуальной памяти. Поддержка вп со стороны процессора (на примере процессора Intel x86). Перевод виртуального адреса в адрес реальной памяти.
- •15. Управление оперативной памятью в современных ос. Виртуальная память процесса и ее отображение в реальную оперативную память компьютера. Файл подкачки.
- •16. Цели и задачи файловой системы ос. Многоуровневая организация файловой системы. Логическая и физическая фс.
- •17. Управление виртуальной памятью в современных ос. Алгоритмы подкачки и вытеснения.
- •18. Логическая файловая система ос Windows nt.
- •19. Логическая файловая система ос unix.
- •20. Физическая организация файловой системы. Файловая система fat.
- •21. Физическая организация файловой системы. Файловая система System V (s5fs).
- •22. Физическая организация файловой системы. Файловая система ntfs.
- •23. Управление вводом/выводом. Понятие аппаратного прерывания и его обработка.
- •24. Управление вводом/выводом. Синхронный и асинхронный ввод/вывод.
- •25. Управление безопасностью. Пользователь, его атрибуты и права доступа.
- •26. Управление безопасностью. Задача администрирования вычислительной системы и компьютерной сети.
- •27. Управление доступом к файлам в ос unix.
- •28. Управление доступом к файлам в ос Windows nt. Списки прав доступа.
- •29. Язык программирования Java. Виртуальная машина Java. Технология Java.
- •30. Платформа .Net. Основные идеи и положения. Языки программирования .Net.
- •31. Функциональные компоненты ос. Управление файлами
- •32. Функциональные компоненты ос. Управление процессами.
- •33. Функциональные компоненты ос. Безопасность и защита данныx.
- •34. Функциональные компоненты ос. Пользовательский интерфейс.
- •35. Функциональные компоненты ос. Управление оперативной памятью.
- •36. Компьютерные сети. Сетевые ос и их задачи.
- •37. Компьютерные сети. Протоколы tcp/ip. Интернет.
- •38. Переносимость программного обеспечения. Стандарты операционных систем.
- •1. Стандарт cp/m
- •2. Операционные системы типа dos
- •3. Стандарт msx
- •4. Операционные системы, основанные на графическом интерфейсе
- •6. Операционные системы семейства unix
13. Управление оперативной памятью. Способы защиты оперативной памяти процесса от случайного или злонамеренного вторжения из другого процесса. Сегментная организация памяти. Виртуальная память.
Существует 2 основных подхода к обеспечению защиты оперативной памяти процесса от несанкционированного доступа со стороны других процессов. Первый подход заключается в том, что при каждом обращении процессора к оперативной памяти осуществляется проверка корректности доступа. Альтернативный подход заключается в выделении каждому процессу индивидуального адресного пространства, аппаратно изолированного.
2 основных вида организации виртуальной памяти — сегментная и страничная организация.
При сегментной организации виртуальная память, используемая программой, разбивается на части (сегменты). Разбиение выполняется либо программистом (язык ассемблера), либо компилятором. Размеры сегментов — не больше максимального размера, используемого в данной архитектуре. Разбиение обычно производится на логически осмысленные части (сегмент данных, сегмент кода, сегмент стека).
Т. о., при сегментной организации у программы нет единого линейного адресного пространства. Виртуальный адрес состоит из двух частей: селектора сегмента и смещения от начала сегмента. Селектор сегмента — индекс в таблице сегментов процесса. Такая таблица содержит для каждого сегмента его размер, режим доступа (только чтение или возможна запись), флаг присутствия сегмента в памяти. Если сегмент находится в памяти, то в таблице хранится его базовый адрес (адрес физической памяти, соответствующий началу сегмента). Отсутствие сегмента означает, что его данные временно вытеснены на диск и хранятся в файле подкачки (swap file).
При обращении к виртуальному адресу «железом» выполняется преобразование пары «сегмент, смещение» в физический адрес: базовый адрес из таблицы + смещение из виртуального адреса. По физическому адресу происходит обращение к памяти.
Виртуальная память — технология, разработанная с целью увеличения общего объема памяти, организации и защиты множества адресных пространств памяти, автоматизации перемещения машинного кода и данных между основной памятью компьютера и вторичным хранилищем. [+ вопрос № 14.]
14, 13, 15. Управление оперативной памятью. Понятие виртуальной памяти. Поддержка вп со стороны процессора (на примере процессора Intel x86). Перевод виртуального адреса в адрес реальной памяти.
Виртуальная память — технология, разработанная с целью увеличения общего объема памяти, организации и защиты множества адресных пространств памяти, автоматизации перемещения машинного кода и данных между основной памятью компьютера и вторичным хранилищем.
Эта технология имеет аппаратную поддержку на всех современных процессорах.
В случае расположения данных на внешних ЗУ память мб представлена спец. разделом на ЖД (partition) или отдельным файлом на обычном разделе диска (файл подкачки).
Также существует термин swap, означающий способ представления виртуальной памяти, или же подкачку данных с диска.
Применение механизма виртуальной памяти позволяет:
Упростить адресацию памяти клиентским ПО.
Рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти).
Изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью).
В случае расположения данных виртуальной памяти на внешних запоминающих устройствах — доступ к памяти замедляется (по сравнению с ОЗУ).
Процессор Intel x86 (Intel Architecture, IA, IA-32).
32-битный
адрес разделен на участки:
.
— номер виртуальной страницы. 12 —
смещение внутри страницы (offset).
При использовании линейной адресации (доступна только в защищенном режиме) 32-битный адрес делится на 3 части:
Номер записи в каталоге страниц (номер таблицы страниц, page directory) — биты 31-22 (10). Одна запись из каталога страниц определяет 4 МБ адресного пространства.
Номер записи в таблице страниц (номер страницы в таблице страниц, page table) — биты 21-12 (10). Одна запись из таблицы страниц определяет 4 КБ адресного пространства.
Смещение в странице — биты 11-0 (12).
Обе эти структуры представляют собой таблицы элементов каталога и таблицы страниц (Page Directory Entry, PDE и Page Table Entry, PTE), страницы памяти по 4 КБ.
Структура PTE (элемента таблицы страниц):
Номер реальной страницы.
Бит доступности.
Бит изменений (данные об изменении страницы).
Права пользователя (ReadOnly, ReadWrite).
Файловый дескриптор (маленькое целое число — если страница не в памяти, то где ее искать).
Физические адреса соответствуют номерам ячеек оперативной памяти, где в действительности расположены или будут расположены переменные и команды. Переход от виртуальных адресов к физическим может осуществляться 2 способами. В первом случае замену выполняет специальная системная программа — перемещающий загрузчик. Исходные данные: начальный адрес физической памяти, в которую предстоит загружать программу; информация, предоставленная транслятором, об адресно-зависимых константах программы. На основании исходных данных загрузчик выполняет загрузку программы, совмещая ее с заменой виртуальных адресов физическими.
Второй способ заключается в том, что программа загружается в память в неизмененном виде в виртуальных адресах, при этом ОС фиксирует смещение действительного расположения программного кода относительно виртуального адресного пространства. Во время выполнения программы при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический. Второй способ является более гибким, он допускает перемещение программы во время ее выполнения, в то время как перемещающий загрузчик жестко привязывает программу к первоначально выделенному ей участку памяти. Однако загрузчик выполняет преобразование каждого виртуального адреса один раз во время загрузки, а во втором случае — преобразование происходит каждый раз при обращении по данному адресу.