Стратегии выталкивания (вытеснения)



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

ü выталкивание случайных страниц или сегментов;

ü выталкивание первой пришедшей страницы или сегмента (FIFO);

ü выталкивание дольше всего не использовавшихся страниц или сегментов (LRU);

ü выталкивание наименее часто использовавшихся страниц или сегментов (LFU);

ü выталкивание не использовавшихся в последнее время страниц или сегментов (NUR).

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

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

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

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

       Стратегия выталкивания не использовавшихся в последнее время страниц или сегментов (NUR-стратегия) также является близкой к стратегии LRU и характеризуется относительно небольшими издержками на свою реализацию. Согласно NUR-стратегии из первичной памяти выталкиваются те страницы (сегменты), к которым не было обращений в последнее время. В соответствии со свойством локальности во времени (см.п.4.4.1) к страницам (сегментам), не использовавшимся в последнее время, вряд ли будет обращение в ближайшем будущем, так что их можно заменить на вновь поступающие страницы.

Глава 2. Файловая система

Понятия файловой системы

Файл — это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные, а также собственно хранимые в этой области данные и набор атрибутов, позволяющих операционной системе манипулировать этими данными

Основные цели использования файла:

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

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

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

ФС поддерживают несколько функционально различных типов файлов, в число которых, как правило, входят:

ü Обычные файлы;

ü Файлы-каталоги;

ü Специальные файлы;

ü Именованные конвейеры;

ü Файлы, отображаемые на память.

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

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

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

Файл данных, с точки зрения операционной системы, это просто массив байтов, имеющий имя и набор дополнительных атрибутов (владелец, права доступа и т.д.).

Операционная система не знает назначение файла, это знает только пользователь или программа, которая работает с этим файлом.

Файловая система – это часть операционной системы, включающая:

Ø Совокупность всех файлов на диске;

Ø Наборы структур данных, используемых для управления файлами, такие как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске;

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

Также файловая система является компонентом подсистемы ввода-вывода.

Файловые системы стали необходимы с появлением устройств с прямым доступом к данным, прежде всего – магнитным дискам.

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

В мультипрограммных, многопользовательских ОС задачами файловой системы являются:

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

ü гарантирование корректности данных, содержащихся в файле;

ü оптимизация производительности, как с точки зрения системы (пропускная способность), так и с точки зрения пользователя (время отклика);

ü поддержка ввода-вывода для различных типов устройств хранения информации;

ü минимизация или полное исключение возможных потерь или повреждений данных;

ü защита файлов от несанкционированного доступа;

ü обеспечение поддержки совместного использования файлов несколькими пользователями (в том числе средства блокировки файла и его частей, исключение тупиков, согласование копий и т.п.);

ü обеспечение стандартизированного набора подпрограмм интерфейса ввода-вывода.

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

ü создание, удаление, чтение и изменение файлов;

ü контролируемый доступ к файлам других пользователей;

ü управление доступом к своим файлам;

ü реструктурирование файлов в соответствии с решаемой задачей;

ü перемещение данных между файлами;

ü резервирование и восстановление файлов в случае повреждения;

ü доступ к файлам по символьным именам.

Как уже было сказано, задачи, решаемые ФС, зависят от способа организации вычислительного процесса в целом. Самый простой тип — это ФС в однопользовательских и однопрограммных ОС, к числу которых относится, например, MS-DOS.

Основные функции в такой ФС нацелены на решение следующих задач:

ü именование файлов;

ü программный интерфейс для приложений;

ü отображения логической модели файловой системы на физическую организацию хранилища данных;

ü устойчивость файловой системы к сбоям питания, ошибкам аппаратных и программных средств.

Задачи ФС усложняются в операционных однопользовательских мультипрограммных ОС, которые, хотя и предназначены для работы одного пользователя, но дают ему возможность запускать одновременно несколько процессов. Одной из первых ОС этого типа стала OS/2. К перечисленным выше задачам добавляется новая задача совместного доступа к файлу из нескольких процессов. Файл в этом случае является разделяемым ресурсом, а значит, файловая система должна решать весь комплекс проблем, связанных с такими ресурсами. В частности, в ФС должны быть предусмотрены средства блокировки файла и его частей, предотвращения гонок, исключение тупиков, согласование копий и т. п.

В многопользовательских системах появляется еще одна задача: защита файлов одного пользователя от несанкционированного доступа другого пользователя.

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

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


Дата добавления: 2018-08-06; просмотров: 687; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!