- •1)Основные функции операционных систем, сред и оболочек
- •2) Классификация ос
- •3) Требования к современным ос
- •4) Мультипрограммирование и распределение ресурсов
- •5) Понятие процессов и потоков
- •6) Алгоритмы планирования процессов и потоков
- •7) Синхронизация процессов
- •9) Функции ос по управлению памятью
- •10) Виртуализация памяти. Классы виртуальной памяти
- •11) Кэширование данных
9) Функции ос по управлению памятью
Если не оговорено иное, под памятью (memory) понимается оперативная память
компьютера, в отличие от внешней памяти (storage).
Процессор может выполнять только инструкции, находящиеся в оперативной па-
мяти. Память распределяется как между модулями прикладных программ, так и меж-
ду модулями самой операционной системы.
Функции ОС по управлению памятью в мультипрограммной системе:
· отслеживание свободной и занятой памяти;
· выделение памяти процессам и ее освобождение при завершении процесса;
· вытеснение процессов из оперативной памяти на диск при нехватке оперативной па-
мяти и возвращение в оперативную память при освобождении места в ней (механизм вир-
туальной памяти);
· настройка адресов программы на конкретную область физической памяти;
· динамическое выделение памяти процессам (выделение памяти по запросу при-
ложения во время его выполнения); выделяются свободные участки, расположенные
произвольным образом, что приводит к фрагментации памяти;
· дефрагментация освобожденной динамической памяти;
· выделение памяти для создания служебных структур ОС (дескрипторы процессов и
потоков, таблицы распределения ресурсов, буферы, синхронизирующие объекты и т.д.;
· защита памяти – выполняемый процесс не должен записывать или читать дан-
ные из памяти, назначенной другому процессу.
Типы адресов
Для идентификации переменных и команд на разных этапах обработки програм-
мы операционной системой используются символьные имена, преобразуемые в вир-
туальные адреса и в итоге – в физические адреса (рис. 3.1).
Виртуальное адресное пространство
Виртуальные адреса для различных программ назначаются транслятором независи-
мо. Диапазон виртуальных адресов определяется программно-аппаратным обеспечени-
ем компьютера, в частности, разрядностью его схем адресации. Совокупность всех воз-
можных адресов из этого диапазона называется виртуальным адресным пространством.
Так, 32-разрядный процессор семейства x86 дает возможность адресовать до 2
32байтов, т.е. до 4 Гбайт памяти с диапазоном виртуальных адресов от 00000000h до FFFFFFFFh.
Реальные процессы используют только часть доступного виртуального простран-
ства (на 1-2 порядка меньше максимума).
Совпадение виртуальных адресов переменных и команд различных программ не
приводит к конфликтам, так как в случае, когда эти переменные или команды одно временно присутствуют в памяти, операционная система отображает совпадающие
виртуальные адреса на разные физические (если эти переменные или команды не
должны разделяться соответствующими процессами).
Образ процесса – термин, обозначающий содержимое назначенного процессу вир-
туального адресного пространства, т.е. коды команд и данные (исходные, промежуточ-
ные и результаты).
Виды алгоритмов распределения памяти
Исторически выделяются два наиболее общих подхода к распределению памяти,
в рамках каждого из которых реализуется ряд алгоритмов:50
· распределение памяти без использования внешней памяти:
· фиксированными разделами;
· динамическими разделами;
· перемещаемыми разделами;
· распределение памяти с использованием внешней памяти:
· страничное распределение;
· сегментное распределение;
· сегментно-страничное распределение.
Алгоритмы первого класса предполагают, что размер виртуального адресного про-
странства каждого процесса меньше объема оперативной памяти. Эти алгоритмы ис-
пользовались в ранних мультипрограммных ОС (OS/360, ранние версии OS/2) в 60-
70 годах и в силу неактуальности здесь опущены.
Алгоритмы второго класса реализуют механизм виртуальной памяти и подле-
жат рассмотрению