Физическую и виртуальную память.
Физическую и виртуальную память.
Память в большинстве случаев является дефицитным ресурсом, который распределяется между ОС и пользователем. Особенности использования памяти, как правило, необходимый пользователю объём памяти часто превосходит имеющийся физический объём. Каждый процесс считает, что отведённая ему память начинается с нулевого адреса и является непрерывной. Поэтому необходимо обеспечить возможность распределения физических адресов от 0 до (n) среди (k) процессов.
Различают два вида памяти:
· Физическая (соответствует реальной памяти ЭВМ).
· Логическая (соответствует набору ссылок или адресов, на которые может ссылаться программа).
Основные функции управления памятью:
1-Отображение или перевод адресов логической памяти на адреса физической памяти. Перевод осуществляется в следующих случаях:
· Абсолютная трансляция выполняется компилятором или ассемблером при подготовке программы и генерировании ими абсолютных адресов.
· Статическая трансляция проводится, если программа составлена в формате выполняемого модуля. Отдельные программы собираются вместе и им присваиваются адреса установленные относительно некоторого установленного адреса памяти.
· Динамической трансляцией. Реальные адреса определяются ОС. Предполагается, что пространство памяти отводимое процессу может изменяться в ходе его работы.
2-Расширение границ логического пространства памяти за границы физического пространства:
· Использует оверлейное программирование. (Разные части программы используют одинаковый набор логических адресов). Существуют и другие методы, такие как обмен, свопинг и сцепление. В этих методах логическое адресное пространство программы соответствует её физическому адресному пространству, а адреса устанавливаются статически во время трансляции.
3-Разделение (между программой пользователя и ОС) и распределение (выделение каждому процессу пользователя и физической памяти).
4-Защита информации пользователя и ОС друг от друга.
7) Организация виртуальной оперативной памяти. Схема структурирования фиксированными страницами.
Различают два класса схем структуризации адресного пространства:
1-Схемы страничной структуризации.
2-Схемы сегментной структуризации.
Схемы структурирования фиксированными страницами.
Если размер адресного пространства кратен 2, то и размер страницы также выбирают кратным 2. Реально в ОС 512, 1024 и выше. Это позволяет упростить механизм преобразования адресов. В каждую страницу входят одинаковое число адресов L. Для перехода из страничного в исходное одномерное адресное пространство используется выражение A=kxL+R для вычисления адреса. Например, от адреса (1,3) мы используем A=1x2^2+3=7. Чтобы перейти в непрерывный адрес нужно выполнить два действия: умножение и сложение. Можно обойтись одним действием, если воспользоваться двоичным представлением номера страницы и смещение. Из двух двоичных чисел с помощью конкатенации получают третье число. Например, (01) и (11) получается (0111)(7).
Механизм работы страницы.
Во время загрузки процесса часть его виртуальных страниц помещается в ОП, а остальные на диск. Причём, смещение виртуальной страницы не обязательно располагается в смежных физических страницах. ОС создаёт информационную структуру, которая называется таблица страниц. В этой таблице устанавливается соответствие между номерами виртуальных и физических страниц. (Но это только для страниц, загруженных в ОП). Или может делаться отметка о том, что виртуальная страница выгружена на диск. В таблице страниц содержится следующая управляющая информация:
Начальный физический адрес.
Размер сегмента.
Правила доступа.
Признак модификации.
Непрерывное размещение.
Файл состоит из последовательности блоков диска, которые образуют единый, сплошной участок.
Достоинство: адрес файла определяется номером начального блока и простота реализации.
Недостаток: заранее неизвестна длина файла, поэтому требуется время, не эффектное использование дискового пространства из-за большой дефрагментации.
9) Связный список индексов. Достоинства и недостатки.
Связной список блоков.
В начале каждого блока содержится указатель (ссылка) на следующий блок.
Достоинство: адрес файла задаётся номером первого блока, практически отсутствует фрагментация, и файл может изменяться.
Недостаток: сложность реализации доступа к произвольной записи.
Связной список индексов.
С каждым блоком связывается индекс. Индекс располагается в отдельной области диска. Например, в MS-DOS такая область называется таблицей размещения файлов FAT (File Allocation Table). Это позволяет отслеживать состояние различных участков дискового пространства. В WINDOWS 95 32-х битная VFAT (Virtual File Allocation Table) виртуальная таблица размещения файлов. Сохраняются достоинства предыдущего подхода, устраняется недостаток, то есть, чтобы осуществить доступ к произвольному месту не нужно просматривать все блоки.
9) Перечень номеров блоков. Достоинства и недостатки.
Перечень номеров блоков.
Номера блоков, занимаемых файлами, просто перечисляются.
Достоинства: снижаются проблемы динамического размера файла, и практически отсутствует фрагментация.
Недостатки: усложняются алгоритмы распределения, поиска, то есть, увеличивается время доступа к информации. Пример в (UNIX) реализован вариант, который позволяет обеспечить фиксированную длину адреса, независимо от размера файла.
Каждый файл в системе имеет дескриптор, в составе которого хранится список, содержащий 13 номеров блоков на диске. В этой схеме используется как прямая адресация, так и косвенная адресация. Первые 10 элементов списка непосредственно указывают на 10 блоков файла, если блоков не достаточно, то используют следующие 3 элемента списка. 11 элемент для одноуровневой адресации в нём указан номер блока, хранящий список из 128 номеров блоков, которые могут принадлежать файлу. Если требуется объём файла более чем 10+128 блоков, то переходят на следующий уровень. В итоге можно адресоваться к 10+128+128^2+128^3 блоков в составе первого файла.
9) Права доступа к файлу. Основные подходы к определению прав доступа.
Определение права доступа означает определение для пользователя дозволенные операции над файлами. В разных ОС определён свой список операций доступа. Можно выделить следующие операции: создание, уничтожение, открытие, закрытие, поиск, чтение, запись, получение атрибутов, установка атрибутов и др. задаются права в таблице (матрицей прав доступа). В этой таблице указывается следующая информация:
Пользователи могут быть разделены на отдельные категории. При этом подход назначения прав может быть различными для каждой категории, например в UNIX все пользователи подразделяются на три категории:
1-Владелец файла.
2-Член группы.
3-Все остальные.
Выделяют два подхода к определению прав доступа:
· Избирательный доступ (для каждого пользователя и каждого файла сам владелец может определять допустимые операции).
· Мандатный подход (система устанавливает права доступа по отношению к каждому разделу ресурсов в зависимости от того, к какой группе принадлежит пользователь).
9) Механизм кэширования диска.
В некоторых файловых системах при работе с внешними устройствами используется подсистема буферизации, которая работает по принципу кэш-памяти. Запрос к внешнему устройству, в котором адресация осуществляется блоками, может быть перехвачена подсистемой буферизации. Такая система представляет собой буферный пул (однородных динамически распределяемых блоков ОП одинаковой длины). И комплекс программ управляющих этим пулом. Каждый буфер пула имеет размер равный одному блоку файла.
Механизм работы: При поступлении запроса на чтение некоторого блока подсистема буферизации сначала просматривает свой буферный пул, в случае обнаружения нужного блока, копирует его в буфер, запрашивающего процесса без обращения к внешнему устройству. Если нужный блок не обнаружен, то он считывается и одновременно передается процессу и записывается в буфер подсистемы. При отсутствии свободного буфера на диск вытесняется самая редкая используемая информация. В WINDOWS 95 размер кэша диктуется текущей ситуацией. При интенсивной работе сети ОС увеличивается размер кэша. И/или запуске большого числа приложений автоматически уменьшает размер.
10) Требования к ОС. Частотный принцип. Принцип модульности. Виды модулей по характеру использования.
Независимо от назначения и не зависимости от их использования ОС, которые положены в основу их разработки:
1-Частотный принцип. Он основан на выделении действий в алгоритмах программ и данных в обработке массивов по частоте использования. Для действий, которые часто встречаются при работе ОС, обеспечивается условие их быстрого выполнения (такие программные тексты постоянно находятся в ОП и активно поддерживаются специальными средствами, как правило, часто операции стараются сделать более короткими). К данным, которые часто используются, обеспечивают более быстрый доступ. Частотный принцип наиболее важен в случае многоуровневого планирования.
На долгосрочный уровень: -Редкие и длинные операции управления при этом минимальным объектом управления является непосредственно программы без детализации особенностей их исполнения.
На краткосрочный уровень: -Выносится часто используемые и короткие операции отдельных программ.
2-Принцип модульности. ОС должна состоять из законченных функциональных элементов (модулей), которые имеют средства сопряжения с подобными элементами или элементами более высокого уровня данной или другой ОС. Разделение системы на модули определяется использованием методов проектирования ОС (нисходящий, восходящий принцип). Например, модули могут быть отдельно транслируемыми программными единицами. Определённый уровень ОС может иметь свою систему модулей, образуя в результате обобщенный модуль. На более высоком уровне этот обобщенный модуль является одним из базовых модулей. Такое иерархическое упорядочивание модулей упрощает разработку и уменьшает число проектных ошибок.
По характеру использования модули бывают:
· Однократными (могут испортить сами себя и не восстанавливаться в исходное состояние).
· Многократными (они не портят себя и могут восстанавливаться).
Важное значение при построении ОС имеют модули, которые можно параллельно использовать, такие модули называются реентерабельными.
10) Принцип функциональной избирательности. Принцип генерируемости.
Принцип перемещаемости
Предусматривает построение модулей, исполнение которых не зависит от положения в ОП. ОС должна позволять динамически размещать командные сегменты и сегменты данных в различных областях памяти не зависимо от процедуры компиляции.
3 вида перемещаемости. Действие перемещения, при котором с логическими адресами связываются физические может осуществляться в трех случаях:
1) во время компоновки модули связываются друг с другом
2) во время загрузки готового модуля в память
3) во время выполнения, когда реальное распределение адресов осуществляется аппаратно
Принцип переносимости
Должен предусматривать относительно легкий способ перемещения всей системы на машину с другим типом процессора или другой аппаратной платформы. В некоторых случаях это может быть достаточно сложной задачей.
10) Принцип совместимости. Принцип независимости программ от внешних устройств. Принцип открытой и наращиваемой системы. Принцип надежности и защиты.
8-Принцип совместимости. Должны быть предусмотрены средства для выполнения прикладных программ, написанных для других ОС или для более ранних версий той же самой ОС. Выделяют два случая совместимости:
1-На уровне исполнения модуля можно запускать на различных ОС. Здесь необходимо иметь совместимость на уровне команд процессора на уровне системных вызовов и библиотечных, если они являются динамически связываемых.
2-На уровне исходных текстов приложений можно перекомпилировать исходные тексты в новый исполняемый модуль.
9-Принцип независимости программ от внешних устройств. Позволяет одинаково осуществлять операции управления внешними устройствами, не зависимо от конкретных физических характеристик.
10-Принцип открытой и наращиваемой ОС. Быть открытой означает быть доступной для анализа пользователя. Наращиваемой означает модифицируемой использующей не только использование генерации, но и добавлять новые модули и совершенствовать действующие, не нарушая целостности системы.
11-Принцип надёжности и защиты. ОС должна быть также надёжной, как и аппаратура, на которой она работает. ОС должна диагностировать ошибки, восстанавливаться после большинства сбоев или ошибок, защищать пользователей от их собственных ошибок.
Физическую и виртуальную память.
Память в большинстве случаев является дефицитным ресурсом, который распределяется между ОС и пользователем. Особенности использования памяти, как правило, необходимый пользователю объём памяти часто превосходит имеющийся физический объём. Каждый процесс считает, что отведённая ему память начинается с нулевого адреса и является непрерывной. Поэтому необходимо обеспечить возможность распределения физических адресов от 0 до (n) среди (k) процессов.
Различают два вида памяти:
· Физическая (соответствует реальной памяти ЭВМ).
· Логическая (соответствует набору ссылок или адресов, на которые может ссылаться программа).
Основные функции управления памятью:
1-Отображение или перевод адресов логической памяти на адреса физической памяти. Перевод осуществляется в следующих случаях:
· Абсолютная трансляция выполняется компилятором или ассемблером при подготовке программы и генерировании ими абсолютных адресов.
· Статическая трансляция проводится, если программа составлена в формате выполняемого модуля. Отдельные программы собираются вместе и им присваиваются адреса установленные относительно некоторого установленного адреса памяти.
· Динамической трансляцией. Реальные адреса определяются ОС. Предполагается, что пространство памяти отводимое процессу может изменяться в ходе его работы.
2-Расширение границ логического пространства памяти за границы физического пространства:
· Использует оверлейное программирование. (Разные части программы используют одинаковый набор логических адресов). Существуют и другие методы, такие как обмен, свопинг и сцепление. В этих методах логическое адресное пространство программы соответствует её физическому адресному пространству, а адреса устанавливаются статически во время трансляции.
3-Разделение (между программой пользователя и ОС) и распределение (выделение каждому процессу пользователя и физической памяти).
4-Защита информации пользователя и ОС друг от друга.
7) Организация виртуальной оперативной памяти. Схема структурирования фиксированными страницами.
Различают два класса схем структуризации адресного пространства:
1-Схемы страничной структуризации.
2-Схемы сегментной структуризации.