Управљање меморијом
DESCRIPTION
Управљање меморијом. Улога меморије у рачунарском систему Концепт голе машине Резидентни монитор Пребацивање Вишеструке партиције Страничење Сегментација. Улога меморије у рачунарском систему. Код мултипрограмирања процеси деле меморију као један од најважнијих ресурса система. - PowerPoint PPT PresentationTRANSCRIPT
Управљање Управљање меморијоммеморијом
Улога меморије у рачунарском системуУлога меморије у рачунарском системуКонцепт голе машинеКонцепт голе машинеРезидентни мониторРезидентни мониторПребацивањеПребацивањеВишеструке партицијеВишеструке партицијеСтраничењеСтраничењеСегментацијаСегментација
Улога меморије у Улога меморије у рачунарском системурачунарском систему
Код мултипрограмирања процеси Код мултипрограмирања процеси деле меморију као један од деле меморију као један од најважнијих ресурса система.најважнијих ресурса система.
Меморија је дугачак низ речи или Меморија је дугачак низ речи или бајтова који имају своје адресе.бајтова који имају своје адресе.
Интеракција са меморијом одвија са Интеракција са меморијом одвија са кроз низ читања или уписа у локације кроз низ читања или уписа у локације са одређеном адресом.са одређеном адресом.
Улога меморије у Улога меморије у рачунарском системурачунарском систему
CPUCPU прибавља инструкције и податке прибавља инструкције и податке из меморије и смешта податке у из меморије и смешта податке у меморију.меморију.
CPU меморијаУ/И
систем
Сл. 1. Централни положај меморије у рачунарском систему.
Улога меморије у Улога меморије у рачунарском системурачунарском систему Кориснички програм пролази кроз Кориснички програм пролази кроз
неколико корака пре свог извршења. неколико корака пре свог извршења. Адресе се могу представљати на Адресе се могу представљати на различите начине у току тих корака.различите начине у току тих корака.
Адресе у изворном програму су у Адресе у изворном програму су у општем случају општем случају симболичкесимболичке (имена (имена променљивих).променљивих).
Улога меморије у Улога меморије у рачунарском системурачунарском систему Компилатор обично повезује те Компилатор обично повезује те
симболичке адресе са симболичке адресе са релокатибилнимрелокатибилним адресама.адресама.
Едитор веза или пунилац повезује Едитор веза или пунилац повезује релокатибилне адресе са релокатибилне адресе са апсолутнимапсолутним адресама.адресама.
Свако повезивање је пресликавање из Свако повезивање је пресликавање из једног адресног простора у други.једног адресног простора у други.
Улога меморије у Улога меморије у рачунарском системурачунарском систему Најзад се програм преслика у Најзад се програм преслика у
апсолутне адресе и напуни у меморију.апсолутне адресе и напуни у меморију. Током извршења програма приступа се Током извршења програма приступа се
његовим инструкцијама и подацима његовим инструкцијама и подацима генерисањем њихових апсолутних генерисањем њихових апсолутних адреса.адреса.
Улога меморије у Улога меморије у рачунарском системурачунарском систему По завршетку програма меморијски По завршетку програма меморијски
простор који му је додељен се простор који му је додељен се проглашава слободним и наредни проглашава слободним и наредни програм може да се изврши.програм може да се изврши.
Улога меморије у Улога меморије у рачунарском системурачунарском систему Типичан циклус инструкције почиње Типичан циклус инструкције почиње
њеним прибављањем из меморије.њеним прибављањем из меморије. Инструкција се декодира и по потреби Инструкција се декодира и по потреби
прибављају њени операнди из прибављају њени операнди из меморије.меморије.
После извршења резултат се смешта у После извршења резултат се смешта у меморију.меморију.
Улога меморије у Улога меморије у рачунарском системурачунарском систему
Јединица меморије види само низ Јединица меморије види само низ меморијских адреса незнајући како су меморијских адреса незнајући како су оне генерисане (који је адресни начин оне генерисане (који је адресни начин рада употребљен) и шта оне рада употребљен) и шта оне представљају (инструкције или податке).представљају (инструкције или податке).
Концепт голе машинеКонцепт голе машине Најједноставнији алгоритам за Најједноставнији алгоритам за
управљање меморијом је управљање меморијом је непостојећинепостојећи!! Корисник има на располагању голу Корисник има на располагању голу
машину и потуну контролу над машину и потуну контролу над меморијским простором.меморијским простором.
Корисник
0
32K
Сл. 2. Гола машина.
Концепт голе машинеКонцепт голе машине
Предности:Предности: максимална флексибилност и једноставност;максимална флексибилност и једноставност; не постоји потреба за посебним хардвером не постоји потреба за посебним хардвером
или системским софтвером.или системским софтвером.
Концепт голе машинеКонцепт голе машине
Озбиљан недостатак је у томе што овај Озбиљан недостатак је у томе што овај систем не пружа никакве услуге!систем не пружа никакве услуге!
Стога се овај систем користи само у Стога се овај систем користи само у специјални апликацијама где корисници специјални апликацијама где корисници захтевају флексибилност и једноставност.захтевају флексибилност и једноставност.
Резидентни мониторРезидентни монитор
Следећа једноставна шема је да се Следећа једноставна шема је да се меморија подели на два дела, један за меморија подели на два дела, један за корисника и један за корисника и један за резидентни резидентни монитормонитор оперативног система. оперативног система.
Постоји могућност да се резидентни Постоји могућност да се резидентни монитор смести или на почетак или на монитор смести или на почетак или на крај меморије што зависи од локације крај меморије што зависи од локације вектора прекида.вектора прекида.
Резидентни мониторРезидентни монитор
Сл. 3. Резидентни монитор.
Монитор
0
32K
Корисник
Заштитни регистар
Резидентни мониторРезидентни монитор
Потребно је штитити код и податке Потребно је штитити код и податке монитора.монитора.
Ову врсту заштите пружа хардвер и Ову врсту заштите пружа хардвер и може се обавити на више начина.може се обавити на више начина.
Резидентни мониторРезидентни монитор
CPU
Заштитни регистар
Меморијаадреса (заштитни регистар)
да
не
адреса
Трап адресна грешка
Сл. 4. Хардверска адресна заштита за резидентни монитор.
Резидентни мониторРезидентни монитор
Заштитни регистар се може Заштитни регистар се може имплементирати на више начина.имплементирати на више начина.
Један приступ је да се у хардвер угради Један приступ је да се у хардвер угради константна вредност заштитне адресе, константна вредност заштитне адресе, али ово решење није флексибилно.али ово решење није флексибилно.
Често се користи посебан заштитни Често се користи посебан заштитни регистар у који се садржај уписује регистар у који се садржај уписује привилегованим инструкцијама.привилегованим инструкцијама.
Резидентни мониторРезидентни монитор
Следећи проблем је пуњење корисничког Следећи проблем је пуњење корисничког програма.програма.
Иако адресни простор почиње од адресе Иако адресни простор почиње од адресе 0, прва адреса у корисничком програму 0, прва адреса у корисничком програму није 0, већ прва адреса после вредности није 0, већ прва адреса после вредности у заштитном регистру.у заштитном регистру.
Резидентни мониторРезидентни монитор
Ова промена утиче на адресе коришћене Ова промена утиче на адресе коришћене у корисничком програму.у корисничком програму.
Повезивање инструкција и података са Повезивање инструкција и података са меморијским адресама може се меморијским адресама може се извршити или у време компилације или у извршити или у време компилације или у време пуњења. време пуњења.
Резидентни мониторРезидентни монитор
Ако је вредност заштитне адресе позната Ако је вредност заштитне адресе позната у време компилације може се генерисати у време компилације може се генерисати апсолутни кôдапсолутни кôд. Овај кôд ће почети од . Овај кôд ће почети од заштитне адресе и простираће се нагоре. заштитне адресе и простираће се нагоре.
Међутим, ако се вредност заштитне Међутим, ако се вредност заштитне адресе промени потребно је поновно адресе промени потребно је поновно превођење програма. превођење програма.
Резидентни мониторРезидентни монитор
Алтернатива је да компилатор генерише Алтернатива је да компилатор генерише релокатибилни кôдрелокатибилни кôд. Тада се повезивање . Тада се повезивање одлаже до момента пуњења. У том одлаже до момента пуњења. У том случају, код промене заштитне адресе, случају, код промене заштитне адресе, потребно је само поновно пуњење потребно је само поновно пуњење програма.програма.
Резидентни мониторРезидентни монитор
У оба случаја, вредност заштитне У оба случаја, вредност заштитне адресе мора да буде адресе мора да буде статичкастатичка током током извршења програма. извршења програма.
Али, има случајева када је пожељно да Али, има случајева када је пожељно да се мења величина монитора током се мења величина монитора током извршења програма, а тиме и заштитна извршења програма, а тиме и заштитна адреса. адреса.
Такав кôд се понекад назива Такав кôд се понекад назива транзиентнитранзиентни мониторски кôд.мониторски кôд.
Резидентни мониторРезидентни монитор
Постоје два начина да се модификује Постоје два начина да се модификује основна шема да би се омогућила основна шема да би се омогућила динамичка промена величине монитора.динамичка промена величине монитора.
Оперативни ситем рачунара PDP-11 Оперативни ситем рачунара PDP-11 користио је приступ приказан на користио је приступ приказан на следећој слици. следећој слици.
Резидентни мониторРезидентни монитор
Сл. 5. Пуњење корисничког програма у вишу меморију.
Монитор
0
65K
Корисник
Заштитни регистар
Резидентни мониторРезидентни монитор
Општији приступ, коришћен код Општији приступ, коришћен код рачунара CDC 6600, је да се одложи рачунара CDC 6600, је да се одложи повезивање адреса до времена повезивање адреса до времена извршења. извршења.
Резидентни мониторРезидентни монитор
CPU
1400
Меморија
Логичка адреса0346
+
Базни регистар
Физичка адреса1746
Сл. 6. Динамичка релокација која користи релокациони регистар.
ПребацивањеПребацивање
Управљање меморијом са резидентним Управљање меморијом са резидентним монитором је једнокорисничка шема.монитором је једнокорисничка шема.
Ипак, прва два Ипак, прва два time-sharingtime-sharing система система ((CTSSCTSS ии Q-32 Q-32) користила су ову шему.) користила су ову шему.
ПребацивањеПребацивање
Остатак меморије био је расположив Остатак меморије био је расположив кориснику који се извршавао, а када се кориснику који се извршавао, а када се прелазило на следећег корисника садржај прелазило на следећег корисника садржај корисничке меморије пребацивао се на корисничке меморије пребацивао се на секундарни меморијски медијум.секундарни меморијски медијум.
ПребацивањеПребацивање
Ова шема назива се пребацивање Ова шема назива се пребацивање ((swappingswapping))..
Монитор
Корисник
Заштитни регистар
Главна меморија
Корисник 1
Корисник 2
Секундарна меморија
Сл. 7. Пребацивање два корисника на секундарни меморијски медијум.
ПребацивањеПребацивање Време пребацивања контекста може се Време пребацивања контекста може се
смањити преклапањем пребацивања и смањити преклапањем пребацивања и извршења програма.извршења програма.
Монитор
Бафер 1
Бафер 2
Кориснички програм који се
извршава
Заштитни регистар
Простор монитора
Сл. 8. Преклопљено пребацивање.
Вишеструке партицијеВишеструке партиције
Конфигурација меморије произашла из Конфигурација меморије произашла из преклопљеног пребацивања ефективно преклопљеног пребацивања ефективно је иста као код мултипрограмирања.је иста као код мултипрограмирања.
Сада се меморија дели на известан број Сада се меморија дели на известан број области или области или партицијапартиција..
Вишеструке партицијеВишеструке партиције
Две основне шеме су могуће:Две основне шеме су могуће: Додела меморије у непрекидни партицијама Додела меморије у непрекидни партицијама
фиксне дужине (фиксне дужине (MFTMFT).). Додела меморије у непрекидним Додела меморије у непрекидним
партицијама променљиве дужине (Мпартицијама променљиве дужине (МVVТ)Т)..
Вишеструке партицијеВишеструке партиције И овде је потребно штитити И овде је потребно штитити
код и податке из једне код и податке из једне области од програма из области од програма из друге области.друге области.
Ова заштита може се Ова заштита може се обавити помоћу два обавити помоћу два регистра.регистра.
Ти регистри садрже горњу и Ти регистри садрже горњу и доњу границу адреса које доњу границу адреса које програм може легално да програм може легално да генерише, и могу се генерише, и могу се дефинисати као:дефинисати као: Гранични регистри.Гранични регистри. Базни и гранични регистар.Базни и гранични регистар.
Монитор
Корисник 1
Корисник 2
Корисник 4
Горња граница
Корисник 3
Доња граница
0
128K
Сл. 9. Два гранична регистра који дефинишу логички адресни простор.
Вишеструке партицијеВишеструке партиције
Партиције фиксне дужинеПартиције фиксне дужине. Послови који . Послови који пристижу у систем смештају се у ред пристижу у систем смештају се у ред спремних послова. Планер послова води спремних послова. Планер послова води рачуна о потребама сваког посла и рачуна о потребама сваког посла и расположивим меморијским областима.расположивим меморијским областима.
Вишеструке партицијеВишеструке партиције
Код доделе меморије могуће је да свака Код доделе меморије могуће је да свака партиција има свој ред или да планер партиција има свој ред или да планер послова из јединственог реда бира послова из јединственог реда бира послове (послове (best-fit-only best-fit-only или или best-available-best-available-fitfit).).
Јављају се Јављају се интернаинтерна и и екстернаекстерна фрагментацијафрагментација..
Вишеструке партицијеВишеструке партиције
Партиције променљиве дужинеПартиције променљиве дужине. Како би . Како би се минимизирале обе фрагментације се минимизирале обе фрагментације користи се динамичка промена величине користи се динамичка промена величине партиција.партиција.
На почетку је читава меморија На почетку је читава меморија расположена и назива се расположена и назива се рупарупа. Послу се . Послу се додељује онолико меморије колико му је додељује онолико меморије колико му је потребно.потребно.
Вишеструке партицијеВишеструке партиције
Ослобођена меморија поново поста је Ослобођена меморија поново поста је рупа а више суседних рупа уједињује се рупа а више суседних рупа уједињује се у једну.у једну.
Алгоритми доделе меморије су Алгоритми доделе меморије су first-fit first-fit и и best-fitbest-fit..
И овде постоји проблем екстерне И овде постоји проблем екстерне фрагментације који се може решавати фрагментације који се може решавати компакцијомкомпакцијом..
СтраничењеСтраничење
MVTMVT шема показује екстерну шема показује екстерну фрагментацију, најчешће стога што фрагментацију, најчешће стога што расположива меморија није континуална.расположива меморија није континуална.
СтраничењеСтраничење дозвољава да меморија дозвољава да меморија додељена једном програму буде додељена једном програму буде неконтинуална.неконтинуална.
СтраничењеСтраничење
CPU p d
f
p
f d
Физичка меморија
Логичка адреса
Физичка адреса
Странична табела
Сл. 10. Хардвер потребан код страничења.
СтраничењеСтраничење
Страница 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. Странични модел логичке и физичке меморије.
СтраничењеСтраничење
Величина странице одређена је Величина странице одређена је хардверски и обично је степен двојке.хардверски и обично је степен двојке.
Ако је Ако је PP величина странице, тада величина странице, тада логичка адреса логичка адреса UU даје број странице даје број странице pp и и офсет офсет dd на следећи начин:на следећи начин:
pp = = UU divdiv PP
dd = = UU modmod PP
СтраничењеСтраничење
Странична табела се имплементира као Странична табела се имплементира као скуп специјализованих регистара. скуп специјализованих регистара.
Диспечер Диспечер CPUCPU--aa пуни те регистре као пуни те регистре као што то ради и са осталим.што то ради и са осталим.
Инструкције које пуне или модификују Инструкције које пуне или модификују страничну табелу су привилеговане и страничну табелу су привилеговане и само ОС може да их извршава.само ОС може да их извршава.
СтраничењеСтраничење
Ако странична табела није релативно Ако странична табела није релативно мала онда се она држи у меморији, а мала онда се она држи у меморији, а базни регистар страничне табелебазни регистар страничне табеле ((Page Table Base RegisterPage Table Base Register - PTBR - PTBR) ) садржи њену адресу.садржи њену адресу.
СтраничењеСтраничење
Проблем је што ради приступа неком Проблем је што ради приступа неком податку морамо да имамо два обраћања податку морамо да имамо два обраћања меморији.меморији.
Решење овог проблема је да се користи Решење овог проблема је да се користи асоцијативна меморијаасоцијативна меморија..
СтраничењеСтраничење
Проценат успешног проналажења жељене Проценат успешног проналажења жељене ставке у асоцијативној меморији назива се ставке у асоцијативној меморији назива се фактор поготкафактор поготка ( (hit ratiohit ratio).).
СтраничењеСтраничење
Ако је фактор поготка 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)
СегментацијаСегментација
Сегментација је шема која подржава Сегментација је шема која подржава поглед на меморију као на скуп поглед на меморију као на скуп сегмената различите дужине.сегмената различите дужине.
Логички адресни простор је колекција Логички адресни простор је колекција сегмената који имају име (број) и дужину.сегмената који имају име (број) и дужину.
Адресе специфицирају име сегмента и Адресе специфицирају име сегмента и офсет унутар сегмента.офсет унутар сегмента.
За пресликавање адреса користи се За пресликавање адреса користи се сегментна табела.сегментна табела.
СегментацијаСегментација
CPU
граница база
Сегментна табела
s
<
(s,d)
+Меморијаda
ne
Трап адресна грешка
Сл. 12. Хардвер за подршку сегментацији.
СегментацијаСегментација
Као и странична табела, и сегментна Као и странична табела, и сегментна табела може бити смештена у табела може бити смештена у асоцијативној или у оперативној асоцијативној или у оперативној меморији.меморији.
СегментацијаСегментација
Када је број сегмената релативно велики Када је број сегмената релативно велики табела се смешта у меморију а на њу табела се смешта у меморију а на њу указује указује базни регистар сегментне табелебазни регистар сегментне табеле ((Segment Table Base RegisterSegment Table Base Register - STBR - STBR))..
Како број сегмената може да варира Како број сегмената може да варира користи се и користи се и регистар дужине сегментне регистар дужине сегментне табелетабеле ( (Segment Table Length RegisterSegment Table Length Register - - STRLSTRL))..
СегментацијаСегментација
И страничење и сегментација имају своје И страничење и сегментација имају своје предности и недостатке.предности и недостатке.
Могуће је комбиновати ова два приступа Могуће је комбиновати ова два приступа и добити шеме и добити шеме сегментирано страничењесегментирано страничење и и страничну сегментацијастраничну сегментација..