- •2.1 Особенности алгоритмов управления ресурсами
- •2.2 Особенности аппаратных платформ
- •2.3 Особенности областей использования
- •2.4 Особенности методов построения
- •3. 2. Реализация процессов Внутреннее устройство процессов в ос Windows
- •Проблемы межпроцессного взаимодействия
- •Обмен информацией между процессами
- •Сигналы
- •3.4.3. Почтовые ящики
- •Разделяемая память
- •3.4.5. Мониторы Хоара
- •4.1. Реализация в Windows
- •7. Управление памятью
- •7.2. Методы распределения памяти без использования дискового пространства
- •7.1.1. Распределение памяти фиксированными разделами
- •7.1.2. Распределение памяти разделами переменной величины
- •7.1. 3. Перемещаемые разделы
- •7.3. Понятие виртуальной памяти
- •7.2.3. Страничное распределение
- •7.2.3 Сегментное распределение
- •7.2. 5. Странично-сегментное распределение
- •9. Вызов удаленных процедур (rpc)
- •9.1 Концепция удаленного вызова процедур
- •9.2. Базовые операции rpc
- •9.3. Этапы выполнения rpc
- •10. Синхронизация в распределенных системах
- •10.1. Алгоритм синхронизации логических часов
- •10.2. Алгоритмы взаимного исключения
- •10.2.2. Централизованный алгоритм
- •10.2.3. Распределенный алгоритм
- •10.2.4. Алгоритм Token Ring
- •10.2.5 Неделимые транзакции
- •11. Процессы и нити в распределенных системах Понятие "нить"
- •Различные способы организации вычислительного процесса с использованием нитей
- •Вопросы реализации нитей
- •Нити и rpc
7.1.1. Распределение памяти фиксированными разделами
Самым простым способом управления оперативной памятью является разделение ее на несколько разделов фиксированной величины. Это может быть выполнено вручную оператором во время старта системы или во время ее генерации.
При очевидном преимуществе - простоте реализации - данный метод имеет существенный недостаток - жесткость. Так как в каждом разделе может выполняться только одна программа, то уровень мультипрограммирования заранее ограничен числом разделов не зависимо от того, какой размер имеют программы.
7.1.2. Распределение памяти разделами переменной величины
В этом случае память машины не делится заранее на разделы. Сначала вся память свободна. Каждой вновь поступающей задаче выделяется необходимая ей память. Если достаточный объем памяти отсутствует, то задача не принимается на выполнение и стоит в очереди.
7.1. 3. Перемещаемые разделы
Одним из методов борьбы с фрагментацией является перемещение всех занятых участков в сторону старших либо в сторону младших адресов, так, чтобы вся свободная память образовывала единую свободную область.
В дополнение к функциям, которые выполняет ОС при распределении памяти переменными разделами, в данном случае она должна еще время от времени копировать содержимое разделов из одного места памяти в другое, корректируя таблицы свободных и занятых областей. Эта процедура называется "сжатием".
7.3. Понятие виртуальной памяти
Уже достаточно давно пользователи столкнулись с проблемой размещения в памяти программ, размер которых превышал имеющуюся в наличии свободную память. Решением было разбиение программы на части, называемые оверлеями. 0-ой оверлей начинал выполняться первым. Когда он заканчивал свое выполнение, он вызывал другой оверлей. Все оверлеи хранились на диске и перемещались между памятью и диском средствами операционной системы. Однако разбиение программы на части и планирование их загрузки в оперативную память должен был осуществлять программист.
Развитие методов организации вычислительного процесса в этом направлении привело к появлению метода, известного под названием виртуальная память. Виртуальным называется ресурс, который пользователю или пользовательской программе представляется обладающим свойствами, которыми он в действительности не обладает.
Таким образом, виртуальная память - это совокупность программно-аппаратных средств, позволяющих пользователям писать программы, размер которых превосходит имеющуюся оперативную память; для этого виртуальная память решает следующие задачи:
размещает данные в запоминающих устройствах разного типа, например, часть программы в оперативной памяти, а часть на диске;
перемещает по мере необходимости данные между запоминающими устройствами разного типа, например, подгружает нужную часть программы с диска в оперативную память;
преобразует виртуальные адреса в физические.
Все эти действия выполняются автоматически, без участия программиста, то есть механизм виртуальной памяти является прозрачным по отношению к пользователю.
Наиболее распространенными реализациями виртуальной памяти является страничное, сегментное и странично-сегментное распределение памяти, а также свопинг.
