- •Определение операционной системы, назначение и основные функции ос.
- •3 Классификация ос.
- •4. Эволюция операционных систем.
- •5 Понятие ос реального времени.
- •6 Структура ос
- •8) Создание процесса. Завершение процесса. Иерархия процессов. Состояние процессов
- •9 ) Потоки (нити, облегченный процесс)
- •10) Модель потока
- •12) Реализация потоков в пространстве пользователя, ядра и смешанное
- •13) Взаимодействие между процессами
- •14)Передача информации от одного процесса другому. Состояние состязания. Критические области
- •15) Взаимное исключение с активным ожиданием
- •16) Примитивы взаимодействия процессов
- •17) Проблема переполненного буфера (проблема производителя и потребителя)
- •18) Семафоры
- •19) Решение проблемы переполненного буфера с помощью семафора
- •21) Основные понятия планирования процессов. Задачи алгоритмов планирования
- •22) Планирование в системах пакетной обработки
- •Наименьшее оставшееся время выполнения
- •Трехуровневое планирование
- •24) Планирование в интерактивных системах
- •24) Планирование в системах реального времени
- •Выполнение задачи
- •29) Взаимоблокировка процессов
- •30) Моделирование взаимоблокировок
- •31) Методы борьбы с взаимоблокировками
- •32) Пренебрежением проблемой в целом (страусовый алгоритм)
- •33) Обнаружение и устранение взаимоблокировок
- •34) Динамическое избежание взаимоблокировок. Предотвращение четырех условий, необходимых для взаимоблокировок
- •11.3 Динамическое избежание взаимоблокировок
- •11.4 Предотвращение четырех условий, необходимых для взаимоблокировок
- •38) Своппинг
- •39) Виртуальная память
- •40) Страничная организация памяти
- •41) Алгоритмы замещения страниц
- •42) Алгоритм часы
- •43) Понятие «рабочий набор»
- •45) Политика распределения памяти
- •46) Совместно используемые страницы
- •48) Сборка мусора
- •49) Алгоритмы освобождения памяти
- •50) Сегментная организация памяти
- •51) Блочные устройства
- •52) Символьные устройства
- •53) Что такое контроллер прерываний
- •54) Зачем нужен контроллер прерываний
- •54) Механизм обработки прерываний
38) Своппинг
(от англ. слова swapping - подкачка, обмен) механизм выгрузки для высвобождения места из оперативной памяти в виртуальную память временно не используемых данных, и подкачки в оперативную память недостающей страницы виртуальной памяти, затребованной программой.
39) Виртуальная память
Сочетание памяти ОЗУ и временного хранилища на жестком диске. Когда памяти ОЗУ недостаточно, данные из оперативной памяти помещаются в хранилище под названием файл подкачки. Перемещение данных в файл подкачки и из него освобождает достаточно оперативной памяти для выполнения операции.
Как правило, чем больше объем установленного в компьютере ОЗУ, тем быстрее работают программы. Если нехватка оперативной памяти замедляет работу компьютера, то для ее восполнения можно увеличить размер виртуальной памяти. При этом необходимо учитывать, что чтение данных из ОЗУ выполняется значительно быстрее, чем с жесткого диска, поэтому в качестве решения больше подойдет добавление ОЗУ.
40) Страничная организация памяти
Страницы - это части, на которые разбивается пространство виртуальных адресов.
Страничные блоки - единицы физической памяти.
Страницы всегда имеют фиксированный размер. Передача данных между ОЗУ и диском всегда происходит в страницах.
Х - обозначает не отображаемую страницу в физической памяти.
Страничное прерывание - происходит, если процесс обратился к странице, которая не загружена в ОЗУ (т.е. Х). Процессор передается другому процессу, и параллельно страница загружается в память.
Таблица страниц - используется для хранения соответствия адресов виртуальной страницы и страничного блока.
Таблица может быть размещена:
в аппаратных регистрах (преимущество: более высокое быстродействие, недостаток - стоимость)
в ОЗУ
Типичная запись в таблице страниц
Присутствие/отсутствие - загружена или незагружена в память
Защита - виды доступа, например, чтение/запись.
Изменение - изменилась ли страница, если да то при выгрузке записывается на диск, если нет, просто уничтожается.
Обращение - было ли обращение к странице, если нет, то это лучший кандидат на освобождение памяти.
Информация о адресе страницы когда она хранится на диске, в таблице не размещается.
Для ускорения доступа к страницам в диспетчере памяти создают буфер быстрого преобразования адреса, в котором хранится информация о наиболее часто используемых страниц.
Страничная организация памяти используется, и в UNIX, и в Windows.
41) Алгоритмы замещения страниц
Для каждой страницы поддерживаются 2 статусных бита. Бит R (Referenced) – бит обращения. Бит устанавливается всякий раз, когда происходит обращение к странице (чтение или запись). Бит M (Modified) – бит изменения. Этот бит устанавливается, когда страница записывается, т.е. изменяется. Когда процесс запускается, дескрипторы соответствующих страниц содержат запись о том, что страница отсутствует в памяти (бит присутствия 0). При обращении к странице устанавливается бит R. Далее периодически (например, при каждом прерывании по таймеру) бит R очищается для того, чтобы отличить страницы, к которым давно не происходило обращение. Бит M при этом не очищается, т.к. необходимо знать, перезаписывать страницу на диске или нет. При возникновении страничного прерывания ОС (обработчик страничного прерывания) проверяет все страницы и для удаления выбирает с помощью случайного поиска (обычно выбирается страница с наименьшим номером) такую, к которой, во-первых, не было обращения, по крайней мере, в течение одного тика системных часов, и, во-вторых, которая была изменена. R=0 M=0 R=0 M=1 R=1 M=0 R=1 M=1
Алгоритм «FIFO – первый пришел, первый вышел»
Сравнение с магазином: для размещения на полной витрине нового товара необходимо избавиться от старого. ОС поддерживает список всех страниц, находящихся в данный момент в ОП. ЗАМЕЧАНИЕ. Независимо от таблицы дескрипторов страниц поддерживается дополнительная таблица (в виде списка), в которой хранится информация о страницах. В этом списке первая страница является старейшей. При страничном прерывании из памяти выгружается страница, которая находится в начале списка. Новая страница, соответственно, добавляется в конец списка. Данный алгоритм очень редко используется, так как не является эффективным (старый не означает ненужный, следовательно, могут быть выгружены «полезные» страницы).
Алгоритм (вторая попытка)
Является по сути усовершенствованием предыдущего. ОС поддерживает все тот же список страниц, и первой в списке является наистарейшая страница. Согласно алгоритму для выгрузки из ОП ищется в списке самая старая страница. Но в отличие от предыдущего алгоритма, выбирается та страница, к которой не было обращений в предыдущем временном интервале. Алгоритм работает следующим образом. У первой страницы проверяется бит R. Если R=0, тогда страница немедленно заменяется новой (самая старая, да еще и не было обращений). Если R=1, то R:= 0, а страница переносится в конец списка (если хранится время обращения, то время обновляется). Так проверяются все страницы списка. Если окажется, что у всех страниц первоначально R=1, то из памяти выгрузится самая первая страница, т.к. ее бит R теперь будет равен 0. Алгоритм также не является эффективным, так как страницы перемещаются по списку (время, память).
Алгоритм «Час»
Страницы хранятся в виде кольцевого списка. Указатель (сравнение: стрелка часов) в списке указывает на старейшую страницу. При страничном прерывании проверяется страница, на которую указывает указатель, если бит R=0, то страница выгружается, а на ее место записывается новая. Указатель при этом перемещается к следующей странице. Если R=1, то R:=0, и указатель перемещается к следующей странице. Алгоритм используется на практике.
Алгоритм “WS Clock”
В исходном положении кольцевой список пуст По мере загрузки страниц в память формируется кольцевой список. Каждая запись в этом списке (дескриптор страницы) содержит бит R, бит M и поле, которое называется «время последнего использования». Указатель указывает на самую старую страницу. Кроме того, задается время (тау). Далее, аналогично алгоритму «Часы», при каждом страничном прерывании проверяется страница, на которую указывает указатель: если R=1 (страница используется), R обнуляется, указатель перемещается на следующую страницу; если R=0, вычисляется «возраст страницы» «возраст страницы» = «текущее время» минус «время последнего использования»). Далее «возраст страницы» сравнивается со временем . Если возраст больше , то данная страница замещается. Кроме того, конечно же, осуществляется проверка бита М: если бит М установлен в выбранной странице (т.е. ее надо перезаписывать, а это длинная операция), то осуществляется переход на следующую страницу. Если нет ни одной страницы, у которой бит М=0, то осуществляется операция перезаписи. Данный алгоритм широко используется на практике (прост в реализации, хорошая производительность).
