1 / 51

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

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

kaye-moon
Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Улога меморије у рачунарском систему • Код мултипрограмирања процеси деле меморију као један од најважнијих ресурса система. • Меморија је дугачак низ речи или бајтова који имају своје адресе. • Интеракција са меморијом одвија са кроз низ читања или уписа у локације са одређеном адресом.

  3. Сл. 1. Централни положај меморије у рачунарском систему. У/Исистем CPU меморија Улога меморије у рачунарском систему • CPU прибавља инструкције и податке из меморије и смешта податке у меморију.

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

  5. Улога меморије у рачунарском систему • Компилатор обично повезује те симболичке адресе са релокатибилним адресама. • Едитор веза или пунилац повезује релокатибилне адресе са апсолутним адресама. • Свако повезивање је пресликавање из једног адресног простора у други.

  6. Улога меморије у рачунарском систему • Најзад се програм преслика у апсолутне адресе и напуни у меморију. • Током извршења програма приступа се његовим инструкцијама и подацима генерисањем њихових апсолутних адреса.

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

  8. Улога меморије у рачунарском систему • Типичан циклус инструкције почиње њеним прибављањем из меморије. • Инструкција се декодира и по потреби прибављају њени операнди из меморије. • После извршења резултат се смешта у меморију.

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

  10. 0 Корисник 32K Сл. 2. Гола машина. Концепт голе машине • Најједноставнији алгоритам за управљање меморијом је непостојећи! • Корисник има на располагању голу машину и потуну контролу над меморијским простором.

  11. Концепт голе машине • Предности: • максимална флексибилност и једноставност; • не постоји потреба за посебним хардвером или системским софтвером.

  12. Концепт голе машине • Озбиљан недостатак је у томе што овај систем не пружа никакве услуге! • Стога се овај систем користи само у специјални апликацијама где корисници захтевају флексибилност и једноставност.

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

  14. 0 Монитор Заштитни регистар Корисник 32K Резидентни монитор Сл. 3. Резидентни монитор.

  15. Резидентни монитор • Потребно је штитити код и податке монитора. • Ову врсту заштите пружа хардвер и може се обавити на више начина.

  16. Заштитни регистар Меморија CPU да адреса адреса (заштитни регистар) не Трап адресна грешка Резидентни монитор Сл. 4. Хардверска адресна заштита за резидентни монитор.

  17. Резидентни монитор • Заштитни регистар се може имплементирати на више начина. • Један приступ је да се у хардвер угради константна вредност заштитне адресе, али ово решење није флексибилно. • Често се користи посебан заштитни регистар у који се садржај уписује привилегованим инструкцијама.

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

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

  20. Резидентни монитор • Ако је вредност заштитне адресе позната у време компилације може се генерисати апсолутни кôд. Овај кôд ће почети од заштитне адресе и простираће се нагоре. • Међутим, ако се вредност заштитне адресе промени потребно је поновно превођење програма.

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

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

  23. Резидентни монитор • Постоје два начина да се модификује основна шема да би се омогућила динамичка промена величине монитора. • Оперативни ситем рачунара PDP-11 користио је приступ приказан на следећој слици.

  24. 0 Монитор Заштитнирегистар Корисник 65K Резидентни монитор Сл. 5. Пуњење корисничког програма у вишу меморију.

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

  26. Базни регистар 1400 Меморија Логичка адреса 0346 Физичка адреса 1746 CPU + Резидентни монитор Сл. 6. Динамичка релокација која користи релокациони регистар.

  27. Пребацивање • Управљање меморијом са резидентним монитором је једнокорисничка шема. • Ипак, прва два time-sharing система (CTSSи Q-32) користила су ову шему.

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

  29. Монитор Заштитни регистар Корисник 1 Корисник Корисник 2 Главна меморија Секундарна меморија Сл. 7. Пребацивање два корисника на секундарни меморијски медијум. Пребацивање • Ова шема назива се пребацивање (swapping).

  30. Монитор Бафер 1 Простор монитора Бафер 2 Заштитни регистар Кориснички програм који се извршава Сл. 8. Преклопљено пребацивање. Пребацивање • Време пребацивања контекста може се смањити преклапањем пребацивања и извршења програма.

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

  32. Вишеструке партиције • Две основне шеме су могуће: • Додела меморије у непрекидни партицијама фиксне дужине (MFT). • Додела меморије у непрекидним партицијама променљиве дужине (МVТ).

  33. 0 Монитор Корисник 1 Доња граница Корисник 2 Горња граница Корисник 3 Корисник 4 128K • Сл.9. Два гранична регистра који дефинишу логички адресни простор. Вишеструке партиције • И овде је потребно штитити код и податке из једне области од програма из друге области. • Ова заштита може се обавити помоћу два регистра. • Ти регистри садрже горњу и доњу границу адреса које програм може легално да генерише, и могу се дефинисати као: • Гранични регистри. • Базни и гранични регистар.

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

  35. Вишеструке партиције • Код доделе меморије могуће је да свака партиција има свој ред или да планер послова из јединственог реда бира послове (best-fit-only или best-available-fit). • Јављају се интерна и екстерна фрагментација.

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

  37. Вишеструке партиције • Ослобођена меморија поново поста је рупа а више суседних рупа уједињује се у једну. • Алгоритми доделе меморије су first-fit и best-fit. • И овде постоји проблем екстерне фрагментације који се може решавати компакцијом.

  38. Страничење • MVT шема показује екстерну фрагментацију, најчешће стога што расположива меморија није континуална. • Страничење дозвољава да меморија додељена једном програму буде неконтинуална.

  39. Физичка меморија Логичка адреса Физичка адреса CPU p d f d p f Странична табела Сл. 10. Хардвер потребан код страничења. Страничење

  40. Број оквира 1 0 0 Страница 0 Страница 0 4 1 1 Страница 1 3 2 2 7 Страница 2 Страница 2 3 3 Страница 3 Страница 1 4 Странична табела 5 Логичка меморија 6 Страница 3 7 Физичка меморија Сл. 11. Странични модел логичке и физичке меморије. Страничење

  41. Страничење • Величина странице одређена је хардверски и обично је степен двојке. • Ако је Pвеличина странице, тада логичка адреса U даје број странице pи офсет dна следећи начин: p = UdivP d = UmodP

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

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

  44. Страничење • Проблем је што ради приступа неком податку морамо да имамо два обраћања меморији. • Решење овог проблема је да се користи асоцијативна меморија.

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

  46. Страничење • Ако је фактор поготка 80% а време претраживања асоцијативне меморије 50ns и време приступа меморији 750ns, тада можемо израчунати ефективно време приступа меморији као tef = 0.80(50+750)+0.20(50+750+750)

  47. Сегментација • Сегментација је шема која подржава поглед на меморију као на скуп сегмената различите дужине. • Логички адресни простор је колекција сегмената који имају име (број) и дужину. • Адресе специфицирају име сегмента и офсет унутар сегмента. • За пресликавање адреса користи се сегментна табела.

  48. Сегментна табела s граница база CPU (s,d) Меморија da + ne Трап адресна грешка Сл. 12. Хардвер за подршку сегментацији. < Сегментација

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

  50. Сегментација • Када је број сегмената релативно велики табела се смешта у меморију а на њу указује базни регистар сегментне табеле (Segment Table Base Register - STBR). • Како број сегмената може да варира користи се и регистар дужине сегментне табеле (Segment Table Length Register - STRL).

More Related