Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_na_gosy.doc
Скачиваний:
24
Добавлен:
01.05.2025
Размер:
4 Мб
Скачать
☆

11.Способы обеспечения монопольного доступа к разделяемым ресурсам. Алгоритмы распределения памяти. Способы защиты памяти.

Алгоритмы распределения памяти без использования внешней памяти. Распределение памяти фиксированными разделами. При использовании данного метода память в начальный момент времени считается свободной (за исключением памяти отведенной под ОС). Каждому процессу отводится вся необходимая память. Если ее не хватает, то процесс не создается. В произвольный момент времени память представляет собой случайную последовательность занятых и свободных участков.

Распределение памяти перемещаемыми разделами. В этом методе разработчики попытались учесть достоинства и недостатки предыдущего. Один из способов борьбы с фрагментацией – сжатие, таким образом, чтобы вся свободная память образовала непрерывную область – дефрагментация.

Алгоритмы распределения памяти с использованием внешней памяти. Для полной загрузки процессора могут понадобиться иногда сотни интерактивных задач. Все они должны быть размещены в памяти, большая часть которых находится в состоянии ожидания. Логично было бы на время ожидания, в случае нехватки физической памяти, вытеснять их на диск, а когда необходимо, возвращать в память. Такая подмена (виртуализация) оперативной памяти дисковой памятью существенно повышает уровень мультипрограммирования. Важно, что все действия по перемещению происходят автоматически, без участия программиста.

Для виртуализации применяются два основных подхода:

  • Свопинг – образ процесса выгружается на диск и возвращается в память целиком. Часто называется подкачкой.

  • Виртуальная память – образ процесса выгружается на диск и возвращается в память частями (сегментами, страницами...).

Реализация виртуальной памяти, представлена тремя классами: страничное распределение, сегментное, сегментно-страничное распределение.

Страничное распределение. При страничном распределении виртуальная память делится на части одинакового и фиксированного для данной системы размера, называемыми виртуальными страницами. Вся оперативная память также делится на части такого же размера, называемые физическими страницами. Размер страницы выбирается равным степени двойки: 512, 1024, 4096 и т.д.

Сегментное распределение. При страничном распределении виртуальное адресное пространство делится на равные части механически, без учета смыслового значения данных. В одной странице могут одновременно оказаться код программы и исходные данные. Такой подход не позволяет обеспечить раздельную обработку, например защиту, совместный доступ и т.д.

Сегментное - страничное распределение. Данный метод представляет собой комбинацию страничного и сегментного механизмов управления памятью и направлен на реализацию достоинств обоих подходов. Виртуальная память делится на сегменты, а каждый сегмент - на страницы. Все современные ОС используют именно такой способ организации.

12.Логическая и физическая организация файла. Операции над файлами.

Логическая организация файла.

Программист имеет дело с логической организацией файла, представляя файл в виде определенным образом организованных логических записей. Логическая запись - это наименьший элемент данных, которым может оперировать программист при обмене с внешним устройством. Записи могут быть фиксированной длины или переменной длины. Для идентификации записи может быть использовано специальное поле записи, называемое ключом.

Физическая организация и адрес файла.

Физическая организация файла описывает правила расположения файла на устройстве внешней памяти, в частности на диске. Файл состоит из физических записей - блоков. Блок - наименьшая единица данных, которой внешнее устройство обменивается с оперативной памятью.

Непрерывное размещение - простейший вариант физической организации, при котором файлу предоставляется последовательность блоков диска, образующих единый сплошной участок дисковой памяти. Для задания адреса файла в этом случае достаточно указать только номер начального блока. Другое достоинство этого метода - простота. Но имеются и два существенных недостатка. Во-первых, во время создания файла заранее не известна его длина, а значит не известно, сколько памяти надо зарезервировать для этого файла, во-вторых, при таком порядке размещения неизбежно возникает фрагментация, и пространство на диске используется не эффективно, так как отдельные участки маленького размера (минимально 1 блок) могут остаться не используемыми.

Следующий способ физической организации - размещение в виде связанного списка блоков дисковой памяти. При таком способе в начале каждого блока содержится указатель на следующий блок. В этом случае адрес файла также может быть задан одним числом - номером первого блока. В отличие от предыдущего способа, каждый блок может быть присоединен в цепочку какого-либо файла, следовательно фрагментация отсутствует. Файл может изменяться во время своего существования, наращивая число блоков. Недостатком является сложность реализации доступа к произвольно заданному месту файла: для того, чтобы прочитать пятый по порядку блок файла, необходимо последовательно прочитать четыре первых блока, прослеживая цепочку номеров блоков. Кроме того, при этом способе количество данных файла, содержащихся в одном блоке, не равно степени двойки (одно слово израсходовано на номер следующего блока), а многие программы читают данные блоками, размер которых равен степени двойки.

Неполный набор операций над файлами, связанный с их логическим объединением в структуру директорий, будет выглядеть следующим образом:

  • Операции для работы с атрибутами файлов;

  • Операции для работы с содержимым файлов;

  • Операция создания регулярного файла в некоторой директории (создание нового узла графа и добавление в граф нового именованного ребра, ведущего в этот узел из некоторого узла, соответствующего директории);

  • Операция создания файла типа «связь»;

  • Операция создания файла типа «FIFO»;

  • Операция удаления файла, не являющегося директорией или «связью»;

  • Операция переименования файла;

  • Операция перемещения файла из одной директории в другую;

Защита памяти - способ управления правами доступа к отдельным регионам памяти. Используется большинством многозадачных операционных систем. Основной целью защиты памяти является запрет доступа процессу к той памяти, которая не выделена для этого процесса. Такие запреты повышают надежность работы как программ так и операционных систем, так как ошибка в одной программе не может повлиять непосредственно на память других приложений.

Методы

Сегментирование памяти. Сегментирование памяти означает разбиение компьютерной памяти на фрагменты переменной длины, называемые сегментами. В архитектуре x86 есть несколько режимов сегментации, которые могут использоваться для защиты памяти. В процессорах архитектуры x86, существуют Global Descriptor Table и Local Descriptor Table, описывающие сегменты памяти. Указатели на сегменты в подобных процессорах хранятся в специализированных сегментных регистрах. Изначально их было 4: CS, SS, DS и ES; затем добавили еще два: FS и GS.

Страничная память. При страничной организации памяти, все адресное пространство делится на фрагменты фиксированного размера, называемые страницами. Их размер кратен степени 2, и обычно равен 4096, но возможно использование одновременно нескольких размеров страниц. При помощи механизма виртуальной памяти, каждая страница виртуальной памяти может быть поставлена в соответствие любой странице физической памяти, либо помечена как защищенная. При помощи виртуальной памяти возможно использование линейного адресного пространства виртуальной памяти, которое на самом деле образовано фрагментированными участками адресного пространства физической памяти. Многие архитектуры, использующие страничную организацию памяти, в том числе и наиболее популярная x86, реализуют защиту памяти на уровне страниц.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]