
- •Вопросы по курсу «Операционные системы» весеннего семестра 2010-2011 учебного года
- •1. Общие сведения об операционных системах, цели применения ос, структура ос.
- •2. Модель взаимодействия компонентов операционной системы.
- •3. Классификация ос.
- •4.5. Теоретические основы параллельного программирования, понятия: процесс, задача, мультизадачный режим работы ос, нить, контекст нити.
- •6. Теоретические основы параллельного программирования: классификация программных модулей; понятия реентерабельности и повторной входимости программных модулей.
- •7. Прерывания и механизмы обработки прерываний операционной системой.
- •8.9.Диспетчер задач: дисциплины диспетчеризации, критерии оценки дисциплин диспетчеризации задач.
- •10. Теоретические основы параллельного программирования: независимые и взаимодействующие процессы, понятия ресурса и критического ресурса.
- •11. Теоретические основы параллельного программирования: список условий функционирования взаимодействующих процессов, понятие тупика.
- •12. Теоретические основы параллельного программирования: принцип организации критических секций.
- •13. Теоретическая классификация видов взаимодействия процессов: сигналы, семафоры, мьютексы.
- •15. Теоретическая классификация видов взаимодействия процессов: очереди сообщений, файлы, разделяемая память, объект «ресурс».
- •16. Теоретическая классификация видов взаимодействия процессов: почтовые ящики, конвейеры.
- •17 Организация подсистемы безопасности в ос Windows: создание и открытие объектов, понятие описателя, атрибуты безопасности, права доступа, структура описателя безопасности.
- •18.Организация подсистемы безопасности в ос Windows: маркеры, привилегии пользователей, олицетворение.
- •19. Организация подсистемы безопасности в ос Windows: получение доступа к объекту.
- •20. Процессы в ос Windows: понятие Win32 api; main() и WinMain(), создание и завершение процессов и нитей, основные функции работы с процессами и нитями.
- •21. Работа с файлами в ос Windows: синхронная и асинхронная.
- •24. Таймеры ожидания в ос Windows и понятие apc
- •25. Структурная обработка исключений.
- •26. Способы управления памятью: простое непрерывное распределение, оверлейное распределение.
- •1. Простое непрерывное распределение
- •2. Оверлейное распределение (OverLay)
- •27. Способы управления памятью: распределение статическими и динамическими разделами.
- •28. Способы управления памятью: сегментная организация памяти.
- •29. Страничная организация памяти
- •30. Сегментно-страничный способ организации памяти
- •31. Таблицы физических страниц памяти в современных ос. Понятие pfn, понятие mdl.
- •32. Распределение оперативной памяти в современных компьютерах. Спецификация acpi
- •33. Распределение первого мегабайта оперативной памяти в персональных компьютерах.
- •35. Резервирование памяти с помощью функции VirtualAlloc
- •36. Работа с кучами процессов
- •37 . Динамически загружаемые библиотеки (dll). Связывание во время загрузки библиотеки.
- •38. Системные перехватчики (hook
- •40. Службы
26. Способы управления памятью: простое непрерывное распределение, оверлейное распределение.
Когда мы говорим об оперативной памяти в компе, то подразумеваем 3 уровня представления памяти:
в виде символьных переменных в программе,
в виде адресов виртуальной памяти, которые получаются после компиляции программы,
в виде физических ячеек памяти, которые собственно и содержат данные.
Задача системного программного обеспечения – связать каждое символьное имя с физической ячейкой памяти. Если символьная переменная образует пространство имен, то виртуальная и физическая память адресуются номерами ячеек памяти.
Обозначим Vv – виртуальная память, Vp – физическая память
Vv < Vp - реальный режим работы микропроцессора 8086 и ОС MS-DOS.
Vv = Vp – часто встречается в миниЭВМ.
Vv > Vp – это современная ОС.
Способы распределения памяти:
1. Простое непрерывное распределение
Вся память делится на 3 части:
Область ОС
Область программы
Свободная область памяти
В этом случае ОС не поддерживает мультизадачность => нет проблем с распределением памяти. Область памяти непрерывная, что упрощает работу компилятора. Привязка виртуальных адресов к физическим осуществляется на этапе загрузки программы.
Одна часть ОС всегда находится в памяти и называется резидентным ядром. А вторая часть может загружаться и выгружаться и называется транзитной.
Достоинство:
Недорогая и легко программируемая реализация
Недостатки:
Однозадачный режим работы.
Неэффективное использование памяти.
2. Оверлейное распределение (OverLay)
Если адресное пространство программы больше, чем размер оперативной памяти, то используется распределение с перекрытием. Каждая программа имеет одну главную часть и несколько оверлейв – сегментов, которые могут перекрываться по адресному пространству. В памяти всегда находится главная часть и один или несколько оверлейев, которые не перекрываются между собой. Остальные оверлеи находятся на диске.
Когда необходимо выполнить сегмент, находящийся на диске, он загружается в ОЗУ с возможным перекрытием других сегментов. Такая реализация может быть выполнена либо с помощью компилятора (Borland C++3.1), либо с помощью ОС.
Достоинство:
увеличение полезного размера программы
Недостаток:
н
акладные
расходы на загрузку и выгрузку оверлеев.
27. Способы управления памятью: распределение статическими и динамическими разделами.
Необходимо обеспечить одновременное расположение в ОЗУ нескольких программ. Самая простая схема распределения заключается в следующем: память, не занятая ядром, может быть разбита на несколько непрерывных частей. Указывается имя раздела, тип, начало и длина раздела.
Возможны 2 варианта:
разделы с фиксированными границами;
разделы с подвижными границами.
Разделы с фиксированными границами
В каждом разделе в 1 момент времени располагается 1 прога, следовательно, для каждого раздела используются те же методы работы с памятью, что и для однопрограммных систем. Причем эта схема допускает возможность мультипрограммного режима работы ОС. Первые мультипрограммные системы строились именно таким образом.
При небольшом объеме памяти увеличить количество одновременно исполняемых программ можно за счет выгрузки на диск разделов целиком и загрузки при необходимости обратно. Этот процесс называется свопингом.
Примеры: с натяжкой поздние версии MS DOS, первые ОС для "наладонников" Palm OS<3.0.
Достоинства:
возможность мультипрограммного режима работы.
Недостатки (очень большие):
отсутствие защиты одной программы от другой и защиты самой ОС от программы;
наличие большого объема неиспользуемой памяти, т.к. она есть в каждом разделе. Такие потери памяти называются фрагментацией памяти.
Возможны 2 способа решения этих недостатков:
выделять раздел ровно такого объема, какой необходим для задачи (разделы с подвижными границами);
размещать задачи не в 1 непрерывной области, а в нескольких областях памяти (сегментная организация).
Разделы с подвижными границами
Память выделяется либо побайтно, либо некоторыми дискретными единицами (напр. по 4 Кб). При выделении ищется такая область свободного адресного пространства, к-рая бы наиболее подходила под запрос к памяти.
Возможны 3 способа поиска:
Первый подходящий участок, самый подходящий участок, самый неподходящий участок. Поиск идет быстро, но фрагментация остается
Он дольше, но и при его использовании фрагментация остается, причем размер оставшихся кусочков настолько мал, что туда уже ничего нельзя поместить.
Самый эффективный способ. Если у самого большого участка выделить память, то существует большая вероятность, что из него м.б. выделена память еще раз. Однако фрагментация в любом случае накапливается, и в некоторых ОС используется процесс уплотнения памяти. При этом все проги останавливаются, и ОС начинает сдвигать временные разделы памяти.
Достоинства: меньшая фрагментация по сравнению с разделами с фикс. границами. Недостатки: фрагментация остается.
Пример: ОС MVT для IBM 360.
Несмотря на недостатки метод с подвижными границами используется и по сей день в современных ОС для организации "кучи" процессов.