Билет №1 Особенности написания ОС. Классификация ОС. Билет №2 Управление процессами. Иерархическая структура ОС. Билет №3 Понятие...

Билет №1 Особенности написания ОС. Классификация ОС. Билет №2 Управление процессами. Иерархическая структура ОС. Билет №3 Понятие...

Билет №1 Особенности написания ОС. Классификация ОС. Билет №2 Управление процессами. Иерархическая структура ОС. Билет №3 Понятие...

Билет №1

Особенности написания ОС.

  1. ОС - очень громоздкие программы, что снижает их надёжность.

  2. В ОС одновременно может существовать множество пользователей, работающих с большим количеством устройства ввода-вывода; при этом возникают сложности в управлении множеством параллельных процессов.

  3. ОС должны учитывать потенциальных вредных и враждебных пользователей.

  4. ОС живут долгое время. Из этого следует, что проектировщики должны планировать возможность изменения аппаратного и программного обеспечения в будущем.

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

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

  7. При разработке ОС необходимо обеспечить совместимость с предыдущими версиями.

Классификация ОС.

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

  1. Однозадачные.

  2. Многозадачные.

  1. Системы пакетной обработки.

  2. Системы с разделением времени.

  3. Системы реального времени.

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

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

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

  1. Однопользовательские.

  2. Многопользовательские.

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

  1. Системы с вытесняющей многозадачностью.

  2. Системы с кооперативной многозадачностью.

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



  1. Асимметричные ОС.

  2. Симметричные ОС.

Асимметричные ОС целиком выполняются только на одном процессоре, распределяя прикладные задачи по другим процессорам.

Симметричные ОС (SMP) используют весь пул процессоров, разделяя их между системными и прикладными задачами.

Windows NT поддерживает архитектуру SMP. Системы SMP позволяют коду ОС выполняться на любом свободном процессоре. Чтобы гарантировать такую работу, системы должны следовать строгим правилам.

Windows NT обладает свойствами, которые принципиально важны для SMP.

Свойства:

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

  2. В одном процессе может быть несколько потоков управления. Потоки позволяют процессу выполнять разные части его программы на нескольких процессорах одновременно.

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

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

  1. ОС могут различаться по способу построения ядра:

  1. Системы с монолитным ядром (макроядра).

  2. Системы с микроядром.

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

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

Гибридные ядра – модифицированные микроядра, позволяющие, для ускорения работы, запускать некоторые подсистемы в пространстве ядра (Windows).

Построение ОС на базе объектно - ориентированного подхода даёт возможность использовать все его достоинства:

  1. Сохранение удачных решений в форме стандартных объектов.

  2. Возможность создания новых объектов на базе имеющихся с помощью механизма неследования.

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



  1. ОС по базовой технологии делят на:

  1. Microsoft (MS DOS, Window 3x, Windows 9x, Windows NT)

  2. Unix (Linux Red Hat, Linux Mandrake, Linux Fedora, Linux BSD, Linux Free BSD, Linux Open BSD, Linux Solaris)

Билет №2

Управление процессами.

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























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

  1. Состояние процесса.

  2. Программный счётчик процесса (адрес команды, которая должна быть выполнена).

  3. Содержание регистров процессора.

  4. Данные, необходимые для планирования (приоритет процесса, положение, размер, адрес пространства).

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

  6. Сведение об устройствах ввода-вывода, связанных с процессом.


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

Система управления процессами должна иметь возможность выполнять следующие операции:

  1. Создание процесса.

  2. Уничтожение процесса.

  3. Возобновление.

  4. Изменение проритета.

  5. Блокировка процесса.

  6. Пробуждение процесса.

  7. Запуск процесса.

Иерархическая структура ОС.

Различают следующие уровни:

  1. Самый нижний уровень – ядро ОС.

  2. Уровень системных программ.

  3. Уровень прикладных программ.

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

Различают микро и макро архитектуры ядра.





Билет №3

Понятие параллельных и ассинхронных процессов.

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

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

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

  1. Процесс, который обращается к разделяемым данным, находится в критическом участке.

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

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

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

Программная реализация механизма взаимоисключения. Алгоритм Деккера.

Begin

While (true) do

Begin

---------------------------------------------------------------------------------------------------------------------

Begin

П1 хочет войти:=False;

П2 хочет войти:=False;

Избранныйпроцесс:=1;

Par begin

Process1;

Process2;

Par end;

End.

Procedure process1;

Begin

While (true) do

Begin


П1 хочетвойти:=True;

While (П2 хочетвойти) do

If (избранный процесс = 2) do

Begin

П1 хочет войти:=False;

While (избранный процесс = 2) do

П1 хочет войти:= True;

End;

Критический участок 1;

Избранный процесс:=2;

П1 хочет войти:=False;

Прочие операторы 1;

End; End.

Билет №4

Аппаратная реализация взаимоисключения.

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

Testandset (a,b) – читает b, копирует в a, и для b – значение истинно.

Begin

Активный:=false;

Par begin

Process1;

Process2;

Par end;


Procedure process1;

Begin

While (true) do

Begin

Первомувхнельзя:=True;

While (Первомувхнельзя do testandset (Первомувхнельзя, активный);

Критический участок1;

Активный:=False;

Прочие операторы 1;

End;

End.

Билет №5

Тупиковые ситуации

Процесс находится в состоянии тупика, если он ожидает некоторого события, которое никогда не пройзойдёт.

Условия возникновения тупиковой ситуации:

  1. Процессы требуют предоставления им права монопольного управления ресурсами, которые им выделяются. (Условие взаимоисключения).

  2. Условие ожидания ресурсов - процессы удерживают за собой ресурсы уже выделенные им, ожидая, в то же время, новых ресурсов.

  3. Условие неперераспределяемости. Ресурсы нельзя отобрать у процессов, удерживающих их, пока эти ресурсы не будут использованы для выполнения работы.

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

Основные направления исселдования по проблеме тупиков:

  1. Предотвращение тупиков.

  2. Обход тупиков.

  3. Обнаружение тупиков.

  4. Восстановление после тупиков.





Билет №6

Предотвращение тупиков

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


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

3 стратегических принципа:

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

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

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

1 принцип.

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


2 принцип.

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


3 принцип.

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

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

Билет №7

Обнаружение тупиков.

Целью средства обнаружения тупиков является обнаружение самого факта возникновения тупиковых ситуаций и обнаружения всех процессов и ресурсов, вовлечённых в эти ситуации. Алгоритмы обнаружения тупиков применяются, как правило, в системах, где выполняются первые 3 условия возникновения тупиков. Эти алгоритмы затем проверяют, не создался ли режим кругового ожидания. Одним из способов обнаружения тупиков является редукция ориентированного графа, распределения ресурсов и запросов. Редукция графа на конкретный процесс изображается исключением стрелок, идущих к этому процессу от ресурсов и стрелок к ресурсам от этого процесса. Если граф можно редуцирвоать на все процессы, значит, тупиковой ситуации нет. Иначе все нередуцированные процессы представляют собой процессы, вовлечённые в тупиковую ситуацию.












Восстановление после тупиков

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

  1. В первый момент может быть неочевидно, что система попала в тупиковую ситуацию.

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

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



Билет №8

Обход тупиков. Алгоритм банкира

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


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

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

Выделять ресурсы процессам можно в том случае, если после очередного выделения состояние системы остаётся надёжным (смысл алгоритма).

Недостатки алгоритма:

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

  2. Алгоритм требует, чтобы число выполненых процессов оставалось постоянным.

  3. Алгоритм требует, чтобы процессы заранее указывали максимальные потребности в ресурсах.



Билет №9

Управление памятью. Организации виртуальной памяти.

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

Существует 2 способа организации виртуальной памяти:

  1. Страничная.

  2. Сегментная.

А также возможна их комбинация (в современных ОС).


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

  1. Виртуальные адреса.

  2. Реальные адреса.


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

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


Стратегии управления виртуальной памятью делятся на 3 группы:

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

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

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

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

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

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

    1. Принцип оптимальности.

    2. Замещение случайных страниц.

    3. Замещение первой страницы (FIFO).

    4. Замещение больше всего не используемой страницы (алгоритм вторая попытка).

    5. Замещение наименее часто использующейся страницы.

    6. Алгоритм часов.

Принцип локальности

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


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


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

  1. Организации данных в виде массивов.

  2. Последовательным выполнением кода программы.

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


Kc

t




БИЛЕТ№10

Стратегии замещения страниц.

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



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

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

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

  4. Вторая попытка. Эта стратегия предусматривает, что каждая странице помимо временной метки присваивается бит-обращение. Если старица самая старая и к ней не было обращений, то она замещается. Если обращение было, то бит-обращение обнуляется и обновляется время загрузки страницы, таким образом страница переносится в конец очереди претендентов на замещение.

  5. Замещение наименее частой используемой страницы. В этом случае контролируется интенсивность используемости каждой страницы. Замещается та, к которой наименее частое выполняется обращение. Однако, такой подход может быть нерациональным, т.к. наименее часто используема та страница, которая наименее часто используется в памяти.

Алгоритм часов Unix. Каждые 200 миллисекунд просыпается страничный демон. Чтобы сравнить количество свободных страничных блоков с ¼ объема оперативной памяти. Если окажется, что кол-во памяти меньше ¼, то демон начинает сканировать страницы, т.к. если бы они были расположены на циферблате часов. Реализация этой стратегии допускает введение 2-х битов признаков на страницу. Это предусматривает наличие четырех групп страниц. В этом случае страница групп с меньшим образом замещается меньшим образом.


БИЛЕТ№11

Управление процессорами. Уровни планирования загрузки процессоров, цели планирования, принципы планирования.

1. Верхний уровень.

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

2. Промежуточный уровень.

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

3. Нижний уровень.

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

Цели планирования:

  1. Планирование должно быть справедливым, т.е. ни один процесс не должен пострадать от бесконечного откладывания.

  2. Обеспечить максимальную пропускную способность.

  3. Обеспечить максимальное число пользователей, работающих в интерактивном режиме.

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

  5. Минимизировать накладные расходы.

  6. Сбалансировать использование ресурсов.

  7. Учитывать приоритеты процессов.

  8. Характеризоваться постепенностью снижения работоспособности при увеличении нагрузки.

Принципы планирования:

  1. С переключением.

  2. Без переключения. Если после предоставления ЦП некоторому процессу отобрать ЦП у этого процесса нельзя, то это планирования без переключения, можно – с переключением.

  3. Планирование по сроку завершения.

  4. Принцип FIFO. Первый пришедший обслуживается первым.

  5. Циклическое планирование. Осуществляется по принципу FIFO, однако каждый раз процессу предоставляется ограниченное время ЦП.

  6. Планирование по принципу кратчайшего «кратчайшее задание выполняется первым».

  7. Планирование оп принципу «наибольшего относительного времени реакции». Это планирование без переключений, согласно которому, приоритет каждого задания является не только ориентацией времени обслуживания, но и ориентацией времени, затраченной заданием на ожидание обслуживания. П=(Tожидобслуж)/Тобслуж

БИЛЕТ№12

Процедуры начальной загрузки.

При включении компьютера, исполняя адрес, ЦП устанавливается по адресу расположения программы POST. Эта программа определяет кол-во доступной памяти, тестирует её, определяет наличие других аппаратных устройств. Результат тестирования отображается на экране. В случае удачи запускается Int 19h, выполняется процедура начальной загрузки. Эта процедура определяет первые доступные устройства из списка разрешенных и пытается загрузить программу загрузки. Если загрузочным является жесткий диск, то программу загружает MBR и передает ему управление. Каждый нулевой сектор физического диска содержит MBR (1 сектор -512 байт). Первый 446-байт MBR заняты программой загрузчиком, за ней следует таблица разделов длиной 64-байта. Таблица содержит 4 16-байтных записи, каждая адресует логический раздел: 3 основный и 1 дополнительный. Эти записи содержат следующую инофрмацию:



1-й байт – признак активного раздела. 2-й байт – номер начальной стороны раздела. Следующие 2 байта содержат номер начальной дорожки и номер начального сектора. Следующий один байт содержит тип раздела. Значение 5 - содержит расширенный раздел. Дополнительный раздел содержит 4 раздела – используется только 2. Первый идентифицирует логический диск, второй – указывает на следующий раздел. Следующий один байт содержит номер последнего раздела стороны. Следующие 2 байта – номер последней дорожки и последнего сектора. Следующие 4 байта номер первого загрузочного сектора раздела относительно первого сектора диска. Последние 4 байта – длина раздела в секторах. Последние 2 байта проверяют является ли сектор MBR.



Программа-загрузчик, расположенная в MBR читает таблицу разделов MBR и определяет какой их разделов активный. После чего управление передается загрузочной записи активного раздела. Каждый логический раздел содержит запись, содержащая набор параметров и в случае если раздел активный, то загрузочная запись содержит ещё и программу загрузчик ОС. Такая запись может занимать от 1 до 16 секторов и располагаться в самом начале логического раздела. Загрузчик ОС, расположенный в загрузочной записи раздела выполняет следующие действия:


  1. Cистема MS DOS или Windows 9x.

В этом случае загрузчик запускает 2 фала: IO.SYS и MSDOS.SYS, которые находятся в корневом каталоге диска.

  1. Система Windows NT.

В этом случае загрузчик загружает файлы MTL DR или BOOT MGR.

  1. Система Linux.

В этом случае загружается ядро /boot/ vm Linuz… после ядра проверяется состав аппаратных средств и конфигурируется некоторые их них. После этого ядро пытается смонтировать корневую файловую систему. После этого ядро запускает процесс init, который считывает и обрабатывает файл /etc/inttab, после чего запускает /etc/rc, запускающий все фоновые задачи, монтирует все файловые системы и запукает систему входа пользователя.


Билет№13

Семейство Unix. Файловая система.

Файлы в Unix играбт ключевую роль. Помимо того, что информация хранится в файлах, файлы определяют привилегии пользователей, обеспечивают доступ к переферическим устройствам. Файлы в Unix организованы в виде древовидной структуры. Корнм этого дерева является корневой каталок с именем “/”. Имена всех остальных файлов содержат путь от корневого каталога до самого файла. Таким образом, путь к любому файлу начинается с “/” и не содержит идентификатора устройства, на котором он фактически находится. Однако это не означает, что в системе присутствует только 1 файловая система. В большинстве случаев единое дерево, которым его видит пользователь, состоит из нескольких файловых систем, которые могут иметь различную структуру и физически находиться на различных физических устройствах. Имя файла является атрибутом файловой системы. Каждый файл имеет связанные с ним метаданные, хранящиеся в индексных дескрипторах (inode), которые содержат все характеристики файла. В частности метаданные содержат указатели на дисковые блоки хранения данных файла. Имя файла в файловой системе является указателем на его метаданные.


Типы файлов


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

  1. Обычный файл.

  2. Каталог.

  3. Специальные файловые устройства.

  4. FIFO (именованный канал).

  5. Связь.

  6. Сокет (Socket).


Обычный файл.

Наиболее общий тип файлов, который содержит данные в некотором формате. Для ОС такой файл – это просто набор байт. Вся интерпретация содержимого осуществляется соответствующими программами.


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


File1

65 11 24

File2

65 11 24

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


FIFO(именованный канал).

Файл, используемый для связи между процессами.


Связь.

В то время как каталог содержит имя файла и указатели на его метаданные, сами метаданные не содержат ни имени файла, ни указатель на это имя. Такая архитектура позволяет одному файлу иметь несколько имён. Такая связь имени и файла называется жёсткой связью. Жёсткие связи указывают на один и тот же индексный дескриптор. Команда “PS-I” показывает содержимое каталога. Жёсткая связь является естественной формой связи имени файла с его метаданными и не относится к особому типу файла. Особым типом является символическая связь, позволяющая адресовать файл косвенно. Данные файла, являющиеся символической связью, содержат только имя целевого файла. И та и другая связь создаётся командой:

Pn-S file1 file2” – символическая связь.

Pn file1 file3” – жёсткая связь.


Сокет (Socket).

Файл, предназначенный для взаимодействия между действиями в сети.


БИЛЕТ№14


Структура каталогов.

Построение структуры каталогов изначально предполагает ее разбиение на отдельные части, каждая из которых может размещаться на отдельном диске или его разделе. Это используется для облегчения контроля объема диска, создания резервных копий и других обязанностей системного администратора. Основными частями являются файловые системы root, /usr, /var и /home. Структура каталогов разрабатывалась также для работы в сети, где возможно распределение ее некоторых частей посредством какого-либо устройства (например, CD-ROM) или сети с использованием NFS.

Далее рассматривается назначение различных частей структуры каталогов.

Файловая система root (она обычно находится на локальном диске, хотя может быть загpужена в пямять во вpемя запуска системы) содеpжит все файлы, необходимые для загpузки и запуска системы так, что после этого может быть смонтиpована любая дpугая файловая система. Она также содеpжит сpедства для восстановления повpежденных файловых систем и для pаботы с pезеpвными копиями.

В файловой системе /usr находятся все команды, пpогpаммы, библиотеки, стpаницы pуководств и дpугие файлы, тpебуемые для ноpмального функциониpования системы. Ни один из файлов этой системы не должен быть специфичным для какой либо отдельной машины и не должен быть изменен пpи обычной pаботе системы. Это позволяет pаспpеделять эти файлы в сети, что может быть довольно эффективным pешением за счет экономии дискового пpостpанства и пpинятия некотоpых pешений пpи администpиpовании системы. Даже если /usr pасположена на локальном диске, то она должна быть смонтиpована в pежиме read-only во избежание ее случайного повpеждения.

Файловая система /var содеpжит pазличные файлы, изменяемые во вpемя pаботы системы, такие как буфеpные каталоги (для почты, новостей и т.д.), жуpнальные файлы, фоpматиpованные стpаницы pуководств, а также вpеменные файлы. Обычно вся инфоpмация в /var извлекается из системы /usr, но тогда было бы невозможным смонтиpовать /usr в pежиме read-only.

В файловой системе /home находятся личные каталоги пользователей. Размещение /home в отдельном каталоге или файловой системе упpощает pезеpвное копиpование инфоpмации. Пpи увеличении объема инфоpмации она может быть pазбита на несколько отдельных файловых систем (напpимеp, /home/students или /home/staff).

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

В файловой системе UNIX все файлы гpуппиpуются по их назначению (все команды находятся в одном месте, файлы данных - в дpугом, документация - в тpетьем и т.д.). Альтеpнативой этому является pазмещение файлов в зависимости от того к какой пpогpамме они относятся, то есть все файлы, относящиеся к pедактоpу Emacs находятся в одном каталоге, все файлы TeX - в дpугом и т.д. Возникает только пpоблема в pаспpеделении файлов (каталог, в котоpом находится пpогpамма, обычно содеpжит как постоянные файлы, так файлы, изменяемые в пpоцессе pаботы), а иногда даже в их поиске (напpимеp, поиск pуководства к пpогpамме).


Билет№15


Структура файловой системы Unix на примере S5FS.


Файловая система занимает раздел диска и состоит из 3х основных компонентов:

  1. Суперблок содержит общую информацию о файловой системе.

  2. Массив индексных дескрипторов (ilist) содержит все метаданные всех данных файловой системы. Индексный дескриптор содержит статическую информацию о файле и указывает на расположение данных файла.

  3. Блоки хранения данных занимают большую часть дискового раздела. В них хранится содержимое файлов.


1.

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


2.

Индексный дескриптор не содержит имени файла, которое хранится в блоках хранения данных каталога, не содержит имени файла, не содержит содержимого файла, которое хранится в блоках хранения данных этого файла. А основными полями индексного дескриптора являются:

  1. Тип файла (ls-l) для владельца для группы для прочих


  1. Атрибут доступа -


  1. Количество ссылок на файлы root (имя пользователя) root (имя группы)

  2. Размер файла (size)

  3. Дата, время (db)

  4. Массив адресов дисковых блоков хранения данных файла


Индексный дескриптор содержит информацию о расположении данных файла. Эта информация хранится в виде массива, каждый элемент которого содержит физический адрес дискового блока. Массив имеет фиксированный размр и содержит 13 элементов: первые 10 адресуют непосредственно дисковые блоки хранения данных. 11-й элемент адресует блок, хранящий в себе 256 адресов дисковых блоков хранения данных файла. 12-й элемент адресует дисковый блок и содержит 286 (или 256 хз) адресов.



БИЛЕТ№16

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

Обладает полной функциональностью системы S5FS, использует те же структуры данных. Основные изменения затронули расположение файловой системы на диске и алгоритм размещения свободных блоков, что повысило ее производительность и надежность. Как и в случае S5FS суперблок содержит общее описание ФС и раполагается в начале раздела. Однако в суперблоке не хранятся данные о свободном пространтсве ФС и свободный инод. В данном суперблоке он остается неизменным на протяжении всего времени существования ФС. Т.к. данные суперблока «очень» важны, то суперблок дублируется для повышения надежнности. Организация ФС предусматривает логическое деление дискового раздела на несколько групп цилиндров. Группы цилиндров – несколько расположенных подряд дисковых цилиндров. Каждая группа содержит управляющую информацию, включающую резервную копию суперблока; массив inode; данные о свободе блоков. Идея этой структуры ФС заключается в создании кластеров inode, распределенных по всему разделу, вместо того, чтобы сгруппировать все inode в начале каждого раздела. Тем самым уменьшается время доступа к данным конкрктного файла, т.к. блоки данных располагаются ближе к адресующим им inode, кроме того, управляющая информация располагается ближе к середине диска, уменьшая при этом среднее расстояние перемещения дисковой головки.

Производительность ФС существенным образом зависит от размера блока хранения данных. Чем больше размер блока, тем больше количество данных может быть прочитано без дополнительного перемещения дисковой головки. ФС FFS поддерживает размер блока до 64кб. Проблема состоит в том, что типичная ФС UNIX состоит из большого количества маленьких файлов, что может привести к значительным потерям полезной емкости диска. Этот недостаток был определен с помощью фрагментации блока, в то время как блок является единицей передачи данных ввода-вывода, фрагмент определяет адресующую единицу хранения данных на диске. Таким образом, был найден компромисс между производительностью и хранением данных на диске. Размер фрагмента задается при создании ФС. При размещении блоков ФС FFS использует стратегию, направленную на увеличение производительности. Приведем основные принципы этой стратегии:


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

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

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

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



БИЛЕТ№17

Файловые системы ОС UNIX

ФС ext2 очень похожа на FFS, но имеет небольшие изменения. Вместо 10 прямых и 3 косвенных дисков адреса ext2 использует 12 прямых и 3 косвенных. Длина адреса увеличена до 4 байт, что позволяет поддерживать больше диск разделов. Ext2 использует те же алгоритмы размещения информации, что и FFS. Ext2 резервирует некоторое количество дисковых блоков для root, что позволит ему избежать нехватки места в случае его заполнения другими пользователями. После добавления журанлирующих функций в ext2 появилась новая ФС – ext3 (журналируемая файловая система). Основная цель жФС – обеспечить быстрое восстановление системы после сбоя. Для этого спользуют транзакции. Система ведет журнал, в котором отображаются все действия с данными. В случае сбоя на основание журнала можно вернуть систему в безошибочное состояние.

Ext4 – жФС, основана на ext3.

Новые возможности:

  1. использование элементов. В ФС ext3 адресация выполнялась традиционно-поблочно. Такой способ адресации становится менее эффективным с ростом размера файла. В ext4 предоставлен механимз пространтсвенной записи файлов, т.е. новая информация добавляется в конец заранее выделенной по соседству области памяти, уменьшая фрагментацию. Механизм пространственной записи позволяет адресовать большое количество последних идущих блоков одним дескриптором

  2. 48-битные номера блоков. При размере блоков 4кб это позволяет адресовать до 1го экзобайта=2(в 48степени) * 4кб = 1млн Тб.

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

  4. Резервирование некоторого количества inode при создании каталога. В этом каталоге исп-ся зарезервированый inode.

  5. Размер inode увеличен с 128 байт до 256 байт.

  6. Расширен диапазон сохранения времен(25апреля 2514г)

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


БИЛЕТ№18

Управление процессами

1.Типы процессов

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

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

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

2.Атрибуты процесса

  1. Идентификатор процесса PID. Каждый процесс имеет уникальный идентификатор. Идентификатор нового процесса больше чем у предыдущих приблизительно на 1.

  2. Идентификатор процесса(PPID)

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

  4. Терминальная линия ТТУ-терминал, ассоциированый в данном процессе. Имеет только пользовтельские процессы.

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


3.Состояние процесса


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

  2. Процесс выполняется в режиме ядра. При этом процессором выполняются системные инструкции ядра ОС.

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

  4. Состояние сна. Ожидая недоступные в данный момент процессы.

  5. Состояние рождения. Процесс только что создан, но не готов к запуску и не находится в состоянии сна.

  6. Процесс выполнения. Системный вызов на завершение и перешел в состояние зомби.
















БИЛЕТ№19

Управление памятью в UNIX

До версии 3BSD большинство систем управления памятью в Unix основывались на своппинге и работали следующим образом: когда требовалось процессов больше, чем смогли завершиться, то некоторые из них выгружались на диск целиком. Выбирая жертву, своппер сначала рассматривал блокированные процессы, либо находящиеся в памяти долгое время. Начиная с версии 3BSD, в управлении памяти появилась возможность страничной подкачки, что обеспечило возможность работы с программами больших размеров. В современной системе Unix используется страничная подкачка по требованию с кластеризацией. Оснавная идея, лежащая в основе страничной подкачки, заключается в том, что для работы процесса ему не нужно целиком находиться в памяти. Всё, что требуется – это структура пользователя и таблицы страниц. Если они загружены, то процесс считается находящимся в памяти и может быть загружен планировщиком. Страничная подкачка реализуется частично ядром, а частично процессом, называющимся страничным демоном. Этот процесс запускается один раз в 250 милисекунд, чтобы сравнить количество свободных страничных блоков с некоторым параметром lostfree=1/4 оперативной памяти. Если число свободных страничных блоков меньше значения этого параметра, то страничный демон начинает переносить страницы из памяти на диск. Страничный демон использует модифицированную версию алгоритма часов – это глобальный алгоритм, т.е. при удалении страниц он не учитывает, чья это страница. Таким количество страниц у процесса со временем меняется.


Изначально в Unix используется основной алгоритм часов, но затем было обнаружено, что при больших объёмах оперативной памяти проходы занимают слишком много времени. Тогда основной алгоритм был заменён другим алгоритмом часов с 2 стрелками. В этом алгоритме страничный демон поддерживает 2 указателя на карту памяти. При работе он сначала очищает бит использования передней стрелки. После чего проверяют его задней стрелкой. Затем перемещают общие стрелки. Алгоритм повторяется до тех пор, пока количество свободных страниц не станет больше параметра lostfree. Если ОС обнаруживает, что частота подкачки страниц (хз что), то своппер начинает удалять из памяти один или несколько процессов.


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


Периодически своппер проверяет, есть ли на диске готовые к запуску процессы. Загружать большие процессы – задача трудоёмкая, поэтому своппер загружает в память только структуру пользователя и таблицы страниц. Сами страницы загружает при помощи обычной страничной подкачки. В системе system 5 в отличие от BSD есть 2 отличия от предложенного алгоритма страничной подкачки:

  1. Вместо алгоритма часов с 2 стрелками используется оригинальный алгоритм часов с 1 стрелкой. Более того страница помещается в списов свободных страниц только в случае, если она не использовалась в течение нескольких последующих проходов. Хотя в этом случае страницы не освобождаются быстро, но увеличивается вероятность того, что освобождённая страница не потребуется тут же снова.

  2. Вместо единственной переменной lostfree используется 2 переменные min и max. Когда количество свободных страниц, опускается ниже значения min, то страничный демон начинает освобождать страницы и работает до тех пор, пока количество свободных страниц не превысит значения переменной max. Такой подход позволяет не так часто запускать страничного демона.


БИЛЕТ№20


Управление памятью в Linux


Алгоритм замещения страниц работает следующим образом: система Linux пытается поддерживать некоторое количество страниц свободными, с тем, чтобы сразу их можно предоставить процессу в случае необходимости. Во время загрузки процесс init запускает страничного демона, который отрабатывает 1 раз в секунду. Он проверяет, есть ли достаточное количество памяти. Страничный демон состоит из цикла, который выполняется до 6 раз с возрастающей срочностью. Тело цикла выполняет обращение к 3-м процедурам, каждая из которых пытается получить различные типы страниц. Значение срочности передаётся в виде параметра процедуре. Оно означает, сколько страниц нужно проверить. В результате этот алгоритм выполняет сначала легкодоступные страницы каждой категории. После чего переходит к труднодоступным.


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


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



БИЛЕТ№21


Загрузка WindowsNT.

Файлы необходимые для загрузки:

  1. До Windows 7: ntldr, boot.ini, ntDetect.com, ntoskrnl.exe

  2. После Windows 7: bootmgr, c.\boot\BCD, winload.exe, ntoskrnl.exe

Загрузочная запись отвечает за следующие действия:

  1. Распознование использования файловой системы и её применение для поиска загрузчика.

  2. Поиск загрузчика ОС и его загрузка в память (ntldr или bootmgr).

  3. Начало исполнения кода самой загрузки.


Функции загрузчика Ntldr:

  1. Переключает процессор в соответствующий режим использования памяти.

  2. Запускает соответствующую mini-файловую систему.

  3. Читает расположенный в корневом каталоге системного диска файл boot.ini и отображает на экране соответствующее меню для выбора загрузки ОС. Если компьютер сконфигурирован для загрузки нескольких систем, то пользователь может выбрать ОС.

  4. Если выбрана одна из версий Windows NT, то выполняется файл ntDetected.com, чтобы собрать информацию о подключаемых устройствах к компьютеру. ntDetected.com строит список компонент для формирования ветви реестра HKEY_LOCAL_MACHINE.

  5. Загружает и запускает ядро ОС файл ntoskrnl.exe и передаёт ему информацию, собранную программой ntDetected.com.


Менеджер загрузки bootmgrвыполняет аналогичные функции, считывает данные конфигурации системы c.\boot\BCD. Запускает модуль загрузки ОС - winload.exeи компоненты ядра из файла ntoskrnl.exe. Winload.exeзагружает основные драйверы и инициализирует систему до момента, с которого начинается загрузка ядра.


Инициализация ядра.

На стадии инициализации ядро выполняет следующие функции:

  1. Инициализация низкоуровнего драйвера устройств, загруженных на предыдущей стадии.

  2. Загрузка и инициализация оставшихся драйверо и устройств, прописанных в реестре.

  3. Загрузка и инициализация сервисов, создание файла подкачки.

  4. Запуск различных подсистем. На стадии инициализации ядра происходит запуск подсистемы управления сессиями – SMSS (а в Linux init). Этот процесс отвечает за инициализацию переменных окружения, за файл подкачки, за работу реестра, за запуск процессов CSRSS и WinLogan, за запуск программы проверки жёсткого диска на ошибки, за загрузку dll-бибилотек для работы с Windows-приложениями, за загрузку файла win32k.sys.


Процесс CSRSSотвечает за работу: терминальных служб, консольных приложений и является менеджером потоков в ОС. Процесс win32k.sys– графическая система, выполняется внутри ядра. WinLogan.exe– диспетчер регистраций. Регистрация может быть произведена автоматически на основании данных реестра или вручную. После WinLoganзапускаются сервисы services.exe.



Билет №22

Управление памятью в Windows NT.


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

  1. Управление вирутальной адресным пространством процесса.

  2. Разделение памяти м/д процессами.

  3. Защита виртуальной памяти одного процесса от других.

Средства защиты памяти существуют в 4-х формах:

  1. Отдельное адресное пространство для каждого процесса.

  2. 2 режима работы: режим ядра и пользовательский режи работы.

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

  4. Объектно-ориентированная защита памяти.

Процесс принятия решения о замене страницы обычно включает в себя 3 этапа:

Выборка -> Размещение -> Замещение.

Менеджеры виртуальной памяти Windows NT используют стратегию выборки по требованию с кластеризацией. Для этого менеджеры виртуальной памяти используют алгоритм первого свободного места.



Этап замещения - менеджеры виртуальной памяти Windows NT используют локальный алгоритм FIFO. Локальность в данном случае означает, что поиск страниц кандидата на выгрузку осуществляется только среди страниц того процесса, который требует загрузки новой страницы. Локальный вариант стратегии не даёт возможности одному процессу захватить всю память.



Билет№23

Семейство ОС Windows.

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

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

Таблица размещения файлов (FAT) находится следом за загрузочной записью. В ней записано физическое расположение всех файлов на диске. За таблицей FAT для надёжности располагается её копия.


Единицей выделения дискового пространства является кластер.


Кластер – представляет из себя группу секторов (единица чтения информации). Все кластеры имеют одинаковый размер. В таблице FAT содержится стоьько записей, сколько кластеров на диске.

FAT: FAT16 - 2^16 = 65.536, Максимальный размер файла : 2Gb

FAT32 - 2^32 = 4.294.967.296, Максимальный размер файла: 4Gb

Если в ячейке FAT записано значение 0, то кластер пустой. Любое другое значение соответсвует номеру следующего по счёу кластера текущего файла, кроме чисел зарезервированных для обозначение дефектного кластера и последнего кластера файла. Что касается N начального кластера файла, то его значение хранится в соответствующей данному записи каталога. Все изменения вносятся в обе таблицы FAT. Поскольку каждый файл независимо от своего размера занимает целое число кластеров, то последний кластер файла обычно используется неполностью и неиспользуемая часть пропадает.



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

Основные поля: 8 – имя; 3 - Pac; 1 - A; 10 – резерв; 2 – D; 2 – B; 2 – H/К; 2- size.

Последний элемент – подкаталоги, представляют собой файлы с атрибутом dir. Влюбом подкаталоге первые 2 записи – файлы с именами «.» и «..» , где «.» - текущий каталог, «..» - ссылка на родительский каталог.



Билет№24

Файловая система FAT32

Реализация FAT32 концептуально близка к реалтзации FAT16. Однако вместо массива 2^16 элементов в ней используется столько, сколько необходимо, чтобы покрыть весь раздел диска(МАХ: 2^32).


Отличия от FAT16:

  1. Увеличился максимальный размер раздела до 1Тб.

  2. МАХ размер файлов увеличен с 2Гб до 4Гб.

  3. Загрузочная запись теперь занимает 2 сектора.

  4. Появляется новый элемент - указатель на 1-й кластер корневого каталога.

  5. Корневой каталог не привязан к определённому месту и может расширяться как любой другой каталог.

  6. Создаётся резервная копия в загрузочной записи.

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

ОС каждому файлу назначает 2 имени: длинное(до 256 символов в формате Unicode) и короткое( в формате 8+3) для совместимости с предыдущими версиями.


Когда создаётся файл, имя которого не соответсвует формату 8+3, то ОС создаёт дополнительное имя. При этом берутся первые 6 символов длинного имени и к ним добавляются суффиксы №1,№2 и т.д. Имя формата 8+3 хранится в каталоге в описателе файла. Если у файла есть также длинное имя, то оно хранится в одной или нескольких каталоговых записях предшествующих описателю файла с именем формата 8+3. Каждая такая запись содержит до 13 символов формата Unicode. Каталоговая запись, содержащая фрагмент длинного имени, отличается от обычной каталоговой записи значением поля “атрибут”; он равен нулю. Порядковый номер фрагмента учитывается в первом байте. Последний фрагмент имени отличается добавлением к порядковому номеру числа 64.



БИЛЕТ№25



Файловая система NTFS. Возможности.



NTFS (New Technology File System) - наиболее предпочтительная файловая система при работе с ОС Windows NT (Windows 2000 и XP также являются NT системами), поскольку она была специально разработана для данной системы. В состав Windows NT входит утилита convert, осуществляющая конвертирование томов с FAT и HPFS в тома NTFS. В NTFS значительно расширены возможности по управлению доступом к отдельным файлам и каталогам, введено большое число атрибутов, реализована отказоустойчивость, средства динамического сжатия файлов, поддержка требований стандарта POSIX. NTFS позволяет использовать имена файлов длиной до 255 символов, при этом она использует тот же алгоритм для генерации короткого имени, что и VFAT. NTFS обладает возможностью самостоятельного восстановления в случае сбоя ОС или оборудования, так что дисковый том остается доступным, а структура каталогов не нарушается. Каждый файл на томе NTFS представлен записью в специальном файле – главной файловой таблице MFT (Master File Table). NTFS резервирует первые 16 записей таблицы размером около 1 Мб для специальной информации. Первая запись таблицы описывает непосредственно саму главную файловую таблицу. За ней следует зеркальная запись MFT. Если первая запись MFT разрушена, NTFS считывает вторую запись, чтобы отыскать зеркальный файл MFT, первая запись которого идентична первой записи MFT. Местоположение сегментов данных MFT и зеркального файла MFT хранится в секторе начальной загрузки. Копия сектора начальной загрузки находится в логическом центре диска. Третья запись MFT содержит файл регистрации, применяемый для восстановления файлов. Семнадцатая и последующие записи главной файловой таблицы используются собственно файлами и каталогами на томе.


В журнале транзакций (log file) регистрируются все операции, влияющие на структуру тома, включая создание файла и любые команды, изменяющие структуру каталогов. Журнал транзакций применяется для восстановления тома NTFS после сбоя системы. Запись для корневого каталога содержит список файлов и каталогов, хранящихся в корневом каталоге. Схема распределения пространства на томе хранится в файле битовой карты (bitmap file). Атрибут данных этого файла содержит битовую карту, каждый бит которой представляет один кластер тома и указывает, свободен ли данный кластер или занят некоторым файлом.


В загрузочном файле (boot file) хранится код начального загрузчика Windows NT. NTFS также поддерживает файл плохих кластеров (bad cluster file) для регистрации поврежденных участков на томе и файл тома (volume file), содержащий имя тома, версию NTFS и бит, который устанавливается при повреждении тома. Наконец, имеется файл, содержащий таблицу определения атрибутов (attribute definition table), которая задает типы атрибутов, поддерживаемые на томе, и указывает можно ли их индексировать, восстанавливать операцией восстановления системы и т.д.


NTFS распределяет пространство кластерами и использует для их нумерации 64 разряда, что дает возможность иметь 264 кластеров, каждый размером до 64 Кбайт. Как и в FAT размер кластера может меняться, но необязательно возрастает пропорционально размеру диска. NTFS позволяет хранить файлы размером до 16 эксабайт (264байт) и располагает встроенным средством уплотнения файлов в реальном времени. Сжатие является одним из атрибутов файла или каталога и подобно любому атрибуту может быть снято или установлено в любой момент (сжатие возможно на разделах с размером кластера не более 4 Кб). При уплотнении файла, в отличие от схем уплотнения используемых в FAT, применяется пофайловое уплотнение, таким образом, порча небольшого участка диска не приводит к потере информации в других файлах.


Для уменьшения фрагментации NTFS всегда пытается сохранить файлы в непрерывных блоках. Эта система использует структуру каталогов в виде B-дерева, аналогичную высокопроизводительной файловой системе HPFS, а не структуре со связанным списком применяемой в FAT. Благодаря этому поиск файлов в каталоге осуществляется быстрее, поскольку имена файлов хранятся сортированными в лексикографическом порядке.



NTFS была разработана как восстанавливаемая файловая система, использующая модель обработки транзакций. Каждая операция ввода-вывода, изменяющая файл на томе NTFS, рассматривается системой как транзакция и может выполняться как неделимый блок. При модификации файла пользователем сервис файла регистрации фиксирует всю информацию необходимую для повторения или отката транзакции. Если транзакция завершена успешно, производится модификация файла. Если нет, NTFS производит откат транзакции. Несмотря на наличие защиты от несанкционированного доступа к данным NTFS не обеспечивает необходимую   конфиденциальность хранимой информации. Для получения доступа к файлам достаточно загрузить компьютер в DOS с дискеты и воспользоваться каким-нибудь сторонним драйвером NTFS для этой системы. Начиная с версии  Windows 2000 Microsoft поддерживает новую файловую систему NTFS 5.0. В новой версии NTFS были введены дополнительные атрибуты файлов; наряду с правом доступа введено понятие запрета доступа, позволяющее, например, при наследовании пользователем прав группы на какой-нибудь файл, запретить ему возможность изменять его содержимое. Новая система также позволяет: вводить ограничения (квоты) на размер дискового пространства, предоставленного пользователям; проецировать любой каталог в подкаталог на локальном диске. Интересной возможностью новой версии Windows NT является динамическое шифрование файлов и каталогов. В состав Windows 2000 и Windows XP входит файловая система с шифрованием (Encrypting File System, EFS), использующая алгоритмы шифрования с общим ключом. Если для файла установлен атрибут шифрования, то при обращении пользовательской программы к файлу для записи или чтения происходит прозрачное для программы кодирование и декодирование файла.


БИЛЕТ№26


Структура раздела NTFS


Загрузочная запись раздела NTFS располагается в начале раздела, а его копия располагается в середине. Загрузочная запись состоит из стандартного блока параметров, а также начального кластера основной MFT (master file t), а также её копии. NTFS делит все полезное место на кластеры. Размер кластера от 512 байт до 64 кбайт. Диск NTFS условно делится на 2 части:

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


МЕТАФАЙЛЫ.


Метафайлы находятся в корневом каталоге системного диска, их имена начинаются с символа $.

  1. Первая запись MFT – сам файл.

  2. Адресует копию MFT.

  3. Адресует файл поддержки журналирования, т.е. адресует журнал, в котором регистрируется информация о предстоящих операциях файлового … .

  4. Адресует файл служебной информации.

  5. Адресует список стандартных атрибутов файлов на томе.

  6. Адресует корневой каталог.

  7. Адресует карту свободного места тома.

  8. Адресует файл начальной загрузки.

  9. Адресует файл дисковых квот

  10. Адресует таблицу соответствия заглавных и прописных букв в имени файла.

Файл NTFS состоит из следующих атрибутов:

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

  2. Стандартная информация (Атрибут файла, время создания, модификации).

  3. Имя файла (полное имя файла). Здесь храниться материнский каталог.

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

  5. Дискриптор безопасности.


Типы адресации файлов:

  1. Адресация небольших файлов. Если файл имеет небольшой размер, то он может целиком размещаться внутри одной из записей таблицы MFT, размер которой 1 кб. Из-за того, что файл может иметь переменное количество и размер атрибутов нельзя наверняка утверждать какого размера файл поместиться записи MFT. Обычно такие файлы имеют размеры до 900 байт.

  2. Адресация больших файлов. Если файл не умещается в одной записе MFT (размер > 900 байт), то этот факт отбражается в значении атрибута данные, который содержит признак того, что файл является не резедентным, т.е. хранится вне таблицы MFT. В этом случае атрибут данные содержит виртуальные номер кластера для первого кластера каждого фрагмента данных, а также количество непрерывных кластеров в каждом отрезке. Отрезок – последовательность смежных кластеров, характеризующихся номером начального кластера и длинной.


Пример:

Адресация фрагментированного файла.

31 38 73 25 34 |32 14 01 Е5 11 02 00

1 2


342573 + 38

342571+02E511+0114

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


Каждый каталог NTFS представляет собой 1 вход таблицы MFT и содержит список файлов в индексной форме (содержит имя файла, а также номер записи MFT соответствующей данному файлу). Файл каталога используется лишь для ускорения доступа к содержимому директории и не является обязательным.