Сегментна организација меморије

Програм је логички подељен на више сегмената. Обично су то: један или више извршних сегмената, један или више сегмената података и стек сегмент. Логичка адреса се састоји из два дела: број сегмента s и померај унутар сегмента d. И физичка адреса се, такође састоји из два дела (број сегмента и померај унутар тог сегмента), али се сегмент физичке меморије дефинише својом почетном адресом (базна адреса BA) и дужином L. При креирању процеса оперативни систем формира управљачки блок процеса (PCB), сегментну таблицу пресликавања (SMT) и још неке структуре података које омогућавају лакше управљање процесима и меморијом. PCB је управљачки блок процеса – структура која се формира за СВАКИ процес у рачунару, а садржи неопходне параметре за успешно управљање процесима: стање процеса, приоритет, захтеви за меморијом или у/и уређајима… И PCB и SMT су структуре података које формира и ажурира део оперативног система задужен за управљање меморијом.

segmenti

Свака врста (ред) таблице SMT садржи информације које образују дескриптор сегмента SD. Основни подаци у SD су дужина сегмента L и почетна адреса BA. Поред тога, могу се унети и неке управљачке информације. Дужину сегмента оперативни систем проналази у извршном фајлу. Потребан је и регистар за упис максималног броја сегмента. Тај број се такође налази у извршном фајлу и у тренутку креирања процеса уписује у његов PCB. Потребан је и регистар SMTAR који указује на почетак SMT. Адреса почетка SMT уписује се у PCB у тренутку креирања SMT.

Механизам пресликавања логичке у физичку адресу одвија се у 4 микрооперације:

segmenti1

MAR – меморијски адресни регистар – садржи адресу меморијске локације којој треба приступити

MBR – меморијски бафер регистар, односно меморијски регистар података – садржи податак који се уписује у меморију или податак који је прочитан из меморије

Заштита се реализује у два корака. Први корак се састоји у поређењу броја сегмента s из логичке адресе и максималног броја сегмента из одговарајућег регистра. Ако је s>smax генерише се прекид, кориснику шаље извештај о грешци, а процес убија. (ако је број сегмента већи од максималног броја сегмената такав процес је физички немогућ, зато га оперативни систем и убија) У супротном почиње пресликавање адресе. Други корак се реализује након друге микрооперације (кад је дескриптор сегмента у MBR). Пореди се дужина сегмента (L-1) из дескриптора сегмента са d из логичке адресе. Ако је d>L-1 генерише се прекид, обавештава корисник о грешци и убија процес. (ако је померај унутар сегмента већи од дужине сегмента такав процес је физички немогућ, зато га оперативни систем и убија) У супротном се наставља са пресликавањем адресе.

Потребно је формирати и стално ажурирати таблицу слободних сегмената (FST) или листу слободних сегмената (FSL).

Предност сегментне организације:

– на једноставан начин се може дефинисати заједничко коришћење сегмената и за системске програме и за различите корисничке програме
– једноставно се дефинишу права приступа сегментима
– могуће је реализовати и динамичко проширивање сегмената

Недостатак је могућност фрагментације.

Advertisements

One thought on “Сегментна организација меморије

  1. Повратни пинг: Управљање меморијом – Рачунари и програмирање

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се / Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се / Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се / Промени )

Google+ photo

Коментаришет користећи свој Google+ налог. Одјавите се / Промени )

Повезивање са %s