Файл: Моделирование работы подсистемы ос.docx

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 10.11.2023

Просмотров: 109

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.




Рисунок 2 – Блок-схема приоритетного планирования

1.4 Файловая подсистема


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

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

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

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

1.4.1 Подсистема управления памятью


Подсистема управления памятью в современной операционной системе решает следующие основные задачи:

  • бесконфликтное распределение памяти между выполняющимися программами;

  • защита памяти от несанкционированного доступа.

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

Подсистема управления процессами в современной операционной системе решает довольно обширный набор задач, которые удобно представить в виде диаграммы на рисунке 3.




Рисунок 3 – Задачи подсистемы управления процессами

Таким образом, подсистема управления процессами решает два класса задач: создание и удаление процессов, и управление существующими процессами. Задача создания процесса сводится к размещению в памяти и инициализации структур данных, описывающих процесс. Задача удаления процесса зачастую сводится к освобождению памяти и ресурсов, удерживаемых процессом. Более интересными представляются задачи, связанные с управлением процессами. Управление процессами требует решения двух классов задач: задач планирования процессов и задач взаимодействия между процессами.

1.4.2 Страничное распределение


Виртуальное адресное пространство каждого процесса делится на части одинакового, фиксированного для данной системы размера, называемые виртуальными страницами (virtual pages). Вся оперативная память машины делится на части такого же размера, называемые физическими страницами (или блоками, или кадрами). Размер страницы выбирается равным степени двойки: 512, 1024, 4096 байт и т.д. Это позволяет упростить механизм преобразования адресов.

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

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

  • номер физической страницы, в которую загружена данная виртуальная страница;

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

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

  • признак обращения к странице, называемый также битом доступа, который устанавливается в единицу при каждом обращении по адресу, относящемуся данной странице.

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


1.4.3 Сегментное распределение


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

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




Рисунок 4 – Блок-схема адресации при сегментной организации памяти

1.5 Подсистема управления файлами


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

Файловая система (File System, ФС) — определяет и контролирует, как будут храниться и именоваться данные на носителе/накопителе информации: флешке, жестком или ssd диске и других. От нее зависит способ хранения данных на накопителе, сам формат данных и то, как они будут записываться/читаться в дальнейшем.

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

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

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

Основными критериями эффективности физической организации файлов являются:

  • скорость доступа к данным;

  • объем адресной информации файла;

  • степень фрагментированности дискового пространства;

  • максимально возможный размер файла.

Существуют такие виды организации файловой системы:

  • непрерывное размещение;

  • связанный список кластеров;

  • связанный список индексов;

  • перечень номеров кластеров.

1.5.1 Непрерывное размещение файлов (кластер – 256 байт)


Непрерывное размещение — простейший вариант физической организации, при котором файлу предоставляется последовательность кластеров диска, образующих непрерывный участок дисковой памяти, как проиллюстрировано на рисунке 5. Основным достоинством этого метода является высокая скорость доступа, так как затраты на поиск и считывание кластеров файла минимальны. Также минимален объем адресной информации — достаточно хранить только номер первого кластера и объем файла. Размер единицы распределения или же иначе размер кластера – это наименьший, возможный объем дискового пространства, который будет выделен для хранения файла. Проще говоря, размер любого файла на вашем диске будет кратен размеру кластера. Даже практически пустой файл, все равно будет занимать на диске место, равное размеру кластера. Точно также и в случае с файлами большего объема – если размер файла не кратен размеру кластера, то на диске будет выделено дополнительное пространство, кратное размеру кластера.




Рисунок 5 – Структура непрерывного размещения файлов

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

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

У непрерывного размещения есть также очень серьезный недостаток: со временем диск становится фрагментированным, что наглядно изображено на рисунке 6. Естественно, при удалении файла его блоки освобождаются и на диске остается последовательность свободных блоков. Немедленное уплотнение файлов на диске для устранения такой последовательности свободных блоков («дыры») не осуществляется, поскольку для этого потребуется скопировать все блоки, — а их могут быть миллионы, — следующие за ней, что при использовании больших дисков займет несколько часов или даже дней. В результате диск содержит вперемешку файлы и последовательности свободных блоков.

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

Без ответа на этот вопрос она не сможет продолжить работу. Если в конце выяснится, что указан слишком маленький размер, программа будет вынуждена преждевременно прекратить свою работу, поскольку выбранная область на диске будет заполнена и остаток файла туда просто не поместится. Если пользователь попытается обойти эту проблему, задавая заведомо большой конечный объем, скажем, 1 Гбайт, редактор может и не найти столь большой свободной области и объявит, что файл создать нельзя. Структура доступных действий с данным типом файловой подсистемы изображена на рисунке 7.