
- •Понятия «процесс» и «поток». Создание процессов и потоков. Состояния потока
- •Вытесняющие и невытесняющие алгоритмы планирования
- •Алгоритмы планирования, основанные на квантовании
- •Алгоритмы планирования, основанные на приоритетах
- •Системные вызовы
- •Цели и средства синхронизации. Необходимость синхронизации и гонки
- •Критическая секция
- •Блокирующие переменные
- •Семафоры
- •Функции ос по управлению памятью
- •Типы адресов
- •Алгоритмы распределения памяти
- •Распределение памяти с фиксированными разделами
- •Распределение памяти с динамическими разделами
- •Свопинг и виртуальная память
- •Страничное распределение
- •Сегментное распределение
- •Сегментно-страничное распределение
- •Иерархия запоминающих устройств
- •Задачи ос по управлению файлами и устройствами
- •Многослойная модель подсистемы ввода-вывода
- •Многоуровневые драйверы
- •Цели и задачи файловой системы
- •Файловая система unix. Общая структура. Монтирование фс.
- •Имена файлов. Атрибуты файлов.
- •Структура магнитного дискового накопителя. Блоки (кластеры).
- •Безопасность ос. Основные виды угроз и аспекты безопасности ос. Принцип адекватности защиты.
- •Безопасность ос. Понятие сервисов и механизмов защиты ос. Сервисы идентификации и автентификации пользователей. Маркер доступа
- •Понятия «процесс» и «поток». Создание процессов и потоков. Состояния потока
Распределение памяти с динамическими разделами
В этом случае память машины не делится заранее на разделы. Сначала вся память, отводимая для приложений, свободна. Каждому вновь поступающему на выполнение приложению на этапе создания процесса выделяется вся необходимая ему память (если достаточный объем памяти отсутствует, то приложение не принимается на выполнение и процесс для него не создается). После завершения процесса память освобождается, и на это место может быть загружен другой процесс. Таким образом, в произвольный момент времени оперативная память представляет собой случайную последовательность занятых и свободных участков (разделов) произвольного размера.
Функции операционной системы, предназначенные для реализации данного метода управления памятью:
Ведение таблиц свободных и занятых областей, в которых указываются начальные адреса и размеры участков памяти.
При создании нового процесса — анализ требований к памяти, просмотр таблицы свободных областей и выбор раздела, размер которого достаточен для размещения кодов и данных нового процесса. Выбор раздела может осуществляться по разным правилам, например: «первый попавшийся раздел достаточного размера», «раздел, имеющий наименьший достаточный размер» или «раздел, имеющий наибольший достаточный размер».
Загрузка программы в выделенный ей раздел и корректировка таблиц свободных и занятых областей. Данный способ предполагает, что программный код не перемещается во время выполнения, а значит, настройка адресов может быть проведена единовременно во время загрузки.
После завершения процесса корректировка таблиц свободных и занятых областей.
По сравнению с методом распределения памяти фиксированными разделами данный метод обладает гораздо большей гибкостью, но ему присущ очень серьезный недостаток — фрагментация памяти. Фрагментация — это наличие большого числа несмежных участков свободной памяти очень маленького размера (фрагментов). Настолько маленького, что ни одна из вновь поступающих программ не может поместиться ни в одном из участков, хотя суммарный объем фрагментов может составить значительную величину, намного превышающую требуемый объем памяти.
Свопинг и виртуальная память
Необходимым условием для выполнения программы, является ее нахождение в оперативной памяти. Оперативка ограничивает число одновременно выполняющихся программ и размеры виртуального адресного пространства этих программ.
В мультипрограммном режиме, помимо активного процесса, то есть процесса, коды которого в настоящее время находятся в оперативке, имеются приостановленные процессы, находящиеся в режиме ожидания или готовности.
Коды таких процессов (образы) могут быть временно, до следующего выполнения, выгружены на диск. К моменту, когда подходит очередь выполнения, его образ возвращается с диска в оперативку. Такая подмена (виртуализация) оперативки, позволяет повысить мультипрограммирование (то есть объем оперативной памяти теперь не так жестко ограничен объемом памяти, занимаемой образами процессов).
Виртуализация памяти, может быть осуществлена на основе двух различных подходов:
Свопинг – образы процессов выгружаются на диск и возвращаются обратно, целиком.
Виртуальная память – между оперативной памятью и диском, перемещаются части (сегменты либо страницы) образов процессов.
Свопинг представляет собой частный случай виртуальной памяти, а следовательно более простой в реализации. Однако, подкачке данным методом свойственна избыточность. Перемещение избыточно информации замедляет работу системы, а также приводит к не эффективному использованию памяти. Системы, поддерживающие свопинг не могут загрузить на выполнение процесс, виртуальное адресное пространство которого, превышает имеющиеся в наличие свободную память. Из-за указанных недостатков в современных системах, свопинг практически не используется, на смену данному методу пришел метод виртуальной памяти, при котором в оперативку и обратно выгружается только часть образа процессов.
Ключевой проблемой виртуальной памяти, возникающей в результате многократного преобразования виртуальных адресов в физические, в связи с постоянным изменением местоположения. Решение данной проблемы зависит от того, какой способ структуризации виртуального адресного пространства принят в данной системе.
Страничная виртуальная память, организует перемещение данных между виртуальной памятью и диском, страницами – частями виртуального адресного пространства, фиксированного и сравнительно не большого размера.
Сегментная виртуальная память предусматривает перемещение данных сегментами – частями виртуального адресного пространства, произвольного размера, полученными с учетом смыслового значения данных.
Сегментно-страничная виртуальная память, использует двух уровневое деление: а именно, виртуальная память делится на сегменты, а сегменты делятся на страницы. Единицей перемещения будет являться страница.