Файл: Комплекс управляющих и обрабатывающих программ.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.12.2023

Просмотров: 37

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.




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

Прерывания (Interrupt)

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

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

Классификация прерываний:

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

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

Var p,i:integer;

p:=1;

for i:=2 to 80 do p:=p*i;// произойдет переполнение типа integer и сгенерируется программное прерывание

При обработке программного прерывания происходит переключение работы процессора в привилегированный режим

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

Assignfile(f,’C:\temp\t1.txt’);

Reset(f);

While not eof (f) do

Readln(f,s);…

CloseFlie(f);

Механизм обработки прерываний состоит из этапов:

  1. Установление факта прерывания (прием и идентификация сигнала на прерывание)

  2. Запоминание состояния прерванного процесса (состояние процесса определяется значениями счетчика команд, содержимым регистров процессора, спецификацией режима: пользовательский или привилегированный…)

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

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

  5. Обработка прерывания

  6. Восстановление информации, относящейся к прерванному процессу

  7. Возврат в прерванную программу


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

Главные функции механизма прерывания:

1. Распознавание или классификация прерывания

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

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

Детальная классификация прерываний:

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

2. Прерывания ввода-вывода. Инициируются устройством ввода/вывода и сигнализируют процессору о том, что произошло изменение состояния канала ввода/вывода (завершение работы, генерация ошибки, переход устройства в состояние готовности)

3. Внешние прерывания (нажатие клавиш или прием сигнала от другого процессора)

4. Прерывание при перезагрузке вычислительной системы

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

6. Прерывания по контролю вычислительной системы из-за аппаратных ошибок. Упорядочены по приоритетам

Загрузка операционной системы

При физическом форматировании жесткий диск разбивается на дорожки (концентрические окружности), дорожки разбиваются на секторы. Размер сектора 512 байт. Каждая «пластина» имеет две поверхности, к каждой поверхности можно подвести головки для считывания/записи данных на диск.

Набор дорожек, находящихся на разных поверхностях ВСЕХ пластин и расположенных на одинаковом расстоянии от оси вращения называется цилиндром (Cylinder)

Сектор- минимальная единица хранения данных(бит), каждый сектор определяется дорожкой, на которой он расположен, и поверхностью, на которой расположена дорожка.

В модели хранения данных, принятой в ОС, местоположение каждого сектора определяется номером дорожки (номером цилиндра), номером поверхности (номер головки). Существует трехмерная адресация любого сектора –CHS(Cylinder-Head- Sector)

При логическом форматировании диск разбивается на логические разделы (том)

Раздел (partition)- часть

долговременной памяти жесткого диска, выделенная для удобства работы

Информация о размещении разделов на жестком диске хранится в таблице разделов (partitiontable), которая является частью главной загрузочной записи (Master Boot Record- MBR). MBR располагается в 1-м физическом секторе (с номером 0) жесткого диска. Первые 446 байт MBR занимает программа главного загрузчика, 64 байта- таблица разделов

Раздел может быть либо первичным (основным), или расширенным (дополнительным)

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

Под таблицу разделов выделено 64 байта, каждая запись- 16 байт. На жестком диске может быть не более 4-х основных разделов

Структура записи элемента таблицы разделов (16 байт):

-Флаг активности раздела;

-номер головки начала раздела;

-номер сектора и цилиндра загрузочного сектора раздела;

-номер головки, сектора и цилиндра последнего сектора раздела;..

Дополнительный раздел- внутри него можно создавать любое число логических дисков («контейнер» для логических дисков), не содержит собственной файловой системы

Всего на жестком диске может быть 3 первичных раздела и один дополнительный

Сведения о разделе, хранящиеся в записи размером 16 байт, содержат: флаг активности раздела, номер головки начала раздела, номер сектора и цилиндра загрузочного сектора раздела, кодовый идентификатор ОС…

В первичном разделе может быть размещена ОС, приложения и пользовательские данные

Многие ОС (Windows-подобные) могут загружаться только с первичного раздела. Если используется несколько ОС, то нужно создавать несколько первичных разделов

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

Логический раздел(том)- часть пространства жесткого диска, воспринимаемая ОС как отдельный жесткий диск

Этапы загрузки ОС

1. Начальный этап загрузки – начинается при работе BIOS- базовая система ввода- вывода. В настройках BIOS указываются загрузочные устройства в порядке их приоритета

BIOS перебирает указанные устройства до тех пор, пока не найдет на одном из них MBR

2. Работа с MBR. Осуществляется поиск активного системного раздела и передача управления его загрузочному сектору- в нем хранится загрузчик конкретной ОС


3. передача управления исполняемому коду, записанному в загрузочном секторе активного раздела (PBS- Partition Boot Sector). В коде PBS указано имя файла загрузчика той ОС, которой передается управление

4. Начало загрузки операционной системы. Если речь идет о загрузке ОС семейства Windows, то запускается загрузчик, имя которого указано в PBS. Он считывает информацию из текстового файла boot.ini, в котором записаны сведения об установленных ОС. Затем происходит загрузка ядра ОС и передача ему управления

После окончания загрузки ОС управление передается командному процессору. Если используется интерфейс командной строки, то появляется приглашение системы, в противном случае загружается графический интерфейс (он поддерживается системным сервисом explorer.exe)

В процессе загрузки ядра загрузчик остается главным в управлении вычислительной системой. Кроме ядра, загружается еще слой уровня абстрагирования от оборудования, для того, чтобы ядро ОС работало независимо от «железа» (HardWare).

Модуль ядра в процессе загрузки проходит 2 фазы- так называемые фазы 0 и 1. Фаза 0 инициализирует только ту часть микроядра и подсистемы, которые требуются для работы основных служб и продолжения загрузки

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

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

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

Базовые понятия:

Файловая система позволяет пользователям и программам обходиться набором достаточно простых средств для выполнения действий над некоторым абстрактным объектом- файлом

С точки зрения ОС, файл- это именованная последовательность байт, хранящаяся тем или иным образом в кластерах жесткого диска (механизм хранения данных на флеш-накопителях несколько иной). Номера кластеров, в которых хранится тот или иной файл, должны «фиксироваться» ОС и при необходимости выполнить низкоуровневые операции чтения/записи файловая система должна достаточно быстро получить доступ к этим кластерам (по сути, фрагментам жесткого диска)


Файловая система распределяет дисковую память, поддерживает именование файлов, отображает имена файлов и соответствующие им номера кластеров (это соответствие должно фиксироваться в некоторой защищенной от всякого внешнего вмешательства области, недоступной никаким пользовательским приложениям- таблице размещения файлов, в ранних версиях файловых систем она так и называлась- FAT(File Allocation Table)- таблица, MFT-Master File Table) в соответствующие адреса во внешней памяти, поддерживает защиту и восстановление данных

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

Файлы могут быть разных типов (например, текстовые, бинарные, exe-файлы), иметь различные уровни доступа, получать различные атрибуты, но механизм работы со всеми файлами должен быть единым. Таким механизмом и является файловая система

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

- совокупность всех файлов на всех носителях данных, независимо от их физического устройства;

- набор структур данных, используемых для управления файлами (то, как файл идентифицирует операционная система и с помощью чего отличает один файл от другого)- каталоги, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске и т.д. Т.е. эти структуры данных представляют некоторую модель, с помощью которой ОС работает с «железом»- КЛАСТЕРАМИ жесткого диска и т.д. Эта модель поддерживается с помощью некоторых программных (и специальным образом оформленных) модулей

- комплекс системных программных модулей, реализующих различные операции над файлами – создание, уничтожение, чтение/запись и т.д. Эти модули в различных файловых системах имеют различную реализацию, но функционал один и тот же