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

Обработка прерываний и ошибок.

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

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

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

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

Регистры процессора ~ 2-3нс (~10б)

Ц ена одного бита время доступа

Быстродейтсвующая память (SRAM) ~5-8нс (~10 –100кб)

Емкость запоминающих устройств

Оперативная память (DRAM ) ~10-12 нс (~Мб-Гб)

Внешняя память десятки милисек.(~10 –100Гб)

Рис. 3. Иерархию запоминающих устройств.

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

Функции операционной системы по управлению памятью

  • отслеживание свободной и занятой памяти;

  • выделение памяти процессам;

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

  • настройка адресов на конкретную область физической памяти;

Типы адресов

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

  • Символьные имена присваивает пользователь при написании программы на алгоритмическом языке или ассемблере.

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

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

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

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

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

Подсистема управления памятью в этом случае выполняет следующие задачи:

  • сравнивая размер программы, поступившей на выполнение, и свободных разделов, выбирает подходящий раздел,

  • осуществляет загрузку программы и настройку адресов.

В какой раздел помещать программу?  Распространены три стратегии:

  • Стратегия первого подходящего (First fit). Задание помещается  в первый подходящий по размеру раздел.

  • Стратегия наиболее подходящего (Best fit). Задание помещается  в тот раздел, где ему наиболее тесно(выигрыш в памяти).

  • Стратегия наименее подходящего (Worst fit).  При помещении в самый большой раздел в нем остается достаточно места для возможного размещения еще одного процесса.

Недостатки:

1. Число одновременно выполняемых процессов ограничено числом разделов.

2. Наличие фрагментации - потери памяти, не используемой ни одним процессом.

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