Экзаменационные билеты по дисциплине «операционные системы и среды»

Вид материалаЭкзаменационные билеты
Алгоритмы планирования делятся на два типа
Способы выполнения прерываний.
Системные вызовы. Реализация системных вызовов.
Регистрация системных
Функции ОС по управлению памятью.
Типы адресов. Виртуальное адресное пространство.
Система управления памятью
Распределение памяти. Страничное распределение.
Сегментное распределение. Сегментно-страничное распределение.
Виртуальная память. Виртуализация ОП. Свопинг.
Задачи ОС по управлению файлами и устройствами.
Подсистема ввода/вывода.
Логическая организация файловой системы (файл, файловая система, задачи ФС).
Логическое строение файлов.
Имя файла. Атрибуты файла.
Физическая организация и адресация файла.
Физическая организация FAT.
Физическая организация NTFS.
Файловые операции.
Контроль доступа к файлам. Подходы к определению прав доступа (избирательный, мандатный).
...
Полное содержание
Подобный материал:
1   2   3
Состояния потока. Типы алгоритмов планирования. Понятие «прерывания». Классы прерываний.

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

1. внешние

2. внутренние

3. программные.

Внешние происходят при действиях пользователя или от сигналов внешних устройств при операциях ввода-вывода. Они называются аппаратными. Происходят асинхронно выполняемому потоку.

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

Алгоритмы планирования делятся на два типа:

Вытесняющие – когда решение о переключении потоков принимает ОС. Почти все современные ОС (UNIX, Windows NT/XP, OS/2, VAX/VMS) используют вытесняющие алгоритмы планирования.

Невытесняющие – когда решение о временной приостановке принимает сам выполняемый поток – в связи с ожиданием какого-либо ресурса. При этом программисты должны составлять программы так, чтобы они часто прерывались (передавать управление ОС), что затрудняет разработку программ. Зато прерывания происходят в удобный для потока момент, а накладные расходы ОС снижаются. Это реализовано в ОС NetWare для файл-серверов 3.х и 4.х, благодаря чему обеспечивается высокая скорость файловых операций.

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

· Выполнение – активное состояние, когда он работает

· Ожидание – пассивное состояние, когда он стоит по внутренним причинам : ждет окончания ввода/вывода, предоставления какого-либо ресурса (кроме процессора)

· Готовность – пассивное состояние, когда он готов, но выполняется другой поток (т.е. он ждет процессорного времени).

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

В зависимости от источника возникновения сигнала прерывания делятся на:

Аппаратные – события от периферийных устройств(например, нажатия клавиш клавиатуры, движение мыши, сигнал от таймера, сетевой карты или дискового накопителя) – внешние прерывания, или события в микропроцессоре – (например, деление на ноль) – внутренние прерывания.

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

  1. Системные вызовы. Реализация системных вызовов.

Систе́мный вы́зов (англ. system call) в программировании и вычислительной технике — обращение прикладной программы к ядру операционной системы для выполнения какой-либо операции.Современные операционные системы (ОС) предусматривают разделение времени между выполняющимися вычислительными процессами (многозадачность) и разделение полномочий, препятствующее исполняемым программам обращаться к данным других программ и оборудованию. Ядро ОС исполняется в привилегированном режиме работы процессора. Для выполнения межпроцессной операции или операции, требующей доступа к оборудованию, программа обращается к ядру, которое, в зависимости от полномочий вызывающего процесса, исполняет либо отказывает в исполнении такого вызова.

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

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

int sys_rsbac_reg

(rsbac_reg_handle_t handle,

void * arg);

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

Защита памяти — это избиpaтeльнaя способность предохранять выполняемую задачу от записи или чтения памяти, назначенной другой задаче. Правильно написанные программы не пытаются обращаться к памяти, назначенной другим. Однако реальные программы часто содержат ошибки, в результате которых такие попытки иногда предпринимаются. Средства защиты памяти, реализованные в операционной системе, должны пресекать несанкционированный доступ процессов к чужим областям памяти. Таким образом, функциями ОС по управлению памятью являются отслеживание свободной и занятой памяти; выделение памяти процессам и освобождение памяти при завершении процессов; защита памяти; вытеснение процессов из оперативной памяти на диск, когда размеры основной памяти недостаточны для размещения в ней всех процессов, и возвращение их в оперативную память, когда в ней освобождается место, а также настройка адресов программы на конкретную область физической памяти.Память является для процесса таким же важным ресурсом, как и процессор, так как процесс может выполняться процессором только в том случае, если его коды и данные (не обязательно все) находятся в оперативной памяти. Управление памятью включает распределение имеющейся физической памяти между всеми существующими в системе в данный момент процессами, загрузку кодов и данных процессов в отведенные им области памяти, настройку адресно-зависимых частей кодов процесса на физические адреса выделенной области, а также защиту областей памяти каждого процесса.
  1. Типы адресов. Виртуальное адресное пространство.

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

Система управления памятью является одной из наиболее важных в составе ОС. Традиционная схема предполагает связывание виртуального и физического адресов на стадии исполнения программы. Для управления виртуальным адресным пространством в нем принято организовывать сегменты (регионы), для описания которых используются структуры данных VAD (Virtual Address Descriptors). Для создания региона и передачи ему физической памяти можно использовать функцию VirtualAlloc. Описана техника использования таких регионов, как куча процесса, стек потока и регион файла, отображаемого в память.
  1. Распределение памяти. Страничное распределение.

Распределение памяти - управление ресурсами памяти в интересах решения отдельных задач.

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

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

Размер страницы обычно выбирается равным степени двойки: 512, 1024 и т.д., это позволяет упростить механизм преобразования адресов.

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

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

Сегментная виртуальная память предусматривает перемещение данных сегментами – частями виртуального адресного пространства произвольного размера, полученными с учетом смыслового значения данных.

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

Сегментно-страничное распределение.

Сегментно-страничная виртуальная память использует двухуровневое деление: виртуальное адресное пространство делится на сегменты, а затем сегменты делятся на страницы. Единица перемещения – страница.

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

Виртуализация ОП выполняется программными средствами ОС и схемами процессора, и включает решение следующих задач:

· Размещение данных в запоминающих устройствах разного типа – ОП и на диске;

· Выбор образов процессов или их частей для перемещения из ОП на диск и обратно;

· Перемещение, по мере необходимости, данных между диском и ОП;

· Преобразование виртуальных адресов в физические.

Виртуализация может быть организована на основе двух подходов:

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

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

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

Задачами ОС по управлению файлами и устройствами, являются:

· Организация параллельной работы устройств в/в и процессора

· Согласование скоростей обмена и кэширование данных при обмене

· Распределение устройств и данных между процессами.

· Обеспечение удобного логического интерфейса между ВУ и остальной частью системы (ядром ВС).

· Поддержка расширяемой библиотеки драйверов

· Поддержка нескольких файловых систем

· Поддержка синхронных и асинхронных операций в/в
  1. Подсистема ввода/вывода.

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

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

Отметим, что подсистема в/в работает в системе реального времени
  1. Логическая организация файловой системы (файл, файловая система, задачи ФС).

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

Назначением файлов является:

· Долговременное и надежное хранение информации

· Совместное использование информации несколькими приложениями (пользователями).

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

Задачи, которые должна решать ФС , зависят от типа ОС. В наиболее простой (однозадачной) ОС, например, MS DOS, эти задачи включают:

· Именование файлов

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

· Отображение логической модели ФС на физическую организацию носителя

· Устойчивость ФС к сбоям питания, ошибкам аппаратных и программных средств ВС.

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

Все файлы делятся на :

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

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

3. Специальные файлы – это фиктивные файлы, ассоциированные с УВВ и используемые для унификации механизмов доступа к файлам и ВУ. Специальные файлы позволяют пользователям выполнять команды в/в на УВВ в форме чтения или записи данных в файл.


  1. Имя файла. Атрибуты файла.

В ФС используются следующие понятия имен файлов:

Простое (короткое) имя идентифицирует файл в пределах своего каталога. В разных ОС различные ограничения на длину и допустимый алфавит для имен. В DOS – это не более 8 символов на имя и 3-х - на расширение, в Windows (32-х разр.) – до 255 символов на имя. В иерархических ФС разным файлам можно иметь одинаковые имена, только если они находятся в разных каталогах. Для однозначной идентификации используются полные имена.

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

В ФС каждому файлу приписывается некоторый набор атрибутов. В качестве атрибутов могут выступать:

· Тип файла (обычный, каталог, специальный и т.д.)

· Владелец файла

· Создатель файла

· Пароль доступа к файлу

· Информация о разрешенных операциях с файлом

· Времена создания, последней модификации, последнего обращения

· Текущий размер

· Максимальный размер

· Признаки

1. «только для чтения»

2. «скрытый файл»

3. «системный файл»

4. «архивный файл»

5. «двоичный/символьный»

6. «временный файл»

7. блокировки

· Длина записи

· Указатель на ключевое поле в записи

· Длина ключа.
  1. Физическая организация файловой системы.

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

Низкоуровневое форматирование создает на диске дорожки и сектора. Последние – обычно по 512 байт. Это наименьшая адресуемая единица обмена данными на диске. Число секторов на каждой дорожке одинаково. Цилиндр – совокупность дорожек на одном радиусе. Для адресации данных необходимо задать № цилиндра, № головки (поверхности) и номер сектора. Низкоуровневое форматирование не зависит от ОС. Нумерация дорожек (цилиндров) начинается с 0 от внешнего радиуса.

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

Перед высокоуровневым форматированием, диск может быть разбит на части – разделы (логические устройства, тома). На физическом устройстве может быть несколько ФС, но в каждом разделе – только одна ФС. Чаще всего, один раздел – одно логическое устройство, но может быть несколько разделов (не обязательно на одном физическом диске), объединенных в одно логическое устройство. Примером является RAID-массив.
  1. Физическая организация и адресация файла.

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

· Скорость доступа к данным

· Объем адресной (служебной) информации

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

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

Основными возможными вариантами размещения являются

· Непрерывное размещение в последовательных кластерах диска

· Размещение в виде списка связанных кластеров

· Размещение с использованием связанного списка индексов (FAT)

· Размещение с адресацией файла в виде списка кластеров файла (UFS – UNIX)
  1. Физическая организация FAT.

Логический раздел состоит из:

· Загрузочного сектора с программой начальной загрузки (512 байт)

· Основной копии FAT (размер зависит от объема диска)

· Копии FAT

· Корневого каталога фиксированного размера (32 сектора – 16 Кбайт), куда можно занести 512 записей о НД. Каждая запись – 32 байта.

· Область данных – вся остальная область раздела.

FAT поддерживает 2 типа НД – файл и каталог. Память распределяется только из области данных, порциями в кластер.

Таблица FAT – массив индексных указателей, каждому указателю соответствует один кластер. Указатель может иметь значения:

· Кластер свободен

· Кластер принадлежит файлу и не последний

· Кластер – последний в файле

· Кластер сбойный

· Кластер резервный

Размер указателя бывает 12, 16 или 32 разряда, что позволяет ссылаться на 4096, 65536 или более 4 млр. Кластеров.
  1. Физическая организация NTFS.

NTFS появилась позже FAT и HPFS (для OS/2). Отличительные черты этой системы:

· Поддержка больших дисков и файлов (объемом до 2 64 байт)

· Восстанавливаемость после сбоев и отказов программ и аппаратуры управления дисками

· Высокая скорость операций

· Относительно низкий уровень фрагментизации

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

· Поддержка длинных символьных имен

· Контроль доступа к файлам и каталогам

В качестве системных файлов, кроме самой MFT, выступают:

· Копия первых трех записей MFT

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

· Файл с именем тома, версией NTFS, другой информацией о томе

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

· Файл корневого каталога

· Файл с битовой картой логических кластеров тома (по 1 биту на кластер, для определения занят он или свободен)

· Файл с адресом загрузочного сектора тома

· Файл со списком плохих кластеров тома

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

· Файл с таблицей преобразования регистра символов для кодировки Unicode

Четыре записи (11-15) в MFT зарезервированы для последующих модификаций NTFS.
  1. Файловые операции.

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

1. Поиск характеристик файла по его символьному имени

2. Копирование характеристик файла в ОП

3. Проверку прав пользователя на выполнение запрошенных операций

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

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

  1. Контроль доступа к файлам. Подходы к определению прав доступа (избирательный, мандатный).

Есть два подхода к определению прав доступа

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

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

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

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