Управљање меморијом

51
Управљање меморијом Управљање меморијом Улога меморије у рачунарском Улога меморије у рачунарском систему систему Концепт голе машине Концепт голе машине Резидентни монитор Резидентни монитор Пребацивање Пребацивање Вишеструке партиције Вишеструке партиције Страничење Страничење Сегментација Сегментација

Upload: kaye-moon

Post on 30-Dec-2015

45 views

Category:

Documents


4 download

DESCRIPTION

Управљање меморијом. Улога меморије у рачунарском систему Концепт голе машине Резидентни монитор Пребацивање Вишеструке партиције Страничење Сегментација. Улога меморије у рачунарском систему. Код мултипрограмирања процеси деле меморију као један од најважнијих ресурса система. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Управљање меморијом

Управљање Управљање меморијоммеморијом

Улога меморије у рачунарском системуУлога меморије у рачунарском системуКонцепт голе машинеКонцепт голе машинеРезидентни мониторРезидентни мониторПребацивањеПребацивањеВишеструке партицијеВишеструке партицијеСтраничењеСтраничењеСегментацијаСегментација

Page 2: Управљање меморијом

Улога меморије у Улога меморије у рачунарском системурачунарском систему

Код мултипрограмирања процеси Код мултипрограмирања процеси деле меморију као један од деле меморију као један од најважнијих ресурса система.најважнијих ресурса система.

Меморија је дугачак низ речи или Меморија је дугачак низ речи или бајтова који имају своје адресе.бајтова који имају своје адресе.

Интеракција са меморијом одвија са Интеракција са меморијом одвија са кроз низ читања или уписа у локације кроз низ читања или уписа у локације са одређеном адресом.са одређеном адресом.

Page 3: Управљање меморијом

Улога меморије у Улога меморије у рачунарском системурачунарском систему

CPUCPU прибавља инструкције и податке прибавља инструкције и податке из меморије и смешта податке у из меморије и смешта податке у меморију.меморију.

CPU меморијаУ/И

систем

Сл. 1. Централни положај меморије у рачунарском систему.

Page 4: Управљање меморијом

Улога меморије у Улога меморије у рачунарском системурачунарском систему Кориснички програм пролази кроз Кориснички програм пролази кроз

неколико корака пре свог извршења. неколико корака пре свог извршења. Адресе се могу представљати на Адресе се могу представљати на различите начине у току тих корака.различите начине у току тих корака.

Адресе у изворном програму су у Адресе у изворном програму су у општем случају општем случају симболичкесимболичке (имена (имена променљивих).променљивих).

Page 5: Управљање меморијом

Улога меморије у Улога меморије у рачунарском системурачунарском систему Компилатор обично повезује те Компилатор обично повезује те

симболичке адресе са симболичке адресе са релокатибилнимрелокатибилним адресама.адресама.

Едитор веза или пунилац повезује Едитор веза или пунилац повезује релокатибилне адресе са релокатибилне адресе са апсолутнимапсолутним адресама.адресама.

Свако повезивање је пресликавање из Свако повезивање је пресликавање из једног адресног простора у други.једног адресног простора у други.

Page 6: Управљање меморијом

Улога меморије у Улога меморије у рачунарском системурачунарском систему Најзад се програм преслика у Најзад се програм преслика у

апсолутне адресе и напуни у меморију.апсолутне адресе и напуни у меморију. Током извршења програма приступа се Током извршења програма приступа се

његовим инструкцијама и подацима његовим инструкцијама и подацима генерисањем њихових апсолутних генерисањем њихових апсолутних адреса.адреса.

Page 7: Управљање меморијом

Улога меморије у Улога меморије у рачунарском системурачунарском систему По завршетку програма меморијски По завршетку програма меморијски

простор који му је додељен се простор који му је додељен се проглашава слободним и наредни проглашава слободним и наредни програм може да се изврши.програм може да се изврши.

Page 8: Управљање меморијом

Улога меморије у Улога меморије у рачунарском системурачунарском систему Типичан циклус инструкције почиње Типичан циклус инструкције почиње

њеним прибављањем из меморије.њеним прибављањем из меморије. Инструкција се декодира и по потреби Инструкција се декодира и по потреби

прибављају њени операнди из прибављају њени операнди из меморије.меморије.

После извршења резултат се смешта у После извршења резултат се смешта у меморију.меморију.

Page 9: Управљање меморијом

Улога меморије у Улога меморије у рачунарском системурачунарском систему

Јединица меморије види само низ Јединица меморије види само низ меморијских адреса незнајући како су меморијских адреса незнајући како су оне генерисане (који је адресни начин оне генерисане (који је адресни начин рада употребљен) и шта оне рада употребљен) и шта оне представљају (инструкције или податке).представљају (инструкције или податке).

Page 10: Управљање меморијом

Концепт голе машинеКонцепт голе машине Најједноставнији алгоритам за Најједноставнији алгоритам за

управљање меморијом је управљање меморијом је непостојећинепостојећи!! Корисник има на располагању голу Корисник има на располагању голу

машину и потуну контролу над машину и потуну контролу над меморијским простором.меморијским простором.

Корисник

0

32K

Сл. 2. Гола машина.

Page 11: Управљање меморијом

Концепт голе машинеКонцепт голе машине

Предности:Предности: максимална флексибилност и једноставност;максимална флексибилност и једноставност; не постоји потреба за посебним хардвером не постоји потреба за посебним хардвером

или системским софтвером.или системским софтвером.

Page 12: Управљање меморијом

Концепт голе машинеКонцепт голе машине

Озбиљан недостатак је у томе што овај Озбиљан недостатак је у томе што овај систем не пружа никакве услуге!систем не пружа никакве услуге!

Стога се овај систем користи само у Стога се овај систем користи само у специјални апликацијама где корисници специјални апликацијама где корисници захтевају флексибилност и једноставност.захтевају флексибилност и једноставност.

Page 13: Управљање меморијом

Резидентни мониторРезидентни монитор

Следећа једноставна шема је да се Следећа једноставна шема је да се меморија подели на два дела, један за меморија подели на два дела, један за корисника и један за корисника и један за резидентни резидентни монитормонитор оперативног система. оперативног система.

Постоји могућност да се резидентни Постоји могућност да се резидентни монитор смести или на почетак или на монитор смести или на почетак или на крај меморије што зависи од локације крај меморије што зависи од локације вектора прекида.вектора прекида.

Page 14: Управљање меморијом

Резидентни мониторРезидентни монитор

Сл. 3. Резидентни монитор.

Монитор

0

32K

Корисник

Заштитни регистар

Page 15: Управљање меморијом

Резидентни мониторРезидентни монитор

Потребно је штитити код и податке Потребно је штитити код и податке монитора.монитора.

Ову врсту заштите пружа хардвер и Ову врсту заштите пружа хардвер и може се обавити на више начина.може се обавити на више начина.

Page 16: Управљање меморијом

Резидентни мониторРезидентни монитор

CPU

Заштитни регистар

Меморијаадреса (заштитни регистар)

да

не

адреса

Трап адресна грешка

Сл. 4. Хардверска адресна заштита за резидентни монитор.

Page 17: Управљање меморијом

Резидентни мониторРезидентни монитор

Заштитни регистар се може Заштитни регистар се може имплементирати на више начина.имплементирати на више начина.

Један приступ је да се у хардвер угради Један приступ је да се у хардвер угради константна вредност заштитне адресе, константна вредност заштитне адресе, али ово решење није флексибилно.али ово решење није флексибилно.

Често се користи посебан заштитни Често се користи посебан заштитни регистар у који се садржај уписује регистар у који се садржај уписује привилегованим инструкцијама.привилегованим инструкцијама.

Page 18: Управљање меморијом

Резидентни мониторРезидентни монитор

Следећи проблем је пуњење корисничког Следећи проблем је пуњење корисничког програма.програма.

Иако адресни простор почиње од адресе Иако адресни простор почиње од адресе 0, прва адреса у корисничком програму 0, прва адреса у корисничком програму није 0, већ прва адреса после вредности није 0, већ прва адреса после вредности у заштитном регистру.у заштитном регистру.

Page 19: Управљање меморијом

Резидентни мониторРезидентни монитор

Ова промена утиче на адресе коришћене Ова промена утиче на адресе коришћене у корисничком програму.у корисничком програму.

Повезивање инструкција и података са Повезивање инструкција и података са меморијским адресама може се меморијским адресама може се извршити или у време компилације или у извршити или у време компилације или у време пуњења. време пуњења.

Page 20: Управљање меморијом

Резидентни мониторРезидентни монитор

Ако је вредност заштитне адресе позната Ако је вредност заштитне адресе позната у време компилације може се генерисати у време компилације може се генерисати апсолутни кôдапсолутни кôд. Овај кôд ће почети од . Овај кôд ће почети од заштитне адресе и простираће се нагоре. заштитне адресе и простираће се нагоре.

Међутим, ако се вредност заштитне Међутим, ако се вредност заштитне адресе промени потребно је поновно адресе промени потребно је поновно превођење програма. превођење програма.

Page 21: Управљање меморијом

Резидентни мониторРезидентни монитор

Алтернатива је да компилатор генерише Алтернатива је да компилатор генерише релокатибилни кôдрелокатибилни кôд. Тада се повезивање . Тада се повезивање одлаже до момента пуњења. У том одлаже до момента пуњења. У том случају, код промене заштитне адресе, случају, код промене заштитне адресе, потребно је само поновно пуњење потребно је само поновно пуњење програма.програма.

Page 22: Управљање меморијом

Резидентни мониторРезидентни монитор

У оба случаја, вредност заштитне У оба случаја, вредност заштитне адресе мора да буде адресе мора да буде статичкастатичка током током извршења програма. извршења програма.

Али, има случајева када је пожељно да Али, има случајева када је пожељно да се мења величина монитора током се мења величина монитора током извршења програма, а тиме и заштитна извршења програма, а тиме и заштитна адреса. адреса.

Такав кôд се понекад назива Такав кôд се понекад назива транзиентнитранзиентни мониторски кôд.мониторски кôд.

Page 23: Управљање меморијом

Резидентни мониторРезидентни монитор

Постоје два начина да се модификује Постоје два начина да се модификује основна шема да би се омогућила основна шема да би се омогућила динамичка промена величине монитора.динамичка промена величине монитора.

Оперативни ситем рачунара PDP-11 Оперативни ситем рачунара PDP-11 користио је приступ приказан на користио је приступ приказан на следећој слици. следећој слици.

Page 24: Управљање меморијом

Резидентни мониторРезидентни монитор

Сл. 5. Пуњење корисничког програма у вишу меморију.

Монитор

0

65K

Корисник

Заштитни регистар

Page 25: Управљање меморијом

Резидентни мониторРезидентни монитор

Општији приступ, коришћен код Општији приступ, коришћен код рачунара CDC 6600, је да се одложи рачунара CDC 6600, је да се одложи повезивање адреса до времена повезивање адреса до времена извршења. извршења.

Page 26: Управљање меморијом

Резидентни мониторРезидентни монитор

CPU

1400

Меморија

Логичка адреса0346

+

Базни регистар

Физичка адреса1746

Сл. 6. Динамичка релокација која користи релокациони регистар.

Page 27: Управљање меморијом

ПребацивањеПребацивање

Управљање меморијом са резидентним Управљање меморијом са резидентним монитором је једнокорисничка шема.монитором је једнокорисничка шема.

Ипак, прва два Ипак, прва два time-sharingtime-sharing система система ((CTSSCTSS ии Q-32 Q-32) користила су ову шему.) користила су ову шему.

Page 28: Управљање меморијом

ПребацивањеПребацивање

Остатак меморије био је расположив Остатак меморије био је расположив кориснику који се извршавао, а када се кориснику који се извршавао, а када се прелазило на следећег корисника садржај прелазило на следећег корисника садржај корисничке меморије пребацивао се на корисничке меморије пребацивао се на секундарни меморијски медијум.секундарни меморијски медијум.

Page 29: Управљање меморијом

ПребацивањеПребацивање

Ова шема назива се пребацивање Ова шема назива се пребацивање ((swappingswapping))..

Монитор

Корисник

Заштитни регистар

Главна меморија

Корисник 1

Корисник 2

Секундарна меморија

Сл. 7. Пребацивање два корисника на секундарни меморијски медијум.

Page 30: Управљање меморијом

ПребацивањеПребацивање Време пребацивања контекста може се Време пребацивања контекста може се

смањити преклапањем пребацивања и смањити преклапањем пребацивања и извршења програма.извршења програма.

Монитор

Бафер 1

Бафер 2

Кориснички програм који се

извршава

Заштитни регистар

Простор монитора

Сл. 8. Преклопљено пребацивање.

Page 31: Управљање меморијом

Вишеструке партицијеВишеструке партиције

Конфигурација меморије произашла из Конфигурација меморије произашла из преклопљеног пребацивања ефективно преклопљеног пребацивања ефективно је иста као код мултипрограмирања.је иста као код мултипрограмирања.

Сада се меморија дели на известан број Сада се меморија дели на известан број области или области или партицијапартиција..

Page 32: Управљање меморијом

Вишеструке партицијеВишеструке партиције

Две основне шеме су могуће:Две основне шеме су могуће: Додела меморије у непрекидни партицијама Додела меморије у непрекидни партицијама

фиксне дужине (фиксне дужине (MFTMFT).). Додела меморије у непрекидним Додела меморије у непрекидним

партицијама променљиве дужине (Мпартицијама променљиве дужине (МVVТ)Т)..

Page 33: Управљање меморијом

Вишеструке партицијеВишеструке партиције И овде је потребно штитити И овде је потребно штитити

код и податке из једне код и податке из једне области од програма из области од програма из друге области.друге области.

Ова заштита може се Ова заштита може се обавити помоћу два обавити помоћу два регистра.регистра.

Ти регистри садрже горњу и Ти регистри садрже горњу и доњу границу адреса које доњу границу адреса које програм може легално да програм може легално да генерише, и могу се генерише, и могу се дефинисати као:дефинисати као: Гранични регистри.Гранични регистри. Базни и гранични регистар.Базни и гранични регистар.

Монитор

Корисник 1

Корисник 2

Корисник 4

Горња граница

Корисник 3

Доња граница

0

128K

Сл. 9. Два гранична регистра који дефинишу логички адресни простор.

Page 34: Управљање меморијом

Вишеструке партицијеВишеструке партиције

Партиције фиксне дужинеПартиције фиксне дужине. Послови који . Послови који пристижу у систем смештају се у ред пристижу у систем смештају се у ред спремних послова. Планер послова води спремних послова. Планер послова води рачуна о потребама сваког посла и рачуна о потребама сваког посла и расположивим меморијским областима.расположивим меморијским областима.

Page 35: Управљање меморијом

Вишеструке партицијеВишеструке партиције

Код доделе меморије могуће је да свака Код доделе меморије могуће је да свака партиција има свој ред или да планер партиција има свој ред или да планер послова из јединственог реда бира послова из јединственог реда бира послове (послове (best-fit-only best-fit-only или или best-available-best-available-fitfit).).

Јављају се Јављају се интернаинтерна и и екстернаекстерна фрагментацијафрагментација..

Page 36: Управљање меморијом

Вишеструке партицијеВишеструке партиције

Партиције променљиве дужинеПартиције променљиве дужине. Како би . Како би се минимизирале обе фрагментације се минимизирале обе фрагментације користи се динамичка промена величине користи се динамичка промена величине партиција.партиција.

На почетку је читава меморија На почетку је читава меморија расположена и назива се расположена и назива се рупарупа. Послу се . Послу се додељује онолико меморије колико му је додељује онолико меморије колико му је потребно.потребно.

Page 37: Управљање меморијом

Вишеструке партицијеВишеструке партиције

Ослобођена меморија поново поста је Ослобођена меморија поново поста је рупа а више суседних рупа уједињује се рупа а више суседних рупа уједињује се у једну.у једну.

Алгоритми доделе меморије су Алгоритми доделе меморије су first-fit first-fit и и best-fitbest-fit..

И овде постоји проблем екстерне И овде постоји проблем екстерне фрагментације који се може решавати фрагментације који се може решавати компакцијомкомпакцијом..

Page 38: Управљање меморијом

СтраничењеСтраничење

MVTMVT шема показује екстерну шема показује екстерну фрагментацију, најчешће стога што фрагментацију, најчешће стога што расположива меморија није континуална.расположива меморија није континуална.

СтраничењеСтраничење дозвољава да меморија дозвољава да меморија додељена једном програму буде додељена једном програму буде неконтинуална.неконтинуална.

Page 39: Управљање меморијом

СтраничењеСтраничење

CPU p d

f

p

f d

Физичка меморија

Логичка адреса

Физичка адреса

Странична табела

Сл. 10. Хардвер потребан код страничења.

Page 40: Управљање меморијом

СтраничењеСтраничење

Страница 0

Страница 1

Страница 2

Страница 3

Логичка меморија

1

4

3

7

0

1

2

3

Странична табела

Страница 1

Страница 3

Физичка меморија

Страница 0

Страница 2

0

1

2

3

7

4

5

6

Број оквира

Сл. 11. Странични модел логичке и физичке меморије.

Page 41: Управљање меморијом

СтраничењеСтраничење

Величина странице одређена је Величина странице одређена је хардверски и обично је степен двојке.хардверски и обично је степен двојке.

Ако је Ако је PP величина странице, тада величина странице, тада логичка адреса логичка адреса UU даје број странице даје број странице pp и и офсет офсет dd на следећи начин:на следећи начин:

pp = = UU divdiv PP

dd = = UU modmod PP

Page 42: Управљање меморијом

СтраничењеСтраничење

Странична табела се имплементира као Странична табела се имплементира као скуп специјализованих регистара. скуп специјализованих регистара.

Диспечер Диспечер CPUCPU--aa пуни те регистре као пуни те регистре као што то ради и са осталим.што то ради и са осталим.

Инструкције које пуне или модификују Инструкције које пуне или модификују страничну табелу су привилеговане и страничну табелу су привилеговане и само ОС може да их извршава.само ОС може да их извршава.

Page 43: Управљање меморијом

СтраничењеСтраничење

Ако странична табела није релативно Ако странична табела није релативно мала онда се она држи у меморији, а мала онда се она држи у меморији, а базни регистар страничне табелебазни регистар страничне табеле ((Page Table Base RegisterPage Table Base Register - PTBR - PTBR) ) садржи њену адресу.садржи њену адресу.

Page 44: Управљање меморијом

СтраничењеСтраничење

Проблем је што ради приступа неком Проблем је што ради приступа неком податку морамо да имамо два обраћања податку морамо да имамо два обраћања меморији.меморији.

Решење овог проблема је да се користи Решење овог проблема је да се користи асоцијативна меморијаасоцијативна меморија..

Page 45: Управљање меморијом

СтраничењеСтраничење

Проценат успешног проналажења жељене Проценат успешног проналажења жељене ставке у асоцијативној меморији назива се ставке у асоцијативној меморији назива се фактор поготкафактор поготка ( (hit ratiohit ratio).).

Page 46: Управљање меморијом

СтраничењеСтраничење

Ако је фактор поготка 80% а време Ако је фактор поготка 80% а време претраживања асоцијативне меморије претраживања асоцијативне меморије 5050nsns и време приступа меморији 750 и време приступа меморији 750ns, ns, тада можемо израчунати тада можемо израчунати ефективно ефективно време приступа меморијивреме приступа меморији као као

ttefef = = 0.80(50+750)+0.20(50+750+750)0.80(50+750)+0.20(50+750+750)

Page 47: Управљање меморијом

СегментацијаСегментација

Сегментација је шема која подржава Сегментација је шема која подржава поглед на меморију као на скуп поглед на меморију као на скуп сегмената различите дужине.сегмената различите дужине.

Логички адресни простор је колекција Логички адресни простор је колекција сегмената који имају име (број) и дужину.сегмената који имају име (број) и дужину.

Адресе специфицирају име сегмента и Адресе специфицирају име сегмента и офсет унутар сегмента.офсет унутар сегмента.

За пресликавање адреса користи се За пресликавање адреса користи се сегментна табела.сегментна табела.

Page 48: Управљање меморијом

СегментацијаСегментација

CPU

граница база

Сегментна табела

s

<

(s,d)

+Меморијаda

ne

Трап адресна грешка

Сл. 12. Хардвер за подршку сегментацији.

Page 49: Управљање меморијом

СегментацијаСегментација

Као и странична табела, и сегментна Као и странична табела, и сегментна табела може бити смештена у табела може бити смештена у асоцијативној или у оперативној асоцијативној или у оперативној меморији.меморији.

Page 50: Управљање меморијом

СегментацијаСегментација

Када је број сегмената релативно велики Када је број сегмената релативно велики табела се смешта у меморију а на њу табела се смешта у меморију а на њу указује указује базни регистар сегментне табелебазни регистар сегментне табеле ((Segment Table Base RegisterSegment Table Base Register - STBR - STBR))..

Како број сегмената може да варира Како број сегмената може да варира користи се и користи се и регистар дужине сегментне регистар дужине сегментне табелетабеле ( (Segment Table Length RegisterSegment Table Length Register - - STRLSTRL))..

Page 51: Управљање меморијом

СегментацијаСегментација

И страничење и сегментација имају своје И страничење и сегментација имају своје предности и недостатке.предности и недостатке.

Могуће је комбиновати ова два приступа Могуће је комбиновати ова два приступа и добити шеме и добити шеме сегментирано страничењесегментирано страничење и и страничну сегментацијастраничну сегментација..