Разработка операционных систем
Рефераты >> Программирование и компьютеры >> Разработка операционных систем

Во время работы прикладной программы все адреса, генерируемые CPU, сравниваются с содержимым регистра границы. Если генерируется адрес меньше числа а, работа программы прерывается.

3.2.2 Мультипрограммный режим с ФИКСИРОВАННЫМИ границами.

Мультипрограммирование с фиксированными разделами (Multiprogramming with a fixed number of tasks) предполагает разделение адресного пространства на ряд разделов фиксированного раздела. В каждом разделе размещается один процесс.

Наиболее простой и наименее эффективный режим MFT соответствует случаю, когда трансляция программ осуществляется в абсолютных адресах для соответствующего раздела.

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

Уменьшить фрагментацию при мультипрограммировании с фиксированными разделами можно, если загрузочные модули получать в перемещаемых адресах. Такой модуль может быть загружен в любой свободный раздел после соответствующей настройки.

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

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

 

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

а < Адр. < б

При выходе любого адреса программы за отведенные ей границы, работа программы прерывается.

3.2.3. Мультипрограммирование с переменными разделами. (multiprogramming with a variable number of tasks (MVT).

Метод Multiprogramming with a Variable number of Tasks предполагает разделение памяти на разделы и использование загрузочных модулей в перемещаемых адресах, однако, границы разделов не фиксируются.

         

0

ОС

90 Кб

       

а

Раздел 1

П5

П4

П3

П2

П1

 

Раздел 2

         

Раздел 3

           

Раздел 4

           

80 Кб

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

     

0

ОС

   

90 Кб

а

Раздел 1

П7

П6

П5

 

100 Кб

         
       

Раздел 4

         


Страница: