Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОперационныеСистемы, общие понятия.docx
Скачиваний:
152
Добавлен:
08.02.2015
Размер:
366.4 Кб
Скачать

Алгоритм замещения страниц в ос unix. (3-2)

Этот алгоритм выполняется страничным демоном. Раз в 250 мс он просыпается, чтобы сравнить количество свободных страниц с системным параметром lost free, равным, как правило, 1/4 объема оперативной памяти. В BSD это 2 параметра – min (1/4) и max (1/2).

Если число свободных страниц меньше lost free (min), страничный демон начинает переносить страницы из памяти на диск, пока количество свободных страниц не станет равным lost free (max).

Страничный демон использует модифицированный алгоритм часов.

Основной алгоритм часов работает, сканируя страницы, как если бы они лежали на окружности циферблата.

  1. На первом проходе, когда стрелка часов указывает на страницу, сбрасывается её флаг использования из карты памяти.

  2. На втором проходе у каждой страницы, к которой не обращались с момента первого прохода, флаг использования остаётся сброшенным и эта страница будет помещена в список свободных страниц.

Страница в списке свободных страниц сохраняет своё содержание, что позволяет восстановить её, если она потребуется, прежде чем будет перезаписана.

Модифицированный алгоритм часов использует 2 стрелки. В этом алгоритме страничный демон поддерживает 2 указателя на карту памяти. При работе он сначала сбрасывает флаг использования передней стрелкой, а затем проверяет этот флаг задней стрелкой. При каждом запуске страничного демона стрелки проходят не полный оборот, а столько, сколько необходимо, чтобы количество страниц в списке свободных страниц было не меньше lost free (max).

Если ОС обнаруживает, что частота подкачки страниц слишком высока, а количество свободных страниц всё время, ниже lost free (max), swapper начинает удалять из памяти один или несколько процессов.

Сначала swapper проверяет, есть ли процесс, который бездействовал в течение 20 и более секунд. Если такие процессы есть, то из них выбирается с максимальным временем бездействия и выгружается на диск. Если таких процессов нет, то изучаются 4 самых больших процесса, из которых выбирается тот, который находится в памяти дольше всех, и выгружается на диск. И так до тех пор, пока не освободится достаточное количество памяти.

Каждые несколько секунд swapper проверяет, есть ли на диске готовые процессы, и выбирает процесс с наивысшим приоритетом. Загрузка выбранного процесса производится только при наличии достаточного количеств страниц, чтобы, когда случится неизбежное страничное прерывание, для него нашлись, свободны страничные блоки.

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

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

Процедурный сегмент подгружается из самого исполняемого двоичного файла.

Типы файлов в файловой системе ос unix. Топология файловой системы. Последние изменения в файловой системе ос unix. (18-2)

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

Отличительной особенностью ОС Unix является то, что понятие файлы в ней максимально унифицировано. Под файлами понимаются любые источники и потребители информации. Это и традиционные файлы, и внешние устройства и процессы.

Вследствие этого, Unix содержит следующие виды файлов:

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

  2. Каталоги – содержат информацию о других файлах. Предоставляют пользователем средства для организации их файлов в некоторую иерархическую структуру, основанную на взаимосвязи файлов и направлении их использования. Каталог представляет собой несортированный набор 16-и байтовых записей. Каждая запись состоит из 14-битного имени файла и номера индексного дескриптора.

Общий вид файловой системы UNIX можно представить в следующем виде:

Существует отличие файловой системы UNIX от MS-DOS\WINDOWS и т.п. заключается в возможностях монтирования другой файловой системы в топологию файловой системы UNIX. В файловой системе имеется выделенный корневой каталог. Каждый следующий уровень состоит из каталогов и других файлов, подчиненных корневому каталогу. Поэтому легко адресоваться к любому файлу, указав путь, начиная с корневого каталога.

Каталог, в котором пользователь находится в данный момент времени, называется текущим. Файл, имя которого указывается в командах, если оно не полное, всегда берется из текущего каталога, если не указать полное имя. Полное имя файла называют жесткой ссылкой.

Файл может обозначаться несколькими путевыми именами, если пользователь создаст одну или несколько ссылок на него с помощью команды ln:

ln /usr/bin/who /tmp/ww

Если в данной команде указать -s , то ссылка будет символической, а не жесткой:

lns /usr/bin/who

Символическая ссылка на файл отличается от жесткой тем, что создается новый индексный дескриптор файла. Есть возможность ссылаться на каталоги, файлы и другие файловые системы, она не изменяет счетчик значений жестких ссылок, соответствующего индексного дескриптора.

Каталог ОС UNIX считается пустым, если он не содержит никаких других файлов, кроме ссылок на текущий и родительский каталоги. Такой каталог можно удалить.

  • . – ссылка на текущий каталог.

  • .. – ссылка на родительский каталог.

  1. Специальные файлы – предназначены для организации взаимодействия с устройствами ввода/вывода.

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

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

Специальные файлы создаются с помощью команды mknod:

mknod /dev/crk c 115 5 – байт-ориентированное устройство.

mknod /dev/brk b 121 15 – блок-ориентированное устройство.

Ориентацию определяет с (байт) и b (блок).

Старший номер (тип устройства) - 115 и 121 – индекс, или номер строки, в таблице ядра, которая содержит список всех драйверов известных системе.

Младший номер (номер устройства) – 5 и 15 – целое значение, которое передается как аргумент в драйвер устройства при его вызове. Этот номер сообщает драйверу, с каким конкретно физическим устройством он взаимодействует.

  1. FIFO файлы - предназначены для организации канала и создания временного буфера, обеспечивающего взаимодействие двух или более процессов по средством записи данных в этот буфер и чтения данных из буфера.

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

FIFO файл может быть создан в UNIX с помощью mkfifo, или mknod с атрибутом p:

mkfifo fifo.file

mknod fifo.file p

Хотя FIFO файл является рабочим файлом, он может быть удален подобно обычному файлу командой rm.

  1. Гнезда — это соединения между процессами, которые позволяют им взаимодействовать, не подвергаясь влиянию других процессов.