Principper for Samtidighed og Styresystemer Memory management Ren´e Rydhof Hansen Apr 2011 PSS’2011 (Forelæsning 08) Memory management Apr 2011 1 / 19 M˚ al At kunne forklare og anvende almindelige sideerstatningsalgoritmer Optimal (OPT) Least-recently-used (LRU) Clock Modified Clock At kunne redegøre for forskellige strategier for rammeallokering samt fordele og ulemper ved samme Fast rammeallokering (lige og proportional) Working Set modellen Dynamisk rammeallokering (sidefejlsfrekvens) PSS’2011 (Forelæsning 08) Memory management Apr 2011 2 / 19 Part II Memory management PSS’2011 (Forelæsning 08) Memory management Apr 2011 3 / 19 Sideerstatningsalgoritmer Hvis alle rammer er i brug n˚ ar sidefejl opst˚ ar, skal en eksisterende side erstattes Hvilke(n) side(r) skal flyttes? Global politik: siderne vælges p˚ a tværs af processer Lokal politik: et antal rammer allokeres per process (working set) og sider erstattes p˚ a process basis M˚ al: minim´er sidefejl PSS’2011 (Forelæsning 08) Memory management Apr 2011 4 / 19 Optimal sideerstatning (OPT) Ideelt erstattes den side der skal forblive ubrugt længst Dette princip kaldes for den “optimale sideerstatningsalgoritme” da den giver anledning til færrest sidefejl Ikke en rigtig algoritme, mere et princip og sammenligningsgrundlag Example requested entry 1 entry 2 entry 3 2 2 3 2 3 2 2 3 1 2 3 1 5 2 3 5 2 2 3 5 4 4 3 5 5 4 3 5 3 4 3 5 2 2 3 5 5 2 3 5 2 2 3 5 X = sidefejl PSS’2011 (Forelæsning 08) Memory management Apr 2011 5 / 19 Least Recently Used (LRU) Lokalitetsprincippet (nyligt tilg˚ aede sider skal med stor sandsynlighed bruges i nærmeste fremtid) Derfor: erstat den side der ikke er blevet brugt i længst tid Ved processer med god lokalitet giver LRU næsten samme resultat som OPT Besværlig at implementere Tidsstempling Ekstra plads i sidetabellen Opdatering ved hver tilgang til primær lager(!) Styresystemet skal finde side med mindste tidsstempel Dobbelt kædet liste Flyt siden til front ved hver tilgang Kræver plads (to pointere per side) Dyr at opdatere (seks pointere skal opdateres) LRU bruges ikke i praksis(?) PSS’2011 (Forelæsning 08) Memory management Apr 2011 6 / 19 Least Recently Used Example requested entry 1 entry 2 entry 3 2 2 3 2 3 2 2 3 1 2 3 1 5 2 5 1 2 2 5 1 4 2 5 4 5 2 5 4 3 3 5 4 2 3 5 2 5 3 5 2 2 3 5 2 X = sidefejl PSS’2011 (Forelæsning 08) Memory management Apr 2011 7 / 19 First-in, First-out (FIFO) Erstat siden der har været i lageret længst Implementeres med en kædet liste Nye sider indsættes forrest i listen Sidste side i listen erstattes Modsat LRU opdateres listen kun ved sideerstatning og page faults Tager ikke højde for lokalitet Kan forbedres med page buffering Example requested 2 3 2 entry 1 2 2 2 entry 2 3 3 entry 3 X = sidefejl PSS’2011 (Forelæsning 08) 1 2 3 1 5 2 4 5 5 5 5 5 3 2 2 2 1 1 4 4 X = side der skal ud Memory management 3 2 5 3 3 3 2 2 5 4 4 4 næste gang Apr 2011 2 3 5 2 8 / 19 Optimering: Page buffering Styresystemet holder permanent et minimum af rammer fri Periodisk (Linux: swap daemon) udvælges et antal rammer, som kan skrives til disk i klynger Sider slettes ikke fra primært lager men placeres i en sidebuffer. Hvis siden tilg˚ as igen, fjernes den fra sidebufferen Ved sidefejl kan sider fra sidebufferen erstattes Kan forbedre sideerstatningsalgoritmen, idet d˚ arlige valg kan “fortrydes” PSS’2011 (Forelæsning 08) Memory management Apr 2011 9 / 19 Clock-algoritmen Illustreres som et “ur” med kun een viser Ekstra bit i sidetabellen sættes af MMU’en ved tilgang til siden Ekstra bit fanger lokalitet Sider erstattes kun hvis de ikke har været brugt siden “viseren” sidst passerede over siden I praksis næsten lige s˚ a god som LRU (som er næsten lige s˚ a god som OPT) Example requested 2 3 2 entry 1 2 2 2 entry 2 3 3 entry 3 X = sidefejl PSS’2011 (Forelæsning 08) 1 5 2 2 2 2 3 5 5 1 1 1 X = “viser” Memory management 4 2 5 4 5 3 2 2 5 5 4 3 X = “ekstra 2 2 5 3 bit” 5 2 5 3 Apr 2011 2 2 5 3 10 / 19 Modificeret Clock-algoritme Foretræk umodificerede sider Kræver endnu en bit (dirty) i sidetabellen som sættes n˚ ar der skrives til siden Led efter ubrugte sider (siden sidst) og umodificerede sider Led efter ubrugte men modificerede sider, reset “used” bit PSS’2011 (Forelæsning 08) Memory management Apr 2011 11 / 19 Memory Management: Oversigt Intro Simpel lagerallokering i primær lager Paging og segmentering Organisation af sidetabel Demand paging og sideerstatningsalgoritmer Rammeallokering PSS’2011 (Forelæsning 08) Memory management Apr 2011 12 / 19 Rammeallokering Rammer er ogs˚ a en (sparsom) resource Hvordan allokeres fysisk plads (rammer) til processer? Hvordan fordeles m rammer til n processer? Hvad har en proces behov for? Sidefejlsraten for en process er tilnærmelsesvist omvendt proportionalt med antallet af allokerede rammer PSS’2011 (Forelæsning 08) Memory management Apr 2011 13 / 19 Fast rammeallokering Lige allokering Giv hver process det samme antal rammer: antal rammer antal processer Men forskellige processer har forskellige behov Proportional allokering Giv hver process et antal rammer proportionalt med dens sideantal: pi ×m p1 + p2 + · · · + pn Men nogle processer bruger m˚ aske alle dens sider, mens andre kun bruger en lille del Hvordan findes de sider der faktisk bruges? PSS’2011 (Forelæsning 08) Memory management Apr 2011 14 / 19 “Working set”-modellen Definition (Working set) En proces’ working set, W (t, ∆), til tiden t med vinduet ∆ er mængden af sider en proces har tilg˚ aet indenfor de seneste ∆ tidsenheder Jvf. lokalitetsprincippet: working set er de sider en proces p.t. har brug for Kan bruges til at estimere antallet af rammer der skal allokeres til en proces Sideerstatningsalgoritmer kan ogs˚ a benytte sig af working set modellen til kun at fjerne sider der ikke er i en proces’ working set ∆ fastsættes eksperimentelt For lille: lokalitet fanges ikke For stor: for “meget” lokalitet (overestimering) Working set’et ændrer sig over tid Problem: Kræver igen at MMU’en skal tidsstemple siderne og at styresystemet skal ordne sider efter tid PSS’2011 (Forelæsning 08) Memory management Apr 2011 15 / 19 Sidefejlsfrekvens Lad t være tiden siden sidste sidefejl. Da er F = sidefejlsfrekvens 1 t den øjeblikkelige Er F større end Fmax tilføjes en ramme Hvis F er mindre end Fmin fjernes alle rammer der ikke er tilg˚ aet siden sidste sidefejl Problem: ved mange lokalitetsskift tilføjes nye rammer men gamle sider fjernes ikke umiddelbart PSS’2011 (Forelæsning 08) Memory management Apr 2011 16 / 19 Thrashing Thrashing: n˚ ar processoren bruger det meste af tiden p˚ a at h˚ andtere page faults fremfor at udføre “almindelige” instruktioner P Hvis |Wi (t, ∆)| ≤ m, hvor m er mængden af hukommelse, kan thrashing undg˚ as Ellers m˚ a processer suspenderes PSS’2011 (Forelæsning 08) Memory management Apr 2011 17 / 19 Memory Management: Opsummering Lagerhierarki Virtuelt lager Virtuelle adresser vs. fysiske adresser Lagerallokering i primær lager: fast inddeling, dynamisk inddeling Sidedelt lager (paging) Segmentering Delt hukommelse, styresystemets brug af hukommelse Sidetabeller Demand paging, pre-paging, swapping sideerstatningsalgoritmer (OPT, FIFO, LRU, (M)Clock), page buffering Rammeallokering PSS’2011 (Forelæsning 08) Memory management Apr 2011 18 / 19 Opsummering og næste gang Memory management Demand paging og sideerstatningsalgoritmer Rammeallokering Næste gang Hardwareunderstøttelse PSS’2011 (Forelæsning 08) Memory management Apr 2011 19 / 19
© Copyright 2024