Добавлен: 20.10.2018
Просмотров: 389
Скачиваний: 5
Тема 2. Моделирование механизмов управления основной памятью
Задание 1
Написать программу, моделирующую работу страничного механизма
управления памятью в соответствии со следующими условиями:
1) процесс – набор виртуальных страниц (ВС), пронумерованных от 0 до
n, где n – случайное число, генерируемое при создании процесса (n =
15);
2) максимально возможное число ВС в процессе – 16;
3) основная
память – набор 16 физических страниц (ФС),
пронумерованных от 0 до 15;
4) максимальное число одновременно существующих процессов – 3;
5) для каждого процесса создается своя таблица страниц как массив
записей;
6) каждая запись – номер назначенной ФС, флаг присутствия страницы в
ОП, счетчик числа обращений;
7) первая ВС нового процесса обязательно отображается в ОП (если
свободных ФС нет, выполняется вытеснение), остальные страницы
отображаются по мере необходимости;
8) программа должна отслеживать свободные и занятые ФС;
9) виртуальный адрес – 2 байта, старший полубайт – номер виртуальной
страницы, младшие 3 полубайта – смещение на странице (например: B
05C);
10)
отрабатываемые
программой события: создание нового
процесса, активизация одного из существующих процессов,
завершение процесса;
11)
для
активного процесса предусматривается возможность
генерации случайного ВА, который по алгоритму должен быть
преобразован в ФА с выводом на экран сообщений об основных
выполняемых действиях и состояния таблицы страниц.
Задание 2
Написать программу, моделирующую работу сегментного механизма
управления памятью в соответствии со следующими условиями:
1) процесс – набор сегментов, пронумерованных от 0 до n, где n –
случайное число, не превосходящее 3;
2) при создании процесса случайно генерируется размер каждого
сегмента, причем максимальный размер сегмента равен 4095 (или
FFF
16
);
3) основная память – последовательность байтов, НЕ разбитая на
страницы, адресация байтов - от 0000 до FFFF, в начальном
состоянии вся память пустая;
4) по мере создания процессов их сегменты размещаются в памяти в
соответствии с алгоритмом, программа должна вести учет
свободных и занятых фрагментов памяти;
5) максимальное число одновременно существующих процессов – 3;
6) для каждого нового процесса создается своя таблица сегментов как
массив записей;
7) каждая запись – начальный адрес сегмента в ОП, размер сегмента,
флаг присутствия в ОП, счетчик числа обращений;
8) первый сегмент нового процесса обязательно отображается в ОП
(если свободной памяти нет, выполняется вытеснение), остальные
сегменты отображаются по мере необходимости;
9) виртуальный адрес – 2 байта, старший полубайт – номер сегмента,
младшие 3 полубайта – смещение внутри сегмента (например: 2
05C);
10) отрабатываемые
программой события: создание нового
процесса, активизация одного из существующих процессов,
завершение процесса;
11) для
активного процесса предусматривается возможность
генерации
случайного
ВА,
который
по
алгоритму
преобразовывается в ФА с выводом на экран сообщений об
основных выполняемых действиях и состояния таблицы сегментов.