ТЕМА 2. УПРАВЛЕНИЕ РЕСУРСАМИ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE

advertisement
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
ТЕМА 2. УПРАВЛЕНИЕ РЕСУРСАМИ
ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ
Цель темы: раскрыть принципы функционирования современных операционных
систем по управлению ресурсами вычислительных систем.
В результате изучения темы обучающиеся должны усвоить:
 понятие "мультипрограммирование". Назначение процессов и потоков,
планирование и диспетчеризацию потоков в современных операционных системах;
 назначение прерываний и их классификацию;
 основные алгоритмы распределения оперативной памяти между процессами;
 понятие виртуальной памяти и ее использование в современных операционных
системах;
 принципы кэширования данных;
 назначение и функции контроллеров и драйверов устройств ввода-вывода
данных;
 правила организации внешней памяти на магнитных дисках. Задачи
низкоуровневого и высокоуровневого форматирования жесткого диска;
 принципы функционирования современных файловых систем;
 механизм контроля доступа к объектам, реализуемый в современных
операционных системах.
Оглавление
2.1. Мультипрограммирование................................................................................................................................................. 2
2.1.1. Классификация мультипрограммных операционных систем ................................................................... 2
2.1.2. Управление процессами и потоками ................................................................................................................... 3
2.1.3. Мультипрограммирование на основе прерываний ....................................................................................... 5
2.2. Управление памятью ........................................................................................................................................................... 6
2.2.1. Адресация к памяти.................................................................................................................................................... 7
2.2.2. Классификация алгоритмов распределения памяти.................................................................................... 8
2.2.3. Страничное распределение памяти .................................................................................................................... 9
2.2.4. Сегментное распределение памяти ................................................................................................................... 11
2.3. Кэширование данных ........................................................................................................................................................ 12
2.3.1. Иерархия запоминающих устройств в компьютере ................................................................................... 12
2.3.2. Кэш-память................................................................................................................................................................... 13
2.3.3. Отображение основной памяти на кэш ........................................................................................................... 14
2.4. Управление вводом-выводом......................................................................................................................................... 15
2.4.1. Контроллеры и драйверы ...................................................................................................................................... 15
2.4.2. Организация внешней памяти на магнитных дисках ................................................................................ 17
2.4.3. Файловые системы и системы управления файлами ................................................................................. 21
2.5. Современные файловые системы ................................................................................................................................ 22
2.5.1. Файловая система FAT ............................................................................................................................................. 22
2.5.2. Файловая система NTFS .......................................................................................................................................... 25
2.5.3. Особенности файловых систем, используемых в UNIX ............................................................................ 28
2.6. Доступ к разделяемым ресурсам ................................................................................................................................. 29
2.6.1. Механизм контроля доступа ................................................................................................................................. 29
2.6.2. Организация контроля доступа в операционных системах Windows 2000/ XP ............................. 32
Выводы ............................................................................................................................................................................................. 37
Вопросы для самопроверки ..................................................................................................................................................... 38
Важнейшей функцией операционной системы является организация рационального
использования всех ее ресурсов: процессоров, памяти, внешних устройств, данных и программ.
Особенно эта задача актуальна в мультипрограммных операционных системах, в которых за
ресурсы конкурируют сразу несколько приложений.
1
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
2.1. Мультипрограммирование
Мультипрограммирование,
или
многозадачность,
–
это
способ
организации
вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу
несколько
программ,
совместно
использующих
все
ресурсы
компьютера.
Мультипрограммирование призвано повысить эффективность использования вычислительной
системы.
2.1.1. Классификация мультипрограммных операционных систем
В зависимости от выбранного критерия эффективности операционные системы делятся на
системы пакетной обработки, системы разделения времени и системы реального времени.
В системах пакетной обработки критерий эффективности – максимальная пропускная
способность компьютера, т. е. решение максимального числа задач в единицу времени.
Достигается это за счет минимизация простоев всех устройств компьютера и прежде всего
центрального процессора.
Системы
пакетной
обработки
предназначены
для
решения
задач
вычислительного характера, не требующих быстрого получения результатов.
в
основном
Для одновременного выполнения формируется пакет, в который выбираются задачи,
предъявляющие разные требования к ресурсам, так, чтобы обеспечивалась сбалансированная
загрузка всех устройств вычислительной системы. Выбор нового задания из пакета для его
выполнения зависит от текущей ситуации в вычислительной системе, т. е. выбирается самое
выгодное для системы задание, которому необходимы ресурсы, наиболее свободные в данный
момент.
Переключение процессора с выполнения одной задачи на выполнение другой задачи
происходит по инициативе самой активной задачи, например, когда она отказывается от
процессора из-за необходимости выполнить операцию ввода-вывода. Поэтому существует
высокая вероятность того, что одна задача может надолго занять процессор и выполнение
интерактивных задач станет невозможным.
Следовательно, в вычислительной системе, работающей под управлением пакетной ОС,
невозможно гарантировать выполнение того или иного задания в определенный период
времени. Однако общее время выполнения пакета задач часто оказывается меньше, чем
суммарное время их последовательного выполнения.
Операционные системы с пакетной обработкой используются в компьютерах типа
мэйнфреймов, процессорное время которых относительно дорого. Работа таких ОС повышает
эффективность
функционирования
аппаратуры,
но
снижает
эффективность
работы
пользователей.
В системах разделения времени критерий эффективности – повышение удобства работы
пользователей, которые могут интерактивно работать одновременно с несколькими
приложениями на одной машине.
Для этого каждому приложению попеременно выделяется одинаковый квант времени. Таким
образом, пользователи, запустившие программы на выполнение, получают возможность
поддерживать с ними диалог. Если квант времени выбран небольшим, то у всех пользователей
складывается впечатление, что каждый из них единолично использует машину.
Такие системы обладают меньшей пропускной способностью, чем системы с пакетной
обработкой, и применяются для многотерминальных или многооконных компьютеров, т. е. в
большинстве универсальных ОС.
В системах реального времени критерий эффективности – реактивность системы, т. е. ее
способность выдерживать заранее заданные интервалы времени между запуском программы и
получением результата.
В таких системах мультипрограммная смесь представляет собой фиксированный набор
заранее разработанных программ, а выбор программы на выполнение осуществляется по
прерываниям или в соответствии с расписанием плановых работ.
2
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Операционные
системы
реального
времени
применяются
в
специализированных
компьютерах, например, управляющих каким-то технологическим процессом.
Не следует путать мультипрограммирование с мультипроцессорной обработкой. В
мультипрограммных системах в процессоре в каждый момент времени выполняется только одна
программа (процесс), т. е. параллельность выполнения задач имеет общий характер. В
мультипроцессорных системах разные задачи могут действительно параллельно выполняться на
разных процессорах.
Мультипроцессорные системы различаются архитектурой на симметричную и асимметричную.
В симметричной архитектуре все процессоры однородны и пользуются одной и той же
оперативной памятью, поэтому располагаются в одном корпусе.
При этом вычислительный процесс может быть реализован двумя способами:
симметричным
и
асимметричным
мультипроцессированием.
Симметричное
мультипроцессирование реализуется общей для всех процессоров операционной системой. Все
процессоры равноправно участвуют и в управлении вычислительным процессом, и в
выполнении прикладных задач.
В случае отказа одного из процессоров системы с симметричным мультипроцессированием,
как правило, сравнительно легко реконфигурируются, что является их большим
преимуществом.
Асимметричное мультипроцессирование предполагает выделение одного из процессоров в
качестве «ведущего», на котором работает операционная система, и который управляет всеми
остальными «ведомыми» процессорами. Такая операционная система проще, чем на основе
симметричного мультипроцессирования.
В
асимметричной
архитектуре
процессоры
могут
различаться
как
своими
характеристиками, так и своей функциональной ролью в системе. Например, одни процессоры
предназначены для работы в качестве основных вычислителей, другие – для управления
подсистемой ввода-вывода, третьи – еще для каких-то целей. При этом вычислительный
процесс может быть организован только путем асимметричного мультипроцессирования. На
основе асимметричной архитектуры строятся кластерные системы.
Большинство
современных
персональных
компьютеров
тоже
можно
считать
многопроцессорными и построенными по ассиметричной архитектуре. У них есть один
центральный процессор, на котором работает операционная система, и специализированные
процессоры – видеоадаптер, аудиоадаптер и другие, выполняющие самостоятельные задачи.
2.1.2. Управление процессами и потоками
Механизм многопоточной обработки
Подсистема управления процессами и потоками ответственна за обеспечение процессов
необходимыми ресурсами компьютера. В последнее время все чаще используются
параллельные
вычисления
в
рамках
одного
процесса.
Примером
необходимости
распараллеливания является сетевой сервер баз данных. В этом случае параллелизм желателен
как для обслуживания различных запросов к базе данных, так и для более быстрого
выполнения отдельного запроса за счет одновременного просмотра различных записей базы.
Средством распараллеливания вычислений в современных ОС является механизм
многопоточной обработки. При этом вводится новая единица работы – поток выполнения.
Понятию поток выполнения соответствует последовательный переход процессора от одной
команды программы к другой.
Операционная система распределяет процессорное время между потоками. Процессу
назначается адресное пространство и набор ресурсов, которые совместно используются всеми
потоками.
Создание потоков требует от ОС меньше накладных расходов, чем процессов. В отличие от
процессов, которые принадлежат разным конкурирующим за ресурсы приложениям, все потоки
одного процесса всегда принадлежат одному приложению. Вследствие этого операционная
система изолирует потоки в гораздо меньшей степени, нежели процессы в традиционной
3
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
мультипрограммной системе. Чтобы организовать взаимодействие и обмен данными, потокам не
требуется обращаться к ОС, им достаточно использовать общую память – один поток
записывает данные, а другой их читает.
Таким образом, мультипрограммирование более эффективно на уровне потоков, а не задач.
Каждый поток имеет в процессоре собственный счетчик команд и стек. Задача, оформленная в
виде нескольких потоков в рамках одного процесса, может быть выполнена быстрее за счет
псевдопараллельного (или параллельного в мультипроцессорных системах) выполнения ее
отдельных частей. Особенно эффективна многопоточность в мультипроцессорных системах.
Создание процессов и потоков
Создать процесс – это, прежде всего, означает создать описатель процесса (дескриптор
процесса), в котором содержатся все сведения о процессе, необходимые операционной системе
для управления им. Обычно описатель процесса состоит из двух частей – собственно
дескриптора и контекста процесса, которые доступны только ядру ОС.
Дескриптор содержит информацию о процессе, необходимую ядру ОС в течение всего
жизненного цикла процесса независимо от того, находится он в активном или пассивном
состоянии. Дескрипторы отдельных процессов хранятся в таблице процессов, которая
постоянно находится в оперативной памяти ядра операционной системы. В дескрипторе имеется
указатель на место расположения контекста процесса.
Контекст процесса содержит менее оперативную, но более объемную часть информации о
процессе, необходимую для возобновления процесса с прерванного места: содержимое
регистров процессора, информацию о всех открытых данным процессом файлах,
незавершенные операции ввода-вывода и другие данные. Контекст находится в оперативной
памяти непосредственно рядом с образом процесса и перемещается вместе с ним на диск, если
есть в этом необходимость.
Создание процесса включает загрузку кодов и данных исполняемой программы с диска в
выделенную область оперативной памяти или в область подкачки – специальную область диска,
где хранятся вытесненные из оперативной памяти процессы.
Создание описателя процесса знаменует собой появление в системе еще одного претендента
на вычислительные ресурсы. Начиная с этого момента при распределении ресурсов ОС должна
принимать во внимание потребности нового процесса.
При выполнении этих действий подсистема управления процессами тесно взаимодействует с
подсистемой управления памятью и файловой системой.
В многопоточной системе операционная система при создании процесса создает для каждого
процесса как минимум один поток выполнения. При этом так же, как и при создании процесса,
операционная система генерирует специальную информационную структуру – описатель
потока.
В исходном состоянии поток (или процесс – для систем без многопоточности) находится в
приостановленном состоянии. Момент выборки потока на выполнение осуществляется в
соответствии с принятым в данной системе правилом предоставления процессорного времени и
с учетом всех существующих в системе процессов и потоков.
Планирование и диспетчеризация потоков
На протяжении существования процесса выполнение его потоков может быть неоднократно
прервано и продолжено. Переход от выполнения одного потока к другому осуществляется в
результате планирования и диспетчеризации.
Планирование – это работа операционной системы по определению того, в какой момент
необходимо прервать выполнение текущего активного потока и какому потоку предоставить
возможность выполняться.
В большинстве ОС универсального назначения планирование осуществляется динамически,
т. е. решения принимаются во время работы системы на основе анализа текущей ситуации.
Почти во всех современных ОС реализованы вытесняющие алгоритмы планирования
потоков, в которых решение о переключении процессора с выполнения одного потока на другой
принимается операционной системой.
4
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
При планировании потоков, как правило, применяются смешанные алгоритмы планирования,
основанные как на квантовании (выделении потоку кванта времени использования
процессора), так и на приоритетах.
В основе планирования лежит квантование, но величина кванта и/или порядок выбора
потока из очереди готовых определяется приоритетом потоков. При этом могут приниматься во
внимание не только приоритет потоков, но время их ожидания в очереди, накопленное время
выполнения и другие факторы. Часто низкоприоритетным процессам выделяется больший квант
времени, чем высокоприоритетным. Поэтому хотя они и реже получают доступ к процессору, но
зато дольше его могут занять.
Операционная система планирует выполнение потоков независимо от того, принадлежат ли
они одному процессу или разным.
Диспетчеризация – это реализация найденного в результате планирования решения, т. е.
сам процесс переключения процессора с одного потока на другой.
Диспетчеризация сводится к следующему:



сохранение контекста текущего потока, который требуется сменить;
загрузка контекста нового потока, выбранного в результате планирования;
запуск нового потока на выполнение.
В контексте потока можно выделить часть, общую для всех потоков процесса, и часть,
относящуюся только к данному потоку. Потому часто общую часть выделяют как глобальный
контекст, доступный всем потокам процесса и который не надо менять при смене потоков
одного процесса. Меняется только локальный контекст, необходимый конкретному потоку. Это
ускоряет переключение потоков.
В мультипрограммной системе поток может находиться в одном из трех основных состояний:


выполнение – активное состояние потока, когда он выполняется процессором;
ожидание – пассивное состояние потока, когда он заблокирован по своим внутренним
причинам (ждет осуществления некоторого события или освобождения необходимого ресурса,
кроме процессора);
 готовность – пассивное состояние потока, когда он заблокирован внешними
обстоятельствами, т. е. готов использовать процессор, но ему его не дают.
В состоянии выполнения в однопроцессорной системе может находиться не более одного
потока, а в других состояниях – по несколько потоков, которые образуют очереди ожидающих и
готовых потоков.
2.1.3. Мультипрограммирование на основе прерываний
Система прерываний переводит процессор на выполнение потока команд, отличного от того,
который выполнялся до сих пор, с последующим возвратом к исходному потоку.
В зависимости от источника прерывания делятся на три класса:



внутренние;
внешние;
программные.
Внутренние прерывания (исключения) происходят при появлении аварийной ситуации в
ходе исполнения некоторой инструкции программы – ошибки программирования.
Внешние (аппаратные) прерывания возникают в результате поступления сигналов от
аппаратных устройств, в том числе от системного таймера, клавиатуры и других контроллеров
внешних устройств компьютера. У процессора имеется специальный вход прерывания.
Программные прерывания возникают при выполнении особой команды процессора,
исполнение которой имитирует прерывание, т. е. переход на новую последовательность
инструкций.
Прерываниям приписывается приоритет, с помощью которого они ранжируются по степени
важности и срочности. Процедуры, вызываемые по прерываниям, обычно называют
обработчиками прерываний, или процедурами обслуживания прерываний.
5
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Диспетчеризация прерываний является важной функцией операционной системы, и эта
функция реализована практически во всех мультипрограммных ОС.
Можно заметить, что в общем случае в операционной системе реализуется двухуровневый
механизм планирования работ. Верхний уровень планирования выполняется диспетчером
прерываний, который распределяет процессорное время между потоками поступающих
запросов на прерывание различных типов – внешних, внутренних и программных. Оставшееся
процессорное время распределяется другим диспетчером – диспетчером потоков, на основании
дисциплин планирования потоков.
На рис. 2.1 представлены уровни приоритетов при диспетчеризации различных прерываний в
операционных системах семейства Windows NT.
Рис. 2.1. Уровни приоритетов при диспетчеризации прерываний в операционных системах Windows NT
Необработанные запросы на прерывание должны храниться в контроллерах устройств, чтобы
не потеряться и дожидаться обслуживания при снижении уровня приоритета прерывания
процессора, когда он закончит выполнение более срочных работ.
ОсобУЮ роль в работе вычислительной системы играет системный таймер: на основании его
прерываний обновляются системные часы, определяющие очередной момент вызова
планировщика потоков, момент выдачи управляющего воздействия потоком реального времени
(такие имеются в Windows NT) и многое другое. Ввиду важности немедленной обработки
прерываний от таймера ему дан весьма высокий уровень приоритета – более высокий, чем
уровень любого устройства ввода-вывода.
Программные прерывания, обслуживающие системные вызовы от приложений (АРС),
выполняются с низшим приоритетом, что соответствует концепции продолжения одного и того
же процесса, но только в системной фазе, при выполнении системного вызова.
А вот для программных прерываний, исходящих от модулей ядра ОС, отводится более
высокий уровень запросов, имеющих название «диспетчерский / DPC». Этот уровень
приоритета называется диспетчерским, потому что именно в эту очередь помещаются
программные запросы, вызывающие диспетчер потоков.
2.2. Управление памятью
Особая роль памяти объясняется тем, что процессор может выполнять инструкции программы
только в том случае, если они находятся в оперативной памяти компьютера. Память
распределяется как между модулями прикладных программ, так и между модулями самой
операционной системы. Функции распределения и защиты памяти в ОС выполняет подсистема
управления памятью.
6
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
2.2.1. Адресация к памяти
Для идентификации переменных и команд на различных этапах жизненного цикла
программы используются символьные имена, виртуальные адреса и физические адреса ячеек
памяти.
Символьные имена
алгоритмическом языке.
присваиваются
пользователем
при
написании
программы
на
Виртуальные адреса, называемые иногда математическими, или логическими адресами,
вырабатывает транслятор, переводящий программу на машинный язык. Поскольку во время
трансляции не известно, в какое место памяти будет загружена программа, то транслятор
присваивает переменным и командам виртуальные (условные) адреса, обычно считая по
умолчанию, что начальным адресом программы будет нулевой адрес.
Физические адреса соответствуют номерам ячеек оперативной памяти, где
действительности расположены или будут расположены переменные и команды программы.
в
Существуют два принципиально разных подхода к преобразованию виртуальных адресов в
физические: статический и динамический.
При статическом подходе замена виртуальных адресов на физические выполняется один
раз для каждого процесса во время начальной загрузки программы при помощи специального
модуля – перемещающего загрузчика. При этом внутри программы меняются все адреснозависимые указатели.
При динамическом подходе программа загружается в память в неизменном виде в
виртуальных адресах, а при выполнении программы при каждом обращении к оперативной
памяти выполняется преобразование виртуального адреса в физический на основании
смещения адресов для данного процесса, хранящегося в специальном регистре операционной
системы.
Второй способ является более гибким, т. к. программа жестко не привязана к первоначально
выделенному ей участку памяти. Но первый вариант более экономичен, т. к. преобразование
адресов выполняется только один раз при загрузке программы.
Совокупность виртуальных адресов процесса называется
пространством, который одинаков у всех процессов системы.
виртуальным
адресным
Например, при использовании 32-разрядных виртуальных адресов этот диапазон 00000000
16 … FFFFFFFF 16 (232=4 Гбайт при адресации к ячейкам памяти размером 1 байт). Совпадение
виртуальных адресов переменных и команд различных процессов не приводит к конфликтам, т.
к. операционная система отображает их на разные физические адреса. При этом ОС отображает
либо все виртуальное адресное пространство, либо только определенную его часть.
Необходимо различать максимально возможное адресное пространство процесса
(потенциальное, определяемое разрядностью схем адресации) и назначенное (выделенное)
процессу виртуальное адресное пространство – действительно нужное процессу для работы. В
ходе выполнения процессу при необходимости может быть увеличено выделенное виртуальное
адресное пространство.
Сегодня типична ситуация, когда объем виртуального адресного пространства превышает
доступный объем оперативной памяти. В этом случае для хранения данных виртуального
адресного пространства процесса, не помещающихся в оперативную память, используется
внешняя память на жестком диске. Именно на этом принципе основана виртуальная память –
современный механизм, используемый в ОС для управления памятью.
Следует отметить, что виртуально адресное пространство и виртуальная память – различные
механизмы и они не обязательно реализуются в операционной системе одновременно.
Содержимое назначенного процессу виртуального адресного пространства, т. е. коды команд,
исходные и промежуточные данные, а также результаты вычислений, представляют собой
образ процесса.
Обычно виртуальное адресное пространство процесса делится на две непрерывные части:
системную, необходимую операционной системе, и пользовательскую. Системная часть
виртуального адресного пространства является идентичной для всех процессов. Поэтому при
7
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
смене активного процесса заменяется только пользовательская часть. Причем системная часть
виртуальной памяти в ОС любого типа включает область, подвергаемую вытеснению на диск, и
область, на которое вытеснение не распространяется.
2.2.2. Классификация алгоритмов распределения памяти
На рис. 2.2 приведена классификация алгоритмов распределения памяти, в которой все они
разделены на два класса – в одних используется перемещение сегментов процесса между
оперативной памятью и диском, в других – не используется.
Рис. 2.2. Классификация алгоритмов распределения памяти
Распределение памяти фиксированными разделами
При применении этого алгоритма память разбивается на несколько фиксированных (не
одинаковых) областей, называемых разделами. Очередной процесс, поступивший на
выполнение, помещается либо в общую очередь, либо в очередь к некоторому разделу,
подходящему по размерам.
При очевидном преимуществе – простоте реализации, данный метод имеет существенный
недостаток – жесткость: число одновременно выполняемых процессов фиксировано и не
учитываются их реальные потребности в памяти. Такой алгоритм управления памяти
применялся в ранних мультипрограммных ОС, а сейчас – в системах реального времени.
Распределение памяти динамическими разделами
В этом алгоритме память заранее не делится на разделы. Каждому вновь поступающему
приложению на этапе создания процесса выделяется вся необходимая ему память непрерывным
разделом. После завершения процесса выделенный ему раздел памяти освобождается, и на это
место может быть загружен новый процесс. Однако маловероятно, что необходимая новому
процессу память точно соответствует какому-то освободившемуся разделу.
В результате этот метод имеет серьезный недостаток – фрагментацию памяти: наличие
большого числа несмежных участков свободной памяти маленького размера, недостаточного ни
для одного создаваемого процесса.
Перемещаемые разделы
Одним из методов борьбы с фрагментацией является перемещение всех занятых участков
памяти в сторону старших или младших адресов так, чтобы вся свободная память образовала
единую область. Эта процедура называется сжатием и на нее требуется достаточно много
времени.
Так как программы перемещаются по оперативной памяти в ходе своего выполнения, то при
применении этого алгоритма распределения памяти невозможно использовать настройку
8
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
адресов с помощью перемещающего
динамическое преобразование адресов.
загрузчика.
Здесь
можно
использовать
только
Свопинг и виртуальная память
В мультипрограммном режиме помимо активного процесса, который исполняется
процессором, имеются приостановленные процессы, находящиеся либо в состоянии ожидания,
либо в состоянии готовности и стоящие в очереди к процессору. Образы таких неактивных
процессов могут быть временно выгружены на диск. Когда подходит очередь выполнения
выгруженного процесса, его образ возвращается с диска в оперативную память. Если в памяти
нет свободного места, то на диск сбрасывается один или несколько неактивных процессов.
Подмена
оперативной
памяти
дисковой
памятью
позволяет
повысить
уровень
мультипрограммирования – объем оперативной памяти теперь не столь жестко ограничивает
количество одновременно выполняемых процессов. Суммарный объем памяти, занимаемой
образами этих процессов, может существенно превосходить размер физической оперативной
памяти компьютера.
Виртуальным называется ресурс, который пользователю или пользовательской программе
представляется обладающим свойствами, которыми он в действительности не обладает.
Виртуализация памяти может быть осуществлена на основе двух различных подходов:

свопинг – образы процессов выгружаются на диск и возвращаются в оперативную
память целиком, т. е. образы процессов в каждый момент времени существуют в одном
экземпляре – в оперативной памяти или на диске;
 виртуальная память – между оперативной памятью и диском перемещаются части
(сегменты, страницы и т. п.) образов процессов, т. е. на диске постоянно хранятся
полные образы всех процессов, а в оперативной памяти – их части.
Свопинг является частным случаем виртуальной памяти и более простым в реализации
способом совместного использования оперативной памяти и диска. Однако ему присуща
избыточность, т. к. при подкачке с диска не весь программный код образа процесса требуется
для исполнения в текущем кванте его времени. Перемещение избыточных данных замедляет
работу системы и приводит к неэффективному использованию памяти. Кроме того, невозможно
загрузить на выполнение процесс, адресное пространство которого превышает имеющуюся
свободную память. Поэтому свопинг в современных операционных системах почти не
используется, а применяется механизм виртуальной памяти.
2.2.3. Страничное распределение памяти
При применении этого алгоритма виртуальное адресное пространство каждого процесса
делится на части одинакового, фиксированного для данной системы размера, называемые
виртуальными страницами. В общем случае размер виртуального адресного пространства
процесса не кратен размеру страницы, поэтому последняя страница каждого процесса
дополняется фиктивной областью.
Вся оперативная память компьютера также делится на части такого же размера, называемые
физическими страницами (блоками, кадрами), равными степени двойки: 512, 1024, 4096
байт и т. д.
При создании процесса операционная система загружает в оперативную память несколько
его виртуальных страниц (начальные страницы кодового сегмента и сегмента данных).
Копия всего виртуального адресного пространства каждого процесса постоянно находится на
диске.
Для каждого процесса операционная система создает таблицу страниц, содержащую записи
обо всех виртуальных страницах процесса. Пример страничного распределения памяти для двух
процессов приведен на рис. 2.3.
9
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Рис. 2.3. Пример страничного распределения памяти
для двух процессов
Каждая запись страницы (дескриптор страницы) включает следующую информацию о
соответствующей виртуальной странице процесса:



признак присутствия (1/0) виртуальной страницы в оперативной памяти;
номер физической страницы, в которую загружена данная виртуальная страница;
признак модификации страницы (1/0) – изменялась страница, находящаяся в памяти,
или нет;
 признак обращения к странице (1/0), который устанавливается 1 при каждом
обращении по адресу, относящемуся к данной странице.
Информация из таблиц страниц используется для решения вопроса о необходимости
перемещения той или иной страницы между памятью и диском, а также для преобразования
виртуального адреса в физический.
Сами таблицы размещаются в оперативной памяти, а адрес их размещения включается в
контекст соответствующего процесса. При активации очередного процесса операционная
система загружает адрес его таблицы страниц в специальный регистр процессора.
При каждом обращении к памяти выполняется поиск номера виртуальной страницы,
содержащей требуемый адрес, затем по этому номеру определяется нужный элемент таблицы
страниц, и из него извлекается описывающая страницу информация.
По признаку присутствия определяется, надо или нет загружать страницу. Если нужная
страница в данный момент выгружена на диск, то выполняется так называемое страничное
прерывание – выполняющийся процесс переводится в состояние ожидания (загрузки
страницы), а в это время активируется другой процесс, находившийся в очереди готовых
процессов.
10
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
По номеру физической страницы выполняется преобразование виртуального адреса в
физический – простота такого преобразования определяется размером страниц, кратным
степени двойки (в операционных системах для процессоров Pentium компании Intel размер
страниц обычно 4096 байт = 4 Кбайт).
Любой виртуальный адрес процесса состоит из двух частей: старшие разряды соответствуют
номеру виртуальной страницы, а младшие – номеру ячейки в странице. Замена виртуального
адреса на физический состоит в замещении старших разрядов – номер виртуальной страницы
меняется на номер соответствующей физической страницы памяти.
Размер страницы влияет на производительность системы и эффективность использования
памяти. Чем меньше размер страницы, тем меньше фиктивная ее часть и неиспользуемая часть
кода процесса, но учащается процесс смены страниц в оперативной памяти.
Размер страниц влияет и на количество записей в таблице страниц. Учитывая, что в
современных процессорах максимальный объем адресного пространства процесса, как правило,
не меньше 4 Гбайт, то при размере страницы 4 Кбайт и длине записи 4 байта для хранения
таблицы страниц может потребоваться до 4 Мбайт памяти.
Так как у объемных процессов таблица страниц занимает несколько страниц физической
памяти, то часть из них (менее интенсивно используемых) может быть вытеснена на диск. Для
этого общее виртуальное пространство страниц процесса разбивается на разделы и для каждого
раздела создается собственная таблица страниц, которая занимает в памяти одну страницу (для
процессоров Pentium – на 1024 записи). Информация о страницах с таблицами находится в
таблице разделов, которая постоянно расположена в оперативной памяти.
Страничное распределение памяти может быть реализовано в упрощенном варианте без
выгрузки страниц на диск. Все виртуальные страницы процессов находятся в памяти. В этом
случае нет преимуществ, которые дает виртуальная память, зато можно успешно бороться с
фрагментацией памяти, т. к. все страницы имеют фиксированные размеры, а виртуальные
страницы жестко не привязаны к физическим страницам.
2.2.4. Сегментное распределение памяти
При этом методе виртуальное адресное пространство процесса делится на части – сегменты,
размер которых определяется с учетом смыслового значения содержащейся в них информации.
Отдельный сегмент может представлять собой подпрограмму, массив данных и т. п.
«Осмысленность» сегментов упрощает их защиту.
Деление виртуального адресного пространства на сегменты осуществляется компилятором на
основе указаний программиста или по умолчанию, в соответствии с принятыми в системе
соглашениями.
Сегменты не упорядочиваются друг относительно друга, так что общего для сегментов
линейного виртуального адреса не существует. Виртуальный адрес задается парой чисел:
номером сегмента и линейным виртуальным адресом внутри сегмента.
Максимальный размер каждого сегмента при 32-разрядной организации процессора равен 4
Гбайт.
При загрузке процесса в оперативную память помещается только часть его сегментов, полная
копия виртуального адресного пространства находится в дисковой памяти.
На этапе создания процесса во время загрузки его образа в оперативную память создается
таблица сегментов процесса (аналогичная таблице страниц), в которой для каждого сегмента
указываются:




базовый физический адрес сегмента в оперативной памяти;
размер сегмента;
правила доступа к сегменту;
признаки модификации, присутствия и обращения к данному сегменту, а также
некоторая другая информация.
Достоинства сегментного распределения памяти:
 если виртуальные адресные пространства нескольких процессов включают один и тот же
сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок
11
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
оперативной памяти, в который данный сегмент загружается в единственном экземпляре, и
который в этом случае называется разделяемой памятью;
 возможно задание дифференцированных прав доступа процесса к его сегментам,
например, только чтение или запись.
Недостатки:
 более громоздкий механизм преобразования виртуальных адресов процесса в
физические. При страничной организации страницы имеют одинаковый размер, кратный степени
двойки. Поэтому ОС заносит в таблицы страниц не полный адрес физической памяти, а только
номер физической страницы, который одновременно представляет собой старшие разряды
физического адреса любой ячейки этой страницы при преобразовании адресов. При сегментной
организации сегменты могут начинаться с любого физического адреса памяти, поэтому в
таблице сегментов необходимо задавать полный начальный физический адрес;
 избыточность, т. к. единицей перемещения между памятью и диском является сегмент,
который в общем случае больше страницы;
 фрагментация памяти, которая возникает из-за непредсказуемых размеров сегментов.
Сегментно-страничное распределение памяти.
В этом методе реализуются достоинства страничного и сегментного методов распределения
памяти.
Как и при сегментной организации памяти, виртуальные адресные пространства разделены
на сегменты. Это позволяет определить разные права доступа к разным частям кодов и данных
программ.
Однако в большинстве современных реализаций все виртуальные сегменты образуют одно
непрерывное линейное виртуальное адресное пространство процесса.
Перемещение данных между памятью и диском осуществляется не сегментами, а страницами.
Для этого каждый сегмент и физическая память делятся на страницы одинакового размера, что
позволяет эффективно использовать память, сократив до минимума фрагментацию.
Преобразование виртуального адреса в физический адрес происходит в два этапа.
На первом этапе работают механизмы сегментации. Однако в таблице сегментов в поле
базового адреса указывается не начальный физический адрес сегмента в оперативной памяти,
а начальный линейный виртуальный адрес сегмента в пространстве виртуальных адресов
процесса. Поэтому исходный виртуальный адрес, заданный в виде пары (номер сегмента,
смещение) преобразуется в линейный виртуальный адрес.
На втором этапе работает страничный механизм, при помощи которого полученный линейный
виртуальный адрес преобразуется в искомый физический адрес.
2.3. Кэширование данных
2.3.1. Иерархия запоминающих устройств в компьютере
Память компьютера представляет собой иерархию запоминающих устройств, отличающихся
средним временем доступа к данным и стоимостью хранения одного бита данных (рис. 2.4).
Внешняя память (дисковая) компьютеров в настоящее время достигла
десятков…сотен гигабайт, но скорость доступа к данным является невысокой.
объема
Оперативная память компьютера обычно является динамической (DRAM), которая имеет
среднее время доступа 10…20 нс. Для хранения данных, к которым необходимо обеспечить
быстрый доступ, используется статическая оперативная память (SRAM), не требующая
специальных циклов регенерации, а поэтому более быстродействующая.
Известно – чем более быстродействующая память, тем дороже ее производство. Однако
пользователю хотелось бы иметь и недорогую, и быстродействующую память. Кэширование
данных представляет некий компромисс в решении этой проблемы.
12
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Рис. 2.4. Иерархия запоминающих устройств компьютера
2.3.2. Кэш-память
Кэш-память, или просто кэш (cache), – это способ совместного функционирования двух
типов запоминающих устройств (ЗУ), отличающихся временем доступа и стоимостью хранения
данных, который за счет динамического копирования в быстрое ЗУ наиболее часто
используемых данных из медленного ЗУ позволяет уменьшить среднее время доступа к данным
и экономить более дорогую быстродействующую память.
Кэш-память прозрачна для программ и пользователей. С ней работает только операционная
система.
Кэш-памятью называют не только способ организации работы двух типов запоминающих
устройств, но и одно из них – быстрое ЗУ.
В современных компьютерах применяют кэширование, как оперативной памяти так и диска.
Рассмотрим процесс кэширования на примере кэширования оперативной памяти, которую часто
называют основной памятью.
В процессе работы системы в кэш-память заносятся данные, считываемые системой из
оперативной памяти при выполнении каких-либо задач. Каждая запись в кэш-памяти включает
в себя:



значение элемента данных;
адрес, который этот элемент данных имеет в основной памяти;
дополнительную информацию, которая используется для реализации алгоритма
замещения данных в кэше и обычно включает признак модификации (1/0) и признак
действительности данных (1/0).
При каждом обращении к основной памяти просматривается содержимое кэш-памяти с целью
определения, не находятся ли там нужные данные. Кэш-память не является адресуемой,
поэтому поиск осуществляется по содержимому. Далее возможна одна из двух ситуаций:

если данные обнаруживаются в кэш-памяти (кэш-попадание), то они считываются из
нее;
 если нужные данные отсутствуют в кэш-памяти (кэш-промах), то они считываются из
основной памяти и одновременно с этим копируются в кэш-память.
Понятно, что эффективность кэширования зависит от вероятности кэш-попаданий,
обусловленной разными факторами: объемом кэша, объемом кэшируемой памяти, алгоритмом
замещения данных в кэше и другими особенностями компьютера и вычислительного процесса.
Тем не менее, в большинстве систем процент кэш-попаданий не менее 90 %.
Достигается высокая степень попаданий за счет учета пространственной и временной
локальности данных.
Временная локальность: если произошло обращение по некоторому адресу, то следующее
обращение по тому же адресу с большей вероятностью произойдет в ближайшее время.
13
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Пространственная локальность: если произошло обращение по некоторому адресу, то с
высокой степенью вероятности в ближайшее время произойдет обращение к соседним адресам.
В начале работы системы, когда кэш-память пуста, почти каждый запрос к оперативной
памяти сопровождается кэш-промахом и копированием данных в кэш. Затем, по мере
накопления кэша, в полном соответствии со свойствами временной локальности возрастает
вероятность обращения к данным, которые уже были использованы ранее и имеются в кэше.
Для использования свойства пространственной локальности данных в кэш-память
считывается не один информационный элемент, к которому произошло обращение, а целый
блок данных, расположенных в непосредственной близости к данным этого элемента.
В процессе работы содержимое кэш-памяти постоянно обновляется, данные из нее
вытесняются. Алгоритм обновления данных в кэш-памяти существенно влияет на ее
эффективность. Наличие в компьютере двух копий данных – в основной памяти и в кэше –
порождает проблему их согласования. Если происходит запись в основную память по
некоторому адресу, а содержимое этой ячейки находится в кэше, то в результате
соответствующая запись в кэше становится недостоверной.
Возможны два решения проблемы: сквозная и обратная запись.
Сквозная запись. При каждом запросе к основной памяти, в том числе и при записи,
просматривается кэш. Если данные в кэше отсутствуют, то запись выполняется только в
основную память. Если же данные находятся в кэше, то запись выполняется одновременно в
кэш и основную память. При вытеснении данных из кэша они просто теряются.
Обратная запись. Аналогично при возникновении запроса к памяти выполняется просмотр
кэша. И если данных там нет, то запись выполняется только в основную память. В противном
случае производится запись только в кэш-память, при этом в описателе данных кэша делается
специальная отметка (признак модификации), которая указывает на то, что при вытеснении
этих данных из кэша необходимо переписать их в основную память, чтобы обновить устаревшее
содержимое основной памяти.
При выполнении запросов к оперативной памяти во многих вычислительных системах
используется двухуровневое кэширование. Кэш первого уровня имеет меньший объем и более
высокое быстродействие, чем кэш второго уровня. Кэш второго уровня играет роль основной
памяти по отношению к кэшу первого уровня.
2.3.3. Отображение основной памяти на кэш
Принцип прозрачности требует, чтобы правило отображения основной памяти на кэш-память
не зависело от работы программ и пользователей. Для кэширования используются две
основные схемы отображения: случайное отображение и детерминированное отображение.
При случайном отображении элемент оперативной памяти вместе со своим адресом может
быть размещен в произвольном месте кэш-памяти. При каждом запросе к памяти выполняется
поиск в кэше по адресу искомого элемента методом полного перебора. Так как такой поиск
требует времени, то с целью ускорения его реализуют аппаратно, что удорожает кэш-память.
В такой кэш-памяти вытеснение старых записей происходит лишь при ее полном заполнении.
Обычно вытесняются записи, к которым меньше всего не было обращений.
Детерминированный (прямой) способ отображения предполагает, что любой элемент
основной памяти всегда отображается в одно и то же место кэш-памяти. Между номерами строк
кэш-памяти и адресами основной памяти устанавливается соотношение «один ко многим»:
одному номеру строки соответствует несколько адресов оперативной памяти.
Очевидно, что поиск данных в таком кэше сокращается по времени, однако вытеснение
данных из кэша может происходить, когда в ней достаточно свободного места, т. к. каждая
строка кэша предназначена строго для определенных адресов основной памяти.
Во многих современных процессорах кэш-память строится на основе сочетания этих двух
подходов, что позволяет совместить их достоинства.
При смешанном подходе произвольный адрес оперативной памяти отображается не на
один адрес кэш-памяти и не на любой адрес, а на некоторую группу адресов. Все группы
пронумерованы. Поиск в кэше осуществляется вначале по номеру группы (детерминированно),
14
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
а затем в пределах группы путем просмотра адресов записей. Выгрузка из группы выполняется
лишь при ее переполнении по критерию меньшего обращения.
Таким образом, в данном способе комбинируется прямое отображение на группу и случайное
отображение в пределах группы.
2.4. Управление вводом-выводом
Основными компонентами подсистемы ввода-вывода являются драйверы, управляющие
внешними устройствами, и файловая система.
2.4.1. Контроллеры и драйверы
Каждое устройство ввода-вывода вычислительной системы – диск, принтер, монитор и т. п. –
снабжено специализированным блоком управления, называемым контроллером. Контроллер
взаимодействует с драйвером – системным программным модулем, предназначенным для
управления данным устройством (рис. 2.5).
Рис. 2.5. Взаимодействие устройства ввода-вывода с операционной системой
Устройство, находящееся под управлением контроллера, может некоторое время выполнять
свои операции автономно, не требуя внимания со стороны центрального процессора и
операционной системы.
Даже самый примитивный контроллер, выполняющий простые функции, обычно тратит
довольно много времени на самостоятельную работу после получения очередной команды от
процессора.
Драйвер взаимодействует, с одной стороны, с модулями ядра операционной системы
(модулями подсистемы ввода-вывода, модулями системных вызовов, модулями подсистемы
управления процессами и памятью и т. д.), а с другой стороны – с контроллером внешних
устройств. Поэтому существует два типа интерфейсов: интерфейс «драйвер – ядро» и
интерфейс «драйвер – устройство».
Интерфейс «драйвер – ядро» должен быть стандартным в любом случае, а интерфейс
«драйвер – устройство» имеет смысл стандартизовать, когда подсистема ввода-вывода не
разрешает драйверу непосредственно взаимодействовать с аппаратурой контроллера, а
выполняет эти операции самостоятельно. Драйвер в этом случае становится независимым от
аппаратной платформы.
Для того, чтобы операционная система не испытывала недостатка в драйверах, необходимо
наличие четкого, удобного и открытого интерфейса между драйверами и другими компонентами
операционной системы. Это важно для того, чтобы драйверы писали не только разработчики
ОС, но и производители внешних устройств.
Многослойное построение программного обеспечения, характерное для ОС вообще,
оказывается особенно естественным и полезным при построении подсистем ввода-вывода. При
большом разнообразии устройств ввода-вывода иерархическая структура программного
15
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
обеспечения позволяет соблюсти баланс между двумя противоречивыми требованиями: с одной
стороны, необходимо учесть все особенности каждого устройства, а с другой стороны,
обеспечить единое логическое представление и унифицированный интерфейс для устройств
всех типов.
При этом нижние слои подсистемы ввода-вывода должны включать индивидуальные
драйверы, написанные для конкретных физических устройств, а верхние слои должны
обобщать процедуры управления этими устройствами, представляя общий интерфейс если не
для всех устройств, то, по крайней мере, для групп устройств, обладающих некоторыми общими
характеристиками, например, для принтеров определенного производителя или для всех
матричных принтеров и т. п.
Первоначально под драйвером понимался программный модуль, который:


входит в состав ядра операционной системы, работая в привилегированном режиме;
непосредственно управляет внешним устройством, взаимодействуя с его контроллером с
помощью команд ввода-вывода компьютера;
 обрабатывает прерывания от контроллера устройства;
 предоставляет прикладному программисту удобный логический интерфейс работы с
устройством, экранируя от него низкоуровневые детали управления устройством и организации
его данных;
 взаимодействует с ядром операционной системы с помощью строго оговоренного
интерфейса, описывающего формат передаваемых данных, структуру буферов, способы
включения драйвера в состав ОС, способы вызова драйвера, набор общих процедур подсистемы
ввода-вывода, которыми драйвер может пользоваться, и т. п.
По мере развития операционных систем наряду с традиционными драйверами в
операционной системе появились так называемые высокоуровневые драйверы, которые
располагаются в общей модели подсистемы ввода-вывода над традиционными драйверами.
Традиционные драйверы, которые стали называться аппаратными драйверами,
низкоуровневыми
драйверами
или
драйверами
устройств,
освобождаются
от
высокоуровневых функций и занимаются только низкоуровневыми операциями.
Высокоуровневые драйверы оформляются по тем же правилам, что и аппаратные
драйверы. Единственным отличием является то, что высокоуровневые драйверы, как правило,
не вызываются по прерываниям, т. к. взаимодействуют с управляемым устройством через
посредничество аппаратных драйверов.
Разделение на аппаратные и высокоуровневые драйверы можно продемонстрировать на
примере подсистемы сетевых устройств. Аппаратными драйверами у них являются драйверы
сетевых адаптеров, которые выполняют функции низкоуровневых канальных протоколов
(Ethernet, Frame Relay, ATM и др.). Эти драйверы выполняют простые функции – организуют
передачу кадров данных между компьютерами одной физической сети.
Над ними располагается слой модулей (драйверов), которые реализуют функции более
интеллектуальных сетевых протоколов (IP, IPX), которые могут обеспечить межсетевое
взаимодействие. Над слоем драйверов сетевых протоколов располагается слой драйверов
транспортных протоколов (TCP, UDP, SPX и др.). Еще выше располагается слой драйверов
прикладного уровня, которые предоставляют пользователям сети конечные услуги по доступу к
ресурсам сети.
В подсистеме управления дисками аппаратные драйверы поддерживают для верхних уровней
представление диска как последовательного набора блоков одинакового размера (наиболее
часто размером 512 байт), преобразуя вместе с контроллером номер блока в более сложный
адрес, состоящий из номеров цилиндра, головки и сектора.
Однако такие понятия как «файл» и «файловая система», аппаратные драйверы дисков не
поддерживают – эти удобные для пользователя абстракции создаются на более высоком уровне
программным обеспечением файловых систем, которые в современных ОС также оформляются
как драйвер, только высокоуровневый.
Для унификации представления различных файловых систем в подсистеме ввода-вывода
может использоваться общий драйвер верхнего уровня, играющий роль диспетчера нескольких
драйверов файловых систем. На рис. 2.6 в качестве примера показана структура драйверов
дисковой подсистемы, реализованная в диспетчере VFS (Virtual File System), применяемом в
операционных системах UNIX.
16
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Рис. 2.6. Пример многослойной структуры драйверов дисковой подсистемы
Разнообразие устройств ввода-вывода делает особенно актуальной функцию операционной
системы по созданию экранирующего логического интерфейса между периферийными
устройствами и приложениями. Практически все ОС поддерживают в качестве основного такого
интерфейса файловую модель периферийных устройств, когда любое устройство выглядит для
прикладного программиста последовательным набором байт, с которым можно работать с
помощью унифицированных системных вызовов (например, read и write), задавая имя файлаустройства и смещение от начала последовательности байт.
В подсистемах ввода-вывода для согласования скоростей обмена широко используется
буферизация данных в оперативной памяти. Однако буферизация только на основе
оперативной памяти оказывается недостаточной – разница между скоростью обмена с
оперативной памятью, куда процессы помещают данные для обработки, и скоростью работы
внешнего устройства часто становится слишком значительной, чтобы в качестве временного
буфера использовать оперативную память – ее может просто не хватить. Для таких случаев
часто используют в качестве буфера дисковый файл, называемый спул-файлом.
Типичным примером спулинга является организация вывода данных на принтер. Другим
решением этой проблемы является использование большой буферной памяти в контроллерах
внешних устройств.
2.4.2. Организация внешней памяти на магнитных дисках
Для
организации
внешней
памяти
используются
недорогие,
но
достаточно
быстродействующие и емкие устройства с прямым доступом к данным – накопители на жестких
магнитных дисках (НЖМД) или просто диски. Дисковая подсистема для большинства
компьютеров является одной из важных, поэтому рассмотрим ее подробнее. Именно на
магнитных дисках чаще всего располагается загружаемая в компьютер ОС, которая и
обеспечивает удобный интерфейс для работы.
17
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Из оперативной памяти в НЖМД и обратно данные передаются байтами, а вот записываются
непосредственно на диск и считываются с него они уже последовательно (побитно). Из-за того,
что запись и считывание бита данных не является абсолютно надежными операциями, данные
перед записью кодируЮтся с достаточно большой избыточностью. Для этой цели применяют
коды Рида–Соломона.
Избыточное кодирование информационных данных позволяет не только обнаруживать
ошибки, но и автоматически исправлять их. Следовательно, перед тем как данные, считанные с
поверхности диска, будут переданы в оперативную память, их нужно предварительно
обработать – декодировать. На эту операцию необходимо некоторое время, за которое диск
успевает повернуться на некоторый угол.
Поэтому на диске данные хранятся порциями – кодовыми блоками, имеющими
информационную часть и некоторую проверочную часть. Эти блоки называют секторами
(sectors), имеющими стандартизованный размер информационной части 512 байт.
При фиксированном положении головки секторы образуют дорожку (трек – track). Дорожки и
секторы создаются в результате выполнения процедуры физического или низкоуровневого
форматирования диска, предшествующего использованию диска (при производстве диска).
Группы дорожек одного радиуса, расположенные на поверхностях дисков образуют
цилиндры (cylinders). Выбор конкретной дорожки в цилиндре осуществляется указанием
головки (head) записи-считывания. Таким образом, адрес конкретного блока данных ранее
указывался с помощью трех координат C - H - S – номеров цилиндра, головки и сектора
(рис. 2.7).
Рис. 2.7. Структура размещения данных на диске
Сейчас применяют другой метод адресации, при котором все секторы просто пронумерованы
– спецификация LBA (Logical Block Addressing).
Для структуризации данных на магнитном диске полезно поделить все дисковое пространство
на разделы (partitions). Такое деление позволяет организовать на одном физическом
устройстве несколько логических устройств (логических дисков). Причем на каждом разделе
может быть организована своя файловая система.
Если на компьютере необходимо иметь несколько операционных систем, то каждую ОС
желательно устанавливать в разные разделы, а, например, операционной системе Linux нужно
иметь не менее двух разделов, поскольку файл подкачки (страничный файл) должен
располагаться в отдельном разделе.
Структура данных, несущая информацию о логической организации диска, вместе с
небольшой программой, с помощью которой можно ее проанализировать, а также найти и
загрузить в оперативную память программу загрузки ОС, получила название главной
загрузочной записи (Master Boot Record, MBR).
18
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
MBR располагается в самом первом секторе диска, т. е. в секторе с координатами 0-0-1.
Программа, расположенная в MBR, носит название внесистемного загрузчика.
Так как сектор состоит всего из 512 байт и кроме программы в нем должна располагаться
информация об организации диска, то внесистемный загрузчик прост, а структура данных,
называемая таблицей разделов (Partition Table), занимает всего 64 байт. Таблица разделов
содержит всего четыре элемента (строки) по 16 байт.
Каждый элемент таблицы описывает один раздел двумя способами: через координаты C - H S начального и конечного секторов, а также через номер первого сектора в спецификации LBA
и общее число секторов в разделе (табл. 2.1).
Таблица 2.1
Формат элемента таблицы разделов
Название записи элемента таблицы разделов
Длина,
байт
Флаг активности раздела
1
Номер головки начала раздела
1
Номер сектора и цилиндра загрузочного сектора раздела
2
Кодовый идентификатор операционной системы
1
Номер головки конца раздела
1
Номер сектора и цилиндра последнего сектора раздела
2
Младшие и старшие двухбайтовые слова относительного номера начального
сектора по спецификации LBA
4
Младшие и старшие двухбайтовые слова размера раздела в секторах
4
Активным (128(80 h) – активен, 0 – не активен) может быть только один раздел – он
является системным загрузчиком, и процесс загрузки ОС осуществляется путем загрузки его
первого сектора и передачи управления на расположенную в нем программу, которая и
продолжает загрузку.
Кодовый идентификатор операционной системы указывает на принадлежность данного
раздела к той или иной ОС и на установку в этом разделе соответствующей файловой системы.
Если таблица разделов повреждена, то не будет загружаться ни одна установленная на
компьютере операционная система.
Разделы диска могут быть двух типов: первичные и расширенные.
Первичные (primary), или простейшие (примитивные), разделы нельзя разбить на
логические диски. Поэтому, если создавать только первичные разделы, то их будет всего
четыре. И только один из них может быть активным. Причем для DOS -систем, Windows 9 x и
еще некоторых операционных систем остальные первичные разделы в этом случае считаются
невидимыми. Поэтому с помощью DOS утилиты fdisk можно создать только один первичный
раздел.
Расширенный (extended) раздел на диске может быть только один, но его можно разбить на
большое количество логических дисков (рис. 2.8).
19
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Рис. 2.8. Пример разбиения диска на разделы
Расширенный раздел содержит вторичную запись MBR (Secondary MBR, SMBR), в состав
которой вместо таблицы разделов входит аналогичная ей таблица логических дисков. Эта
таблица описывает размещение и характеристики единственного логического диска, а также
может указывать на следующую запись SMBR (следующего логического диска) и т. д.
Важно отметить, что каждый раздел начинается с первого сектора на заданных цилиндре и
поверхности (головке) и имеет размер не менее одного цилиндра.
Поэтому на нулевой дорожке нулевой поверхности кроме первого сектора с MBR остальные
секторы не используются.
В настоящее время для формирования таблиц разделов кроме уже упоминавшейся утилиты
fdisk широко используются другие программы с графическим интерфейсом, в частности –
Partition Magic. В составе ОС Windows 2000/XP для этой цели имеется консоль управления с
оснасткой Управление дисками.
Следует отметить, что в операционной системе Linux логические диски и разделы нумеруются
и обозначаются иным способом, чем в ОС Windows. Жесткий диск с IDE-интерфейсом,
подключенный к первому порту как главный (master), имеет имя hda. Второй диск на этом же
шлейфе – hdb. Далее – hdc и т. д. Разделы дисков обозначаются по номерам элементов
таблицы разделов. Таким образом, независимо от того, сколько создано первичных разделов (от
20
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
одного до четырех), номер первого логического диска в расширенном разделе будет пять,
второго – шесть и т. д.
Операционные системы семейства Windows NT имеют возможность загружать не одну
операционную систему, а несколько, т. е. системный загрузчик Windows NT /2000/ XP является
менеджером загрузки. Для указания установленных ОС и выбора одной из них используется
файл boot.ini. Этот файл является текстовым. Он обрабатывается программой ntldr, которая и
является системным загрузчиком и на которую передается управление из внесистемного
загрузчика.
Следует заметить, если на компьютере необходимо установить не одну операционную
систему, то вначале желательно инсталлировать более старый вариант ОС, а затем – более
современный. Например, при установке на один компьютер операционных систем Windows 98 и
Windows 2000 сначала следует установить Windows 98, а затем – Windows 2000. При установке
на один компьютер Windows 2000 и Windows ХР сначала желательно установить Windows 2000,
а затем – Windows XP. Иначе могут возникнуть проблемы с работоспособностью ранее
установленной системы. В частности, операционная система Windows ХР перестанет
загружаться после установки на этот же компьютер Windows 2000, т. к. последняя из
установленных систем заменяет системный загрузчик – программу ntldr на первичном
системном разделе (диске С), а старая версия этой программы не знает особенности загрузки
новой ОС.
Если все же такая задача возникла, то перед инсталляцией операционной системы Windows
2000 на компьютер, где уже стоит Windows ХР, необходимо сохранить где-нибудь вариант
программы ntldr, созданной операционной системой Windows ХР, и заменить ее после
установки Windows 2000. (Чтобы правильно отображалась кириллица из файла boot.ini,
аналогично следует заменить и файл Bootfont.bin, сохранив его перед установкой Windows
2000, а также желательно восстановить модернизированный файл Ntdetect.com.
2.4.3. Файловые системы и системы управления файлами
Для удобства работы пользователю с данными операционная система подменяет физическую
структуру хранящихся данных некоторой логической моделью, которая материализуется в виде
дерева каталогов, отображаемого на мониторе специальными утилитами типа Windows
Explorer или Norton Commander. Базовым элементом этой модели является файл.
Следует напомнить, что файл – это именованный набор байт, расположенный в области
внешней памяти, в которую можно записывать и из которой можно считывать данные.
Для управления данными на диске создаются файловые системы, которые определяют
способ организации данных на диске или на каком-нибудь ином носителе.
Специальное системное программное обеспечение, реализующее работу с файлами по
принятым спецификациям файловой системы, часто называют системой управления
файлами. Именно система управления файлами в ОС отвечает за создание, уничтожение,
организацию, чтение, запись, модификацию и перемещение файловой информации, а также за
управление доступом к файлам. Система управления файлами не существует сама по себе – она
разрабатывается для работы с конкретной операционной системой.
Таким образом, термин "файловая система" определяет, прежде всего, принципы доступа к
данным, организованным в файлы. Этот же термин используют и по отношению к конкретным
файлам, расположенным на том или ином носителе данных.
Термин "система управления файлами" следует употреблять по отношению к конкретной
реализации файловой системы, т. е. – это комплекс программных модулей, обеспечивающих
работу с файлами в конкретной операционной системе.
Файловые системы поддерживают несколько функционально различных типов файлов:
обычные файлы, файлы-каталоги, специальные файлы и др.
Обычные файлы или просто файлы, содержат данные произвольного характера, которые
заносит в них пользователь или которые образуются в результате работы системных и
пользовательских программ.
21
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Файлы-каталоги, в дальнейшем просто каталоги, содержат информацию о данных,
организованных в виде файлов. Другими словами, в каталоге должны содержаться
дескрипторы файлов.
Специальные файлы – это фиктивные файлы, ассоциированные с устройствами вводавывода, которые используются для унификации механизма доступа к файлам и внешним
устройствам (применяются в операционных системах UNIX).
Операционная система при работе с диском использует собственную единицу дискового
пространства, называемую кластером (cluster).
Логическое объединение дисковых секторов в кластеры происходит при создании файловой
системы с целью уменьшения возможной фрагментации файлов и ускорения доступа к ним.
Разметку диска под конкретный тип файловой системы выполняют процедуры
высокоуровневого,
или
логического,
форматирования.
При
высокоуровневом
форматировании определяется размер кластера и на диск записывается информация,
необходимая для работы файловой системы, в том числе:



информация о доступном и неиспользуемом пространстве;
о границах областей, отведенных под файлы и каталоги;
информация о поврежденных областях.
Кроме того, на диск записывается загрузчик ОС – небольшая программа, которая начинает
процесс инициализации операционной системы после включения питания или рестарта
компьютера.
На каждом разделе диска и логическом диске может создаваться только одна файловая
система. При этом на разных логических дисках одного физического диска могут располагаться
файловые системы разного типа.
Все разделы одного физического диска после низкоуровневого форматирования имеют
одинаковый размер блока, записываемого в один сегмент, и, как правило, равного 512 байт.
Однако в результате высокоуровневого форматирования в разных разделах одного и того же
диска могут быть установлены файловые системы, в которых кластеры имеют разные размеры.
2.5. Современные файловые системы
В настоящее время существует большое количество файловых систем, но наибольшее
распространение в персональных компьютерах получили FAT и NTFS благодаря их применению
в семействе операционных систем Windows.
2.5.1. Файловая система FAT
Структура логического раздела (логического диска), отформатированного под файловую
систему FAT (File Allocation Table – таблица размещения файлов), представлена на рис. 2.9.
22
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Рис. 2.9. Структура файловой системы FAT на логическом диске
Структура логического диска состоит из следующих областей:
 загрузочный сектор содержит программу начальной загрузки ОС; вид этой программы
зависит от типа ОС, которая будет загружаться с этого раздела;
 основная копия FAT содержит информацию о размещении файлов и каталогов по
кластерам на диске в области данных;
 резервная копия FAT;
 корневой каталог занимает фиксированную область размером в 32 сектора (16 Кбайт),
что позволяет хранить 512 записей о файлах и каталогах, т. к. каждая запись каталога состоит
из 32 байт;
 область данных измеряется в кластерах и предназначена для размещения всех файлов
и всех каталогов, кроме корневого каталога.
В таблице FAT количество индексных указателей соответствует количеству кластеров в
области данных, а номер индексного указателя равен номеру соответствующего кластера.
Индексный указатель имеет ограниченный размер (в частности: 12 бит в FAT 12, 16 бит в FAT
16 и 32 бит в FAT 32) и может принимать значения, представленные для FAT 16 в табл. 2.2.
23
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Таблица 2.2
Значение индексных указателей таблицы FAT 16
Значение
0000 h
FFF0h – FFF6h
FFF7h
Описание
Свободный кластер
Зарезервированный кластер
Дефектный кластер
FFF8h – FFFFh
Последний кластер в цепочке
0002h – FFEFh
Номер следующего кластера в цепочке
Таблица FAT является общей для всех файлов раздела. После форматирования все
индексные указатели (ячейки таблицы FAT) принимают значение 0000 h – «кластер свободен»
(кроме дефектных и зарезервированных).
При размещении на диске файла операционная система просматривает таблицу FAT и ищет
первый свободный индексный указатель. После его обнаружения в поле записи каталога
«номер первого кластера» фиксируется номер этого указателя. В кластер с этим номером
записываются данные файла, и он становится первым кластером файла. Если файл умещается в
одном кластере, то в указатель, соответствующий данному кластеру, заносится значение
«последний кластер в цепочке».
Если же размер файла превышает один кластер, то операционная система продолжает
просмотр таблицы FAT и ищет следующий указатель на свободный кластер. После его
обнаружения в предыдущий указатель заносится номер этого кластера, который теперь
становится следующим кластером файла. Процесс продолжается до тех пор, пока не будут
размещены все данные файла. Таким образом создается цепочка связанных кластеров файла.
Размер индексных указателей определяет количество кластеров. Например, в FAT 12
используются 12-битные указатели, поэтому возможно иметь только 212 = 4096 кластеров в
области данных диска, в FAT 16 – 216 = 65 536 кластеров и в FAT 32 – более четырех
миллиардов кластеров.
Так как количество кластеров ограничено, то размер кластера зависит от объема логического
диска и обычно выбирается из диапазона от 1 до 128 секторов (от 512 байт до 64 Кбайт). Для
уменьшения потерь из-за фрагментации желательно кластеры делать небольшими, а для
сокращения объема адресной информации и повышения скорости обмена наоборот – чем
больше, тем лучше.
Форматирование FAT 12 обычно используется для гибких дисков. Файловую систему FAT 16
целесообразно использовать для дисков с объемом до 512 Мбайт (несмотря на то, что эта
файловая система позволяет иметь максимальный раздел логического диска до 4 Гбайт), чтобы
размер кластера не превышал 8 Кбайт.
Для больших дисков до 32 Гбайт лучше подходит файловая система FAT 32, которая способна
использовать кластеры 4 Кбайт при работе с логическими дисками объемом до 8 Гбайт или
кластеры 8 Кбайт для дисков от 8 до 16 Гбайт.
Дальнейшее увеличение объема логического диска приводит к дальнейшему увеличению
размера кластера (16 Кбайт или 32 Кбайт) и потерь за счет неполноты заполнения последнего
кластера файла.
Поскольку файлы на диске изменяются, то правило выделения первого свободного кластера
для новой порции данных приводит к фрагментации файлов, т. е. данные одного файла могут
располагаться не в смежных кластерах, образуя сложные цепочки.
Таблица FAT загружается в оперативную память, причем, если позволяет место, то
полностью. В связи важностью таблицы FAT она хранится на диске в двух экземплярах.
Обновляются обе таблицы одновременно, а используется только основная таблица. Если
основная таблица окажется разрушенной, то произойдет обращение к резервному экземпляру.
Например, утилита ScanDisk из ОС Windows 9 x при обнаружении несоответствия основной и
резервной таблиц предлагает восстановить главную таблицу, используя данные из копии.
24
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Понятие «файл» для файловой системы включает не только имя и хранимые в выделенных
кластерах данные, но и атрибуты – свойства файла. Поэтому в каталогах файловой системы для
каждого файла выделяется запись (строка) размером 32 байта, в которой в FAT 16 и FAT 12
указываются следующие данные:








имя файла – 8 символов (8 байт);
расширение файла – 3 символа (3 байта);
атрибуты файла (1 байт) – архивный, скрытый, системный, только для чтения;
резерв – 10 байт;
время последней записи (2 байта);
дата последней записи (2 байта);
номер начального кластера (2 байта);
размер файла в байтах (4 байта).
В FAT 32 для номера начального кластера выделено 4 байта и вместо резервной области
добавлены следующие атрибуты:



время создания файла (2 байта);
дата создания файла (2 байта);
дата последнего доступа (2 байта).
Корневой каталог отличается от обычного файла-каталога тем, что он помимо размещения в
фиксированном месте логического диска (см. рис. 2.9) имеет еще и фиксированное число
записей – 512.
Раньше в ОС использовались лишь короткие имена файлов по схеме «8.3». Начиная с
Windows 95 OSR 2 файловые системы FAT 16 стали поддерживать длинные имена файлов
размером до 255 символов, причем каждый символ хранится в двухбайтном формате Unicode.
Имя по схеме «8.3» стали называть «коротким именем» и оно по-прежнему хранится в
первых 11 байтах записи каталога (для совместимости со старыми приложениями), а длинное
имя помещается порциями по 13 символов в одну или несколько записей, следующих
непосредственно за основной записью каталога.
2.5.2. Файловая система NTFS
Файловая система NTFS (New Technology File System – файловая система новой технологии)
была разработана в качестве основной файловой системы для операционных систем Windows на
основе технологии NT в начале 1990-х гг. с учетом опыта разработки существовавших
файловых систем и предназначалась в первую очередь для серверов.
Основные отличительные свойства NTFS:
 поддержка больших файлов и больших дисков объемом до 264 байт, т. к.
используется 64-битная нумерация кластеров;
 надежность – за счет введения средств самовосстановления после сбоев программ и
аппаратуры управления дисками (в начале операции, связанной с изменением файловой
структуры, делается соответствующая запись в журнале транзакций и если после сбоя операция
помечена как незавершенная, то происходит откат – незавершенные операции отменяются и
файлы возвращаются в исходное состояние);
 высокая скорость операций – за счет использования в качестве базовой единицы
распределения дискового пространства непрерывных областей кластеров, называемых
отрезками; при этом в качестве адреса отрезка используется логический номер его первого
кластера, а также количество кластеров в отрезке;
 ограничение доступа к файлам и каталогам на основании разрешений, которые
устанавливаются для учетных записей пользователей;
 расширенные функции, например квотирование (в Windows 2000/XP), при котором
пользователи могут хранить свои файлы только в пределах отведенной им квоты на дисковое
пространство.
Отличием NTFS является деление на кластеры всего пространства логического диска,
называемого томом, а не только области данных, как в FAT. Порядковый номер кластера в томе
называется логическим номером кластера (Logical Cluster Number, LCN). Файловая система
NTFS поддерживает размеры кластеров от 512 байт до 64 Кбайт (от 1 до 128 секторов). Обычно
используется кластер размером 2 Кбайт или 4 Кбайт.
25
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
В отличие от FAT весь том состоит из файлов. Каждый файл также состоит из
последовательности кластеров, при этом порядковый номер кластера внутри файла называется
виртуальным номером кластера (Virtual Cluster Number, VCN).
Базовой единицей распределения дискового пространства на томе NTFS является отрезок –
непрерывная область кластеров. Каждый отрезок обозначается логическим номером его
первого кластера LCN и количеством кластеров в отрезке k, т. е. парой чисел: LCN, k. Часть
файла, начинающаяся с виртуального кластера VCN, при размещении в отрезке
характеризуется адресом, состоящим их трех чисел: VCN, LCN, k.
Основной структурой файловой системы NTFS является файл MFT, называемый главной
таблицей файлов (Master File Table, MFT), в которой содержатся записи о каждом файле тома,
включая и сам файл MFT.
Под файл MFT на диске выделяется 12 % места (с учетом дальнейшего роста таблицы
файлов).
Каждая запись MFT имеет фиксированную длину, зависящую от объема диска, – 1, 2, или
4 Кбайт. Для большинства дисков, используемых сегодня, размер записи MFT равен 2 Кбайтам.
Номер записи MFT, определяемый ее позицией в таблице, становится номером описываемого
файла.
Первые 16 записей являются записями о служебных файлах NTFS, называемых
метафайлами, причем самый первый метафайл – это сам файл MFT. В табл. 2.3 представлено
назначение метафайлов.
Часть тома с записями метафайлов – единственная часть логического диска, имеющая строго
фиксированное положение, и образует первый отрезок на томе. Копия этих же 16 записей MFT
(для надежности) хранится в середине тома. Оставшаяся часть файла MFT может располагаться,
как и любой другой файл, в произвольных местах диска – восстановить его положение можно с
помощью первой записи MFT.
Таблица 2.3
Метафайлы NTFS
Назначение служебного файла
Номер
записи
Имя
файла
0
Главная таблица файлов
1
Копия первых 16 записей таблицы, размещенных посередине тома
$MftMirr
2
Файл журнала транзакций – используется для восстановления файловой
системы после сбоя
$LogFile
3
Информация о томе – метка тома, версия NTFS и др.
$Volume
4
Таблица стандартных атрибутов файлов на томе
$AttrDef
5
Корневой каталог
6
Битовая карта свободных кластеров на томе (1/0 – на кластер)
7
Адрес загрузочного сектора (если раздел загрузочный) – располагается в
первом секторе тома
8
Файл плохих кластеров
9
Таблица квот – квоты используемого пространства на диске для каждого
пользователя
$Quota
Таблица преобразования символов в именах файлов в кодировке Unicode
$Upcase
10
11-15
$ Mft
$
$Bitmap
$Boot
$BadClus
Зарезервировано для будущего использования
26
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Каждый файл и каталог на томе NTFS состоит из набора атрибутов, к которым относятся и
имя файла, и его данные. Существуют два способа хранения атрибутов файла – резидентное
хранение в записях таблицы MFT и нерезидентное хранение – вне ее, во внешних отрезках.
Файлы NTFS в зависимости от способа размещения делятся на:




небольшие;
большие;
очень большие;
сверхбольшие.
Небольшие файлы. Если файл имеет небольшой размер (несколько сот байт), то он может
целиком располагаться внутри одной записи MFT.
Такие файлы состоят из следующих атрибутов (рис. 2.10):




стандартная информация (SI) – время создания файла, время обновления и т. п.;
имя файла (FN);
данные (Data);
дескриптор безопасности (SD – security descriptor) – информация о правах доступа к
файлу пользователей.
Рис. 2.10. Структура небольшого файла на томе NTFS (в записи MFT)
Большие файлы. Если данные файла не помещаются в одну запись MFT, то этот факт
отражается в заголовке атрибута Data, который указывает на нерезидентное хранение данных,
а сам атрибут Data содержит адресную информацию (VCN, LCN, k) каждого отрезка данных
(рис. 2.11).
Рис. 2.11. Структура большого файла на томе NTFS
Таким образом, для размещения большого файла используется одна запись в таблице MFT и
некоторое количество отрезков кластеров вне таблицы MFT.
27
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Очень большие файлы. Формируются, если в атрибуте Data недостаточно места для
размещения всей адресной информации об отрезках с данными файла. В этом случае атрибуту
Data выделяется целиком другая запись (строка) таблицы MFT, а ее номер указывается в
первой записи в специальном атрибуте (AL) (рис. 2.12).
Рис. 2.12. Структура очень большого файла на томе NTFS
Сверхбольшие файлы. Формируются в том случае, если атрибут Data, хранящий адреса
нерезидентных отрезков данных, не помещается в одной отдельной записи MFТ. Номера всех
занятых записей указываются в первой записи файла в атрибуте AL (Attribute List – список
атрибутов).
Каждый каталог на томе NTFS тоже является файлом, у которого вместо атрибута Data
имеется атрибут IR (Index Root – корень индекса), в котором хранятся имена файлов с
соответствующими номерами записей в таблице MFT. Каталоги, как и обычные файлы, могут
быть небольшими, целиком помещающиеся в одной записи MFT, и большие, использующие для
хранения атрибутов файлов нерезидентные отрезки кластеров.
2.5.3. Особенности файловых систем, используемых в UNIX
Файловая система в UNIX-системах выполняет больше функций, чем в других операционных
системах.
Во-первых, в нее интегрированы все устройства ввода-вывода.
Во-вторых, каждый файл (в том числе каждый каталог и устройство ввода-вывода) имеет
персональный индексный дескриптор и может иметь несколько имен.
Следует отметить, что в UNIX-системах вместо термина "кластер" используют термин "блок".
Рассмотрим общую структуру файловых систем UNIX на примере файловой системы ufs.
В расположении файловой системы на диске следует выделить четыре области:


загрузочный блок;
суперблок, который содержит самую общую информацию о файловой системе: размер
файловой системы, размер области индексных дескрипторов, число индексных дескрипторов,
список свободных блоков (кластеров) и список свободных индексных дескрипторов, а также
другую административную информацию;
 область индексных дескрипторов, в которой порядок расположения индексных
дескрипторов соответствует их номерам;
28
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
 область данных, в которой расположены как обычные файлы, так и файлы-каталоги, в
том числе и корневой каталог; специальные файлы (ассоциированные с устройствами вводавывода) представлены в файловой системе только записями в соответствующих каталогах и
индексными дескрипторами специального формата, но места в области данных не занимают.
Основной особенностью организации файловой системы, применяемой в UNIX, является
отделение имени файла от его характеристик, хранящихся в отдельной структуре, называемой
индексным дескриптором.
Каждый индексный дескриптор имеет номер, который одновременно является уникальным
именем файла в файловой системе и выделяется файлу из числа свободных номеров при
создании файла на диске.
Запись о файле в каталоге состоит всего из двух полей: символьного имени файла и номера
индексного дескриптора. Следовательно, один номер индексного дескриптора (т. е. один
реальный файл) может соответствовать различным символьным именам этого файла. Файл
удаляется из системы и его дескриптор освобождается лишь после удаления его последнего
символьного имени.
Индексный дескриптор файла содержит следующие данные о файле:




идентификатор владельца файла;
тип файла (обычный, каталог, специальный, конвейер, символьная связь);
временные характеристики: время последней модификации файла и т. п.;
число ссылок на данный индексный дескриптор, равный количеству псевдонимов
(символьных имен) файла;
 адресная информация – расположение частей файла по блокам (кластерам) в области
данных диска;
 размер файла в байтах.
В файловой системе ufs имена файлов могут иметь длину до 255 символов.
В настоящее время бурно развивается направление UNIX-систем, получивших название по
имени создателя (Линус Торвальдс) – Linux. В различных вариантах этой операционной
системы используются файловые системы ext 2 fs (Second Extended File System) и ext3fs,
являющиеся дальнейшим развитием ufs.
2.6. Доступ к разделяемым ресурсам
Существуют различные виды ресурсов, с которыми пользователи работают в режиме
совместного использования. Во всех случаях действует общая схема: пользователи пытаются
выполнить с разделяемым ресурсом определенные операции, а операционная система должна
решать, имеют ли пользователи на это право.
2.6.1. Механизм контроля доступа
При организации доступа к разделяемым ресурсам обычно считают, что пользователи
являются субъектами доступа, а разделяемые ресурсы – объектами.
Пользователи осуществляют доступ к объектам операционной системы не непосредственно, а
с помощью прикладных процессов, которые запускаются от его имени.
Для каждого типа объектов существует набор операций, которые с ними можно выполнять.
Например, для файлов – это операции чтения, записи, удаления, выполнения; для принтера –
перезапуск, очистка очереди документов, приостановка печати документа и т. д.
Система контроля доступа ОС должна предоставлять средства для задания прав
пользователей по отношению к объектам дифференцированно по операциям, например,
пользователю может быть разрешена операция чтения и выполнения файла, а операция
удаления файла запрещена.
Во многих операционных системах реализованы механизмы, которые позволяют управлять
доступом к объектам различного типа с единых позиций. Так, представление устройств вводавывода в виде специальных файлов в операционных системах UNIX является примером такого
29
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
подхода: в этом случае при доступе к устройствам используются те же атрибуты безопасности и
алгоритмы, что и при доступе к обычным файлам.
Еще дальше продвинулись в этом направлении операционные системы Windows на основе
технологии NT. В этих операционных системах используется унифицированная структура –
объект безопасности, которая создается не только для файлов и внешних устройств, но и для
любых разделяемых ресурсов: секций памяти и т. п. Это позволяет использовать в
операционной системе для контроля доступа к ресурсам любого вида общий модуль ядра –
менеджер безопасности.
В качестве субъектов доступа могут выступать как отдельные пользователи, так и группы
пользователей.
Определение индивидуальных прав доступа для каждого пользователя позволяет
максимально гибко задать политику расходования разделяемых ресурсов в вычислительной
системе. Однако этот способ приводит в больших системах к чрезмерной загрузке
администратора рутинной работой по повторению одних и тех же операций для пользователей с
одинаковыми правами.
Объединение пользователей, имеющих одинаковые права доступа, в группу и задание прав
доступа в целом для группы является одним из основных приемов администрирования в
больших системах.
У каждого объекта доступа существует владелец, который может быть как отдельным
пользователем, так и группой пользователей. Владелец объекта имеет право выполнять с ним
любые допустимые для данного объекта операции.
Во многих операционных системах существует особый пользователь (superuser, root,
administrator, администратор), который имеет все права по отношению к любым объектам
системы, не обязательно являясь их владельцем.
Каждый пользователь и каждая группа пользователей обычно имеют символьное имя
(часто называемое логином), назначаемое администратором, а также уникальный числовой
идентификатор (ID), присваиваемый им операционной системой.
При выполнении процедуры логического входа в систему пользователь сообщает свое
символьное имя и пароль, а операционная система определяет соответствующие числовые
идентификаторы пользователя и групп, в которые он входит. Все идентификационные данные,
в том числе имена и идентификаторы пользователей и групп, пароли пользователей, а также
сведения о вхождении пользователя в группы хранятся в специальном файле (файл
/etc/passwd в UNIX) или в специальной базе данных (в Windows семейства NT).
В общем случае права доступа могут быть описаны матрицей прав доступа, в которой
столбцы соответствуют всем ресурсам системы, а строки – всем пользователям. На пересечении
строк и столбцов указываются разрешенные операции (см. табл. 2.4).
Таблица 2.4
Пример матрицы прав доступа к файлам
Пользователи
Файлы
file1.txt
file2.exe
file3.doc
file5.txt
user1
читать
выполнять
читать
читать
user2
читать
выполнять
user3
читать
–
user4
читать
–
писать
…
30
читать
удалять
читать
читать
удалять
–
–
–
…
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Практически во всех операционных системах матрица прав доступа хранится «по частям»,
т. е. для каждого файла или каталога создается так называемый список управления
доступом (Access Control List, ACL), в котором описываются права на выполнение операций
пользователей и групп пользователей по отношению к этому файлу и каталогу.
Список управления доступом является частью характеристик файла или каталога и хранится
в соответствующей области, например, в дескрипторе безопасности (SD) файловой системы
NTFS.
Не все файловые системы поддерживают списки управления доступом, например, его не
поддерживает файловая система FAT, т. к. она разрабатывалась для однопользовательской
однопрограммной операционной системы MS
DOS, для которой задача защиты от
несанкционированного доступа была не актуальна.
Обобщенно формат списка управления доступом можно представить в виде набора
идентификаторов пользователей и групп пользователей, в котором для каждого
идентификатора указывается набор разрешенных операций над объектом. Говорят, что список
ACL состоит из элементов управления доступом (Access Control Element, ACE), при этом
каждый элемент соответствует одному идентификатору.
Список ACL с добавленным к нему идентификатором владельца называют характеристиками
безопасности.
На рис. 2.13 представлен пример проверки прав доступа некоторого процесса, запущенного
от имени пользователя с ID = 3 и являющегося членом ряда групп (с ID = 14, ID = 52 и ID =
72), к файлу, имеющему определенный ACL.
Рис. 2.13. Проверка прав доступа к файлу
В приведенном примере файлом владеет пользователь с идентификатором 17. Операционная
система, получив запрос на запись, находит характеристики безопасности файла (на диске или
в буферной системной памяти) и последовательно сравнивает все идентификаторы процесса с
идентификаторами пользователей и групп в элементах ACE.
В данном примере идентификатор группы 2 (ID = 52), от имени которой выступает процесс,
совпадает с идентификатором одного из элементов ACE. Поэтому операционная система
разрешает процессу выполнить операцию «запись» – W.
31
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
2.6.2. Организация контроля доступа в операционных системах
Windows 2000/ XP
Описанный выше обобщенный механизм доступа к ресурсам имеет в каждой операционной
системе свои особенности.
Система управления доступом в ОС Windows 2000/ XP отличается высокой степенью
гибкости, которая достигается за счет большого разнообразия субъектов и объектов доступа, а
также детализации операций доступа.
Для разделяемых ресурсов в Windows 2000/ XP применяется общая модель объекта, который
содержит такие характеристики безопасности, как набор допустимых операций, идентификатор
владельца, список управления доступом. Объекты создаются для любых ресурсов в том случае,
когда они становятся разделяемыми. Характеристики объектов делятся на две части – общую
часть, состав которой не зависит от типа объекта, и индивидуальную, определяемую типом
объекта.
Для системы безопасности ОС Windows на основе технологии NT характерно наличие
большого количества встроенных субъектов доступа – как отдельных пользователей
(Администратор, Гость), так и групп (Администраторы, Гости, Пользователи, Опытные
пользователи, Операторы архива и др.). Смысл этих встроенных пользователей и групп
состоит в том, что они наделены некоторыми правами, облегчая администратору работу по
созданию эффективной системы разграничения доступа.
При добавлении нового пользователя администратору остается только решить, к какой
группе или группам отнести этого пользователя. При этом администратор может создавать
новые группы, а также добавлять права к встроенным группам для реализации собственной
политики безопасности, но во многих случаях встроенных групп вполне достаточно.
В операционных системах Windows 2000/ XP реализованы три класса операций доступа,
которые отличаются типом субъектов и объектов, участвующих в этих операциях.

Права – определяются для субъектов типа группа на выполнение некоторых системных
операций: установку системного времени, архивирование файлов, дефрагментацию
диска, выключение компьютера и т. п. В этих операциях участвует особый объект
доступа – операционная система в целом. Именно права отличают одну встроенную
группу пользователей от другой. Некоторые права у встроенной группы являются также
встроенными – их у данной группы нельзя удалить. Остальные права встроенной группы
можно удалять или добавлять.
 Возможности пользователей определяются для отдельных пользователей или групп на
выполнение действий, связанных с формированием их операционной среды, например,
изменение состава главного меню программ, возможность пользоваться пунктом меню
Выполнить и т. п. За счет уменьшения набора возможностей, которые по умолчанию
доступны пользователю, администратор может «заставить» пользователя работать с той
операционной средой, которую администратор считает наиболее подходящей и
ограждающей пользователя от возможных ошибок. Реализуются возможности, как
правило, в домене при помощи механизма групповых политик безопасности.
 Разрешения – это множество операций, которые могут быть определены для субъектов
всех типов по отношению к объектам любого типа. Разрешения предоставляются и
аннулируются владельцем объекта (или администратором). Разрешения доступа к
файлам и каталогам реализуются операционной системой только при использовании
файловой системы NTFS.
Права и разрешения, данные группе, автоматически предоставляются ее членам, позволяя
администратору рассматривать большое количество пользователей как единицу учетной
информации и минимизировать свои действия.
Возможности в виде групповых политик безопасности распространяются только на
специальные организационные единицы – подразделения, в состав которых могут входить как
пользователи, так и компьютеры. На группы пользователей действие групповых политик
безопасности не распространяется. Групповая политика для пользователя определяет его
возможности работы на рабочих станциях домена. Групповая политика для компьютера
определяет возможности работы на нем пользователей домена.
32
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Групповая политика безопасности состоит из набора параметров безопасности. Конкретный
параметр безопасности может реализовывать одну из трех политик: политика включена,
политика отключена и политика не задана.
Подразделения с разными групповыми политиками безопасности можно вкладывать друг в
друга. При этом параметры безопасности, заданные в групповой политике внутренней
(дочерней)
организационной
единицы,
переопределяют
соответствующие
параметры
безопасности внешнего подразделения (кроме параметров, для которых в групповой политике
дочернего подразделения политика не задана).
Разрешения на доступ к файлам и каталогам при использовании файловой системы NTFS
бывают индивидуальные и основные. Индивидуальные разрешения относятся к
элементарным операциям над файлами и каталогами, а основные разрешения являются
объединением нескольких индивидуальных разрешений.
На рис. 2.14 приведен интерфейс утилиты назначения основных разрешений пользователям
и группам пользователей на примере каталога wincmd.
Рис. 2.14. Интерфейс назначения разрешений на файлы и каталоги
Следует отметить существование в операционной системе групп пользователей SYSTEM и
СОЗДАТЕЛЬ-ВЛАДЕЛЕЦ, которых нет в явном виде в числе локальных пользователей и групп
пользователей в консоли Управление компьютером, но для которых тоже можно задать
набор разрешений.
В файловой системе NTFS версии 5, используемой в операционных системах Windows 2000/
XP, имеется 6 основных разрешений на каталог и 5 основных разрешений на файл.
В табл. 2.5 приведены наборы индивидуальных разрешений для всех вариантов основных
разрешений.
33
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Таблица 2.5
Соответствие основных и индивидуальных разрешений
Основные разрешения
Индивидуальные
разрешения
Полный
доступ
Изменение
Чтение и
выполнение
Список
содержимого
папки
Обзор
папок/
Выполнение файлов
+
+
+
+
Содержание
Чтение данных
+
+
+
+
+
Чтение атрибутов
+
+
+
+
+
Чтение дополнительных
атрибутов
+
+
+
+
+
Создание файлов/ Запись
данных
+
+
+
Создание
Дозапись данных
+
+
+
Запись атрибутов
+
+
+
Запись дополнительных
атрибутов
+
+
+
Удаление
файлов
+
папок/
папок/
подпапок
и
Удаление
+
+
Чтение разрешений
+
+
Смена разрешений
+
Смена владельца
+
+
+
Чтение Запись
+
+
Доступ к основным разрешениям осуществляется с помощью закладки Безопасность в
свойствах файла или каталога (см. рис. 2.14).
Каждое из основных разрешений может быть в явном виде разрешено или запрещено. Если
разрешение не отмечено как разрешенное или запрещенное, то считается, что оно не
запрещено.
Таким образом, конкретное разрешение может быть задано тремя способами: разрешено (в
явном виде), не запрещено, запрещено.
Итоговое разрешение для конкретного пользователя вычисляется как сумма всех разрешений
по записям ACE, образующих список ACL файла или каталога. Например, если в списке ACL у
пользователя имеется разрешение на запись, а членам группы, в которую он входит, присвоено
разрешение на чтение, то этот пользователь будет иметь итоговое разрешение и на чтение, и на
запись.
Запрет имеет большую силу, нежели явное разрешение!!!
Следовательно, если встречается ACE с явным запретом на некоторое разрешение для
конкретного пользователя или группы, в которую он входит, то это разрешение всегда будет
запрещено для данного пользователя и его группы, даже если в остальных записях данное
разрешение будет помечено как разрешенное.
Если администратора не устраивают основные разрешения, то он может сформировать
специальные (особые) разрешения как конкретную комбинацию индивидуальных разрешений.
34
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
На рис. 2.15 представлен интерфейс окна Windows XP, в котором осуществляется назначение
индивидуальных разрешений. Переход в него осуществляется при помощи кнопки
Дополнительно с закладки Безопасность в свойствах файла или каталога.
Следует отметить, что выбираемые индивидуальные разрешения можно применить как к
папкам и файлам, так и отдельно к файлам или к папкам (см. рис. 2.15 окно Применять).
Если в окне свойств безопасности объекта флажки затенены, то это значит, что разрешения
на доступ к данному объекту унаследованы от родительского объекта. Существует три способа
изменения унаследованных разрешений:



внести в разрешения на доступ к родительскому объекту изменения, которые будут
унаследованы данным объектом;
явно разрешить данное унаследованное разрешение;
снять флажок «Наследовать от родительского объекта применимые к дочерним объектам
разрешения» (рис. 2.16).
Рис. 2.15. Окно назначения индивидуальных разрешений
В диалоге (рис. 2.17) предлагается сделать выбор одной из трех альтернатив: скопировать
разрешения родительского объекта, удалить разрешения и сформировать их заново или ничего
не трогать и вернуться в исходное состояние.
Рекомендуется, когда возможно, назначать разрешения для групп, а не для отдельных
пользователей. Другими словами, следует создавать группы безопасности.
При назначении разрешений для папок, в которых расположены приложения или данные
справочного характера, т. е. неизменяемые при рядовой работе пользователей, следует
заменить стандартные разрешения «полный доступ» для группы «все» на разрешение «чтение
и выполнение». Это позволит предотвратить случайное удаление файлов или заражение их
вирусами.
35
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Рис. 2.16. Окно изменения наследования разрешений
36
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Рис. 2.17. Диалоговое окно изменения наследований на разрешения
Тем пользователям, которые ответственны за обновление хранящихся в папке файлов, можно
дать разрешения «изменение» или другие необходимые разрешения.
Выводы
1.
Все современные операционные системы реализуют мультипрограммирование, при
котором на одном процессоре выполняется несколько программ, совместно использующих все
ресурсы вычислительной системы.
2.
По критерию эффективности все мультипрограммные операционные системы делятся на
системы с пакетной обработкой, системы разделения времени и системы реального времени.
Современные персональные компьютеры являются системами разделения времени.
3.
В многопроцессорных системах более эффективным является мультипрограммирование
на основе механизма многопоточной обработки.
4.
При создании процесса или потока операционная система формирует его дескриптор,
контекст и образ. Смена процессов и потоков выполняется путем планирования и
диспетчеризации.
5.
Механизм прерываний позволяет операционной системе реагировать на различные
события, происходящие в вычислительной системе.
6.
При распределении памяти между процессами современные операционные системы
используют механизм виртуальной памяти, позволяющий запускать на выполнение процессы,
требующие оперативной памяти значительно больше, чем реально обладает компьютер.
7.
Для перемещения фрагментов процессов между виртуальной и физической памятью в
современных операционных системах широко применяются алгоритмы страничного, сегментного
и странично-сегментного распределения памяти.
8.
Данные обладают свойствами временной и пространственной локальности, что
используется для повышения производительности вычислительной системы путем применения
37
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
механизма кэширования оперативной памяти и диска. Кэш-память прозрачна для программ и
пользователей. С ней работает только операционная система.
9.
Операционная система управляет устройством ввода-вывода данных через драйвер и
контроллер этого устройства. В современных операционных системах драйверы имеют
многослойную структуру, позволяющую стандартизировать промежуточные интерфейсы
управления группами однотипных устройств и тем самым упростить разработку низкоуровневых
драйверов.
10.
Основным типом внешней памяти является накопитель на жестких магнитных дисках
(диск). Процедуры подготовки его для хранения данных хорошо стандартизованы и включают
низкоуровневое (физическое) форматирование, выполняемое при изготовлении диска, и
высокоуровневое (логическое) форматирование, выполняемое пользователем. Основной
единицей хранения данных на физическом уровне является сектор, на логическом – кластер.
11.
Главная загрузочная запись (MBR) диска позволяет создать на одном диске до четырех
первичных (primary) разделов, в каждом из которых можно сформировать логический диск со
своей файловой системой. Однако вместо одного из первичных разделов можно создать
расширенный (extended) раздел, в котором можно сформировать сколько угодно логических
дисков. Обычно создают один первичный раздел (т. к. только первичный раздел может быть
активным и на нем находится системный загрузчик) и один расширенный с необходимым
количеством логических дисков.
12.
Система управления файлами является важной частью любой операционной системы и
позволяет организовать хранение данных в соответствии с выбранной файловой системой. Для
современных операционных систем семейства Windows предпочтение отдается файловой системе
NTFS, обладающей целым рядом преимуществ перед файловой системой FAT.
13.
Семейство UNIX-систем использует свои файловые системы (ufs, ext 2 fs, ext 3 fs и др.),
отличительной особенностью которых является использование в виде специальных файлов
устройств ввода-вывода. Кроме этого, каждый файл имеет персональный индексный дескриптор
и может иметь несколько имен. При копировании файла создается новое символьное имя
(символическая ссылка), а сам файл остается в одном экземпляре.
14.
В любой современной операционной системе существует механизм контроля доступа к
разделяемым ресурсам вычислительной системы. Например, в операционных системах Windows
на основе технологии NT контроль доступа к разделяемым ресурсам реализуется на основе прав,
возможностей и разрешений.
Вопросы для самопроверки
1.
Какой
способ
организации
вычислительного
процесса
называют
мультипрограммированием?
2.
Может ли процесс в мультипрограммном режиме работы одного процессора выполняться
быстрее, чем в монопольном режиме?
3.
Если программа А в режиме монопольного использования процессора выполняется 10
минут, а программа В – 15 минут, то за какое время Т (минут) могут выполняться обе задачи в
режиме мультипрограммирования?
4.
На какие типы подразделяют операционные системы при их классификации по
выбранному критерию эффективности?
5.
Каковы особенности функционирования операционных систем реального времени?
6.
Каковы особенности функционирования операционных систем с разделением времени?
7.
Каковы особенности функционирования операционных систем с пакетной обработкой?
8.
В каком из типов операционных систем одна и та же задача будет выполняться за строго
отведенное время при одновременном выполнении других задач?
9.
Какой тип операционных систем используется в современных персональных
компьютерах?
10.
Какие функции в операционной системе выполняет ее подсистема управления
процессами?
11.
В чем суть механизма многопоточной обработки?
12.
Какие ресурсы выделяются процессу при многопоточной обработке?
13.
Что общего и в чем различия понятий "процесс" и "поток"?
14.
В каких случаях применение многопоточной обработки может дать выигрыш по
сравнению с традиционным мультипрограммированием?
15.
Какие структуры формирует операционная система при создании процесса или потока?
16.
Какие действия выполняются операционной системой при смене потоков одного процесса
в системе с многопоточной обработкой?
17.
Какие принципы используют в современных алгоритмах планирования потоков?
38
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
18.
Какие события в вычислительной системе вызывают перепланирование процессов
(потоков)?
19.
Какие действия выполняет операционная система в ходе диспетчеризации потоков при
многопоточной обработке?
20.
В каких состояниях процесс или поток может находиться во время своего существования
в вычислительной системе?
21.
Для чего предназначен и где размещается контекст процесса или потока при различных
его состояниях?
22.
В какое следующее состояние из состояния выполнения может быть переведен поток при
многопоточной обработке?
23.
В какое следующее состояние из состояния ожидания может быть переведен поток при
многопоточной обработке?
24.
В какое состояние переводится поток при многопоточной обработке, если закончился
выделенный ему квант времени работы процессора?
25.
В чем суть механизма прерываний?
26.
Какие классы прерываний используются в современных операционных системах? Каковы
их приоритеты?
27.
Какова роль в операционной системе системного таймера?
28.
Какие функции в операционной системе выполняет ее подсистема управления памятью?
29.
В каких случаях при адресации к ячейкам памяти используются символьные, виртуальные
и физические адреса?
30.
В чем отличие статического и динамического способов преобразования виртуальных
адресов ячеек памяти в физические адреса?
31.
Что понимают под виртуальным адресным пространством процесса?
32.
Чем определяется размер максимально возможного виртуального адресного пространства
процесса?
33.
Чем определяется размер назначенного (выделенного) виртуального адресного
пространства процесса?
34.
Что входит в образ процесса?
35.
В чем особенность системной части виртуального адресного пространства процессов?
36.
Какие алгоритмы распределения памяти между процессами не используют внешнюю
память? Какие алгоритмы ее используют?
37.
В чем суть понятия свопинг?
38.
В чем суть механизма виртуальной памяти и чем он отличается от свопинга?
39.
В чем суть механизма страничного распределения памяти между процессами?
40.
Какие данные содержит каждый дескриптор (запись) страницы процесса?
41.
Сколько дескрипторов страниц содержит таблица страниц отдельного процесса?
42.
Когда выполняется так называемое страничное прерывание?
43.
Как определяется номер виртуальной страницы процесса?
44.
Как преобразуется номер виртуальной страницы в номер физической страницы при
страничном распределении памяти между процессами?
45.
Сколько страниц потребуется при страничном распределении памяти для хранения
таблицы страниц процесса, имеющего виртуальное адресное пространство 400 Мбайт, если
размер страниц 4 Кбайт?
46.
Может ли быть вытеснена таблица страниц при страничном распределении памяти из
оперативной памяти на диск?
47.
В чем суть механизма сегментного распределения памяти между процессами?
48.
Каковы достоинства и недостатки сегментного распределения памяти между процессами
по сравнению со страничным распределением памяти?
49.
Как реализуется так называемая разделяемая память при сегментном распределении
памяти между процессами?
50.
Как реализуется механизм сегментно-страничного распределения памяти между
процессами?
51.
Что такое кэш-память?
52.
В чем суть свойств временной и пространственной локальности данных?
53.
На каких элементах реализуется кэширование оперативной памяти?
54.
Какие данные могут храниться в каждой записи кэш-памяти при кэшировании основной
памяти?
55.
На каких элементах реализуется кэширование дисковой памяти?
56.
В чем суть проблемы согласования записей в кэше и в основной памяти? Как она может
решаться?
57.
В чем суть механизма случайного отображения основной памяти на кэш-память?
58.
В чем суть механизма детерминированного отображения основной памяти на кэш-память?
39
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
59.
Какие функции в операционной системе выполняет ее подсистема управления файлами и
внешними устройствами (подсистема ввода-вывода)?
60.
Какие основные компоненты составляют подсистему ввода-вывода?
61.
В чем разница понятий "контроллер" и "драйвер"?
62.
Каково назначение высокоуровневых и низкоуровневых драйверов?
63.
Каково назначение спул-файла?
64.
Для чего применяется избыточное кодирование данных в контроллере винчестера?
65.
Что является результатом низкоуровневого (физического) форматирования диска?
66.
Какой стандартный размер имеет блок информационных данных, записываемый в один
сектор на диске?
67.
Как расшифровывается адрес блока данных на диске в координатах C - H - S?
68.
В чем суть спецификации LBA?
69.
Где размещается на диске и для чего предназначена MBR?
70.
Из каких элементов состоит MBR?
71.
Сколько первичных (primary) и расширенных (extended) разделов можно создать на
диске?
72.
Сколько логических дисков можно создать в одном первичном и одном расширенном
разделах диска?
73.
Как реализуется мультисистемная загрузка в операционных системах семейства Windows?
74.
В чем различие понятий "файловая система" и "система управления файлами"?
75.
Какие операции выполняются при высокоуровневом форматировании диска?
76.
Зачем применяются кластеры и от чего зависит их размер?
77.
Из каких областей состоит структура диска, отформатированного в FAT?
78.
Как определяется размер кластера в файловых системах FAT?
79.
Каков механизм работы операционной системы при размещении файла на томе FAT?
80.
Какие значения может принимать индексный указатель таблицы FAT?
81.
Сколько кластеров и какой объем диска занимает файл, если его размер 26,8 Кбайт, а
файловая система на логическом диске объемом 500 Мбайт имеет тип FAT-16? FAT-32?
82.
В каких кластерах размещен файл, если его запись в каталоге содержит номер
начального кластера 000c, а соответствующий фрагмент таблицы FAT имеет следующее
содержание:
83.
В каких кластерах размещен файл, если его запись в каталоге содержит номер
начального кластера 0002, а соответствующий фрагмент таблицы FAT имеет следующее
содержание:
84.
Каковы основные отличительные свойства NTFS по сравнению с FAT?
85.
В чем разница понятий "логический номер кластера" и "виртуальный номер кластера" в
NTFS?
86.
В чем разница хранения данных в различных типах файлов файловой системы NTFS?
87.
Как расшифровывается адресная информация (VCN, LCN, k) отрезка данных файла в
NTFS?
88.
Каков механизм работы операционной системы при размещении файла на томе NTFS?
89.
Сколько кластеров и какой объем диска занимает файл, если его размер 26,8 Кбайт, а
файловая система на логическом диске объемом 500 Мбайт имеет тип NTFS при размере кластера
8 секторов?
90.
Каковы особенности файловых систем, применяемых в UNIX-системах?
91.
Какие данные о файле содержит индексный дескриптор в файловой системе UNIX-систем?
92.
В чем суть организации доступа субъектов к объектам в современных операционных
системах?
93.
Зачем при организации доступа к разделяемым ресурсам пользователей объединяют в
группы?
94.
В чем разница прав, возможностей и разрешений в операционных системах семейства
Windows?
95.
В чем разница понятий политика безопасности включена, отключена и не задана в
операционных системах семейства Windows?
40
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
96.
В чем разница понятий разрешен, неразрешен и запрещен доступ к объекту в файловой
системе NTFS?
97.
Какие итоговые разрешения доступа к объекту на томе NTFS получит пользователь
Иванов, если он является членом групп Пользователи, Студенты и Администраторы, а объект
имеет следующий набор разрешений:
Администраторы – разрешен полный доступ;
Студенты – запрещена запись;
Все – разрешены запись, чтение и выполнение;
Создатель-Владелец – разрешен полный доступ.
41
Download