Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к экзу по ОС.doc
Скачиваний:
1
Добавлен:
19.09.2019
Размер:
450.05 Кб
Скачать

Индексные дескрипторы файлы и системы адресации файлов.

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

  • Тип и права доступа к файлу.

  • Идентификатор владельца файла.

  • Размер файла в байтах.

  • Время последнего обращения к файлу.

  • Время создания файла.

  • Время последней модификации.

  • Идентификатор группы.

  • Счетчик числа связей.

  • Число блоков, занимаемых файлом.

  • И т.д.

I_block служит для адреса блока, занимаемого файлом. Представляет из себя массив из 15 адресов блоков. Первые 12 адресов содержат прямые ссылки на номера блоков, в которых хранятся данные. Тринадцатый адрес является косвенной ссылкой, то есть адресом блока, в котором хранится список адресов следующего блока данных файла. Четырнадцатый адрес указывает на блок двойной косвенной адресации, то есть содержит в себе массив адресов, указывающих на массивы блоков файла. Пятнадцатый блок – блок тройной косвенной адресации.

4.Структура системы и ядро классической Unix.

Эти ОС имеют монолитные ядра. Классическая Unix 7 представляет собой двухуровневую ОС, в центре которой ядро, вокруг которого находятся: системные услуги (init, inetd, routed, getty (терминал), lp (принтер), сс (система разработки), XDesktop shell (пользователь)) и приложения. Ядро предоставляет базовые услуги.

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

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

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

Интерфейс системного вызова позволяет процессам обращаться с запросами на услуги ОС.

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

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

ФС управляет иерархическим пространством имен файлов, каталогов и устройств ввода/вывода.

Модуль управления памятью поддерживает виртуальную память.

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

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

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

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

Сегмент текста

Доступно пользователю

Область процесса

3 Гб

Сегмент данных

Сегмент стека

Стек ядра

Область данных процесса

Ядро Unix

Общая область

1 Гб

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

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

Сегмент данных содержит переменные, строки, массивы, другие данные программы, может модифицироваться.

Сегмент стека служит для хранения временных данных. Когда программа запускается, её стек уже не пуст, содержит переменные окружения, а также командную строку, введенную при вызове программы.

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

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

В ОС Unix традиционно выполняются 2 системных процесса init и swapper. Все остальные процессы являются дочерними от init. Любой новый процесс создается с помощью вызова fork ( ). В ответ на вызов Unix создает новое адресное пространство с полной копией содержимого адресного пространства родительского процесса, а затем в адресное пространство с помощью системного вызова execve ( ) может быть загружено для выполнения программы. Таким образом обновляется сегмент текста и данных.

23 мая 2012 г.

ОС Windows.