Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Operativsystemer[4]: Arbejdslageret Datalogi 1F Forår 2003 Jørgen Sværke Hansen

Lignende præsentationer


Præsentationer af emnet: "Operativsystemer[4]: Arbejdslageret Datalogi 1F Forår 2003 Jørgen Sværke Hansen"— Præsentationens transcript:

1 Operativsystemer[4]: Arbejdslageret Datalogi 1F Forår 2003 Jørgen Sværke Hansen cyller@diku.dk

2 Datalogi 1F Forår 2003: Operativsystemer[4] 2 Planen for i dag •Binding af programkode til lager •Lagerallokering •Sidebaseret lageradministration •Segmenter •Segmenter kombineret med sider

3 Datalogi 1F Forår 2003: Operativsystemer[4] 3 Binding af programkode til lager De relative adresser i programkoden kan bindes til lageret på 3 tidspunkter: •Oversættelsestidspunkt: hvis startadressen er kendt på oversættelsestidspunktet kan oversætter og lænker generere faste adresser •Programstart: hvis startadresse bestemmes ved programstart skal oversætter producere relokerbar kode. OS loader omformer kode til at bruge absolutte adresser. •Køretid: bindingerne kan opdateres på køretidspunkt. Materiellet understøtter afbildning mellem logisk adresserum og fysisk adresserum

4 Datalogi 1F Forår 2003: Operativsystemer[4] 4 Logiske og fysiske adresser •Opdelingen i logiske og fysiske adresserum danner basis for lageradministration i de fleste OSer i dag: –logiske adresser: de adresser, CPU’en arbejder med (kaldes også virtuelle adresser) –fysiske adresser: de lagerreferencer, lagersystemet arbejder med, f.eks. på systembussen •Kun ved binding på køretidspunktet er der forskel på logiske og fysiske adresser

5 5 Hardware understøttelse af lageradministration •Lageradministration varetages af en ”Memory Management Unit” (MMU): –Intel x86 familien introducerede ”protected mode” til 80286 (1982), men først fra 80386 var der en rigtig MMU med sidebaseret lageradm. (1985-…) –Motorola 68000 familien havde en MMU fra 68030 og frem (1986 - …) •I indlejrede systemer anvendes ofte CPU’er uden MMU •MMU’en håndterer oversættelse fra logiske til fysiske adresser, f.eks.: –base og grænseregistre

6 Datalogi 1F Forår 2003: Operativsystemer[4] 6 Eksempel: omregning fra logiske til fysiske adresser

7 Datalogi 1F Forår 2003: Operativsystemer[4] 7 Systemarkitektur CPU lager I/O bro I/O styreenhed disk I/O styreenhed netkort I/O styreenhed skærm systembus I/O bus cache MMU

8 Datalogi 1F Forår 2003: Operativsystemer[4] 8 Overlays •Hvad gør man når programstørrelsen er større end det tilgængelige lager? •Programkoden kan splittes op i forskellige faser, hvor kun en fase ad gangen opholder sig i lageret •Koden til en fase placeres i et ”overlay”. Dette sker som regel i et samarbejde mellem programmør og oversætter •Kompleks opgave for store programmer

9 Datalogi 1F Forår 2003: Operativsystemer[4] 9 Eksempel: oversætter med overlay

10 Datalogi 1F Forår 2003: Operativsystemer[4] 10 Swapping •I multiprogrammeringssystemer kan det blive nødvendigt at fjerne en proces fra arbejdslageret og gemme den på sekundært lager. •Hele processens tilstand gemmes – overførsel af arbejdslager til sekundært lager dominerer omkostningerne •En variant af swapping i moderne systemer er flytning af processer, hvor en proces overføres fra en maskine til en anden •Swapping kræver at processen har simple eksterne bindinger

11 Datalogi 1F Forår 2003: Operativsystemer[4] 11 Sammenhængende lagerallokering •Systemer, hvor lager til processer allokeres i en sammenhængende blok •System- og brugerarbejdslager: –operativsystemet er typisk placeret i den nederste (laveste) ende af det fysiske adresserum sammen med afbrydelsesvektoren –brugerprogrammerne placeres i den øvre del af lagerområdet •Afgrænsning af brugerens lagerområde: –et forskydningsregister, der angiver brugerprocessens startadresse –et grænseregister, der angiver den maksimale størrelse på brugerprocessens lagerområde

12 Datalogi 1F Forår 2003: Operativsystemer[4] 12 Grænse- og baseregister

13 Lagerallokering med flere partitioner •lageradministration uddeler blokke af lager til processerne, når en proces startes •OS holder rede på allokerede og frie områder OS proces 5 proces 8 proces 2 OS proces 5 proces 2 proces 9 OS proces 5 proces 9 proces 2 proces 10 OS proces 5 proces 2 proces 10 OS proces 5 proces 2 proces 11

14 Datalogi 1F Forår 2003: Operativsystemer[4] 14 Dynamisk lagerallokering •First-fit: en proces tildeles det første hul, der er stort nok •Best-fit: en proces tildeles det hul, der passer bedst (efterlader det mindste nye hul). Kræver en gennemsøgning af alle frie blokke medmindre blokke er sorteret efter størrelse. •Worst-fit: en proces tildeles det hul, der passer dårligst (efterlader det største nye hul). Kræver også gennemsøgning af alle frie blokke

15 15 Fragmentering •Ekstern fragmentering: opdelingen af arbejdslageret efterlader huller mellem allokerede blokke: –Måske ikke er store nok til at tilfredsstille forespørgsler efter yderligere lager •Intern fragmentering: pga. effektivitetshensyn uddeles arbejdslageret kun i blokke af en vis størrelse S. I værste fald spildes S-1 bytes hver gang der allokeres lager •Ekstern fragmentering kan afhjælpes: –omorganisering af lager på køretidspunkt: sammenlægning af frie blokke til en stor blok –kræver at lagerafbildning kan ændres på køretidspunkt –lagerområder kan være bundet af I/O aktivitet (I/O enheder arbejder typisk med fysiske adresser)

16 Datalogi 1F Forår 2003: Operativsystemer[4] 16 Sidebaseret lageradministration •Processens lager består af ikke sammenhængende lagerblokke •Det fysiske lager opdeles i et antal sidepladser (typisk er størrelsen en 2’er potens: alm. 512 – 8192 bytes) •Det logiske adresserum opdeles i sider med samme størrelse som sidepladsstørrelsen •OS lageradministration holder rede på frie sidepladser •Hvis en proces har brug for n sider i det logiske adresserum, forsøger OS’et at finde n frie sidepladser i det fysiske adresserum •Hver proces har en sidetabel, der beskriver afbildning fra sider (logiske) til sidepladser (fysiske) •Afvejning: jo mindre sidestørrelse jo større sidetabel, men samtidig mindre intern fragmentering

17 Datalogi 1F Forår 2003: Operativsystemer[4] 17 Opbygning af adresser •En logisk adresse består af to dele: –et sidenummer (p) (den mest betydende del af adressen) –en forskydning (d) indenfor siden •Adressen findes ved at omsætte sidenummeret til den fysiske adresse (f) på en sideplads og lægge forskydningen til fd pd

18 18 Afbildning af adresser

19 Datalogi 1F Forår 2003: Operativsystemer[4] 19 Eksempel: sideafbildning side 1 side 2 side 3 side 0 logisk adresserum sidetabel 6 2 5 3 side 0 side 2 side 3 side 1 1 2 3 4 5 6 0 fysisk adresserum 1 2 3 0 Liste af frie sidepladser: 1 3625

20 Datalogi 1F Forår 2003: Operativsystemer[4] 20 Eksempel: sideafbildning 4 e 5 f 6 g 7 h 8 i 9 j 10 k 11 l 12 m 13 n 14 o 15 p logisk adresserum sidetabel 4 0 2 1 0 a 1 b 2 c 3 d 1 2 3 0 fysisk adresserum efghefgh 8 abcdabcd 12 16 ijklijkl mnopmnop 0 4

21 Datalogi 1F Forår 2003: Operativsystemer[4] 21 Hvor ligger sidetabellen? •Sidetabellen ligger i arbejdslageret •CPU registre holder styr på hvor sidetabellen for en proces ligger, f.eks.: –Page-table base register (PTBR) peger på sidetabellen –Page-table length register (PTLR) angiver længden på tabellen •En lagerreference kræver nu to lageroperationer: –opslag i sidetabel –tilgang til sideplads •Sideopslag caches i en Translation Look- aside Buffer (TLB)

22 Datalogi 1F Forår 2003: Operativsystemer[4] 22 TLBs rolle

23 Datalogi 1F Forår 2003: Operativsystemer[4] 23 Hvad koster det at tilgå lageret? •TLB opslag (tlb): 1 klokcykel •Lageradgang (la): 20 klokcykler •Hitrate (h): typisk omkring 98% •En lagerreference (lr) koster: K(lr) = (K(tlb)+K(la))*h + (K(tlb) + 2*K(la))*(1-h) = (1 + 20)*0,98 + (1 + 2*20)*0,02 = 20,58 + 0,82 = 21,4 klokcykler (7% dyrere) •Men en sidetabel kan sagtens ligge i CPU cache (1., 2. eller måske 3. niveau)

24 Datalogi 1F Forår 2003: Operativsystemer[4] 24 Beskyttelse i sidebaserede systemer •Beskyttelse sker på sideniveau - hver side er tilknyttet et antal statusbit •En gyldig/ugyldig bit i sidetabellen angiver: –gyldig: siden er en del af processens logiske adresserum –ugyldig: siden er ikke en del af processens logiske adresserum •Andre former for statusbit: –side er tildelt sideplads –side er skrivebeskyttet

25 Datalogi 1F Forår 2003: Operativsystemer[4] 25 Eksempel: sideafbildning med statusbit side 1 side 2 side 3 side 0 logisk adresserum sidetabel u u g u side 0 side 3 side 1 5 6 7 4 5 7 4 fysisk adresserum 1 2 3 0 g g g g 1 2 3 0 0 0 7 0 6 2 5 3 side 4 side 2 6 side 4

26 Datalogi 1F Forår 2003: Operativsystemer[4] 26 Hvad fylder en sidetabel? •4 GB lager, 4 KB sider giver en sidetabel med 1048576 indgange af f.eks. 4 byte, dvs i alt 4 MB allokeret til sidetabellen •Hvis der bruges base + længde register skal hver proces have allokeret 4 MB sammenhængende lager •I stedet bruges: –hierarkiske sidetabeller –hashbaserede sidetabeller –inverterede sidetabeller

27 27 Hierarkiske sidetabel med 2 niveauer fysisk adresserum niveau 2 sidetabel niveau 1 sidetabel

28 Datalogi 1F Forår 2003: Operativsystemer[4] 28 Adressernes opbygning i hierarkisk sidetabel •En logisk adresse på en 32 bit maskine med 4KB sider opdeles i 20 bit sidenummer og 12 bit forskydning •Sidenummeret underopdeles (det er jo hierarkisk): –10 bit angiver hvilken niveau 2 sidetabel, der skal anvendes –10 bit angiver fysisk adresses forskydning i niveau 2 sidetabel

29 Datalogi 1F Forår 2003: Operativsystemer[4] 29 Adresseafkodning i hierarkisk sidetabel fp1p2 Logisk adresse: niveau 1 sidetabel niveau 2 sidetabel fysisk lager p1 p2 f

30 Datalogi 1F Forår 2003: Operativsystemer[4] 30 Hashbaserede sidetabeller •I arkitekturer med 64 bit adresserum bliver hierarkiske sidetabeller upraktiske: –8KB sider giver 5 niveauer •I stedet kan man bruge sidehashtabeller: –en virtuel side hashes ind i en indgang i sidetabellen –hver indgang er tilknyttet en hægtet liste, der søges igennem for at finde sidepladsen

31 Datalogi 1F Forår 2003: Operativsystemer[4] 31 Eksempel: hashbaseret sidetabel

32 Datalogi 1F Forår 2003: Operativsystemer[4] 32 Inverterede sidetabeller •En anden løsning på størrelsesproblemet er inverterede sidetabeller •En indgang i sidetabel for hver sideplads •Tabelindhold specificere virtuel side samt ejende proces •Sideopslag: –lineær søgning –hashtabel over virtuelle sider

33 Datalogi 1F Forår 2003: Operativsystemer[4] 33 Eksempel: Inverteret sidetabel

34 Datalogi 1F Forår 2003: Operativsystemer[4] 34 Variabel sidestørrelse •Nogle processorer understøtter supersider – dvs. sider af meget stor størrelse, f.eks. op til 4 MB (alpha, pentium) eller 256 MB (itanium) •TLB’ens dækningsområde forøges •Men hvordan skabes supersiderne: –overvågning af processers ressourceallokering –reservering af områder til supersider eller omorganisering af fysiske sider •Operating System Design & Implementation: Practical, transparent operating system support for superpages viser at flere applikationer opnår forbedringer på 30% til 60% ved dynamisk tilpasning af sidestørrelser

35 Datalogi 1F Forår 2003: Operativsystemer[4] 35 Deling af sider/data •Ikke-selvmodificerende kode kan deles mellem processer, der benytter samme kode: –applikationer, f.eks. en editor –systembiblioteker, f.eks. libc •Koden placeres på samme sted i de forskellige processers logiske adresserum

36 36 Eksempel: deling af data libc 2 libc 3 ap2.1 libc 1 ap2.2 data1 libc 2 libc 3 libc 1 data app 1 libc 2 libc 3 app 1 libc 1 data ap2.3 app 2 8 1 7 6 3 2 1 12 6 5 3 0 1 4 6 11 3 9 libc 2 libc 3 app 1 libc 1 app 2 data app 3 ap3.1 ap1.2 data3 ap1.1 data2 applikation 1 applikation 2 applikation 3

37 Datalogi 1F Forår 2003: Operativsystemer[4] 37 Segmentering •Segmentering afbilder større programdele (afhængig af brugerapplikationen) ind i det fysiske adresserum •Bruger opfatter programmer som bestående af større enheder end sider, nemlig segmenter f.eks: –hovedprogram –objekter –funktioner –globale variable –stak

38 Datalogi 1F Forår 2003: Operativsystemer[4] 38 Eksempel: strukturering af applikation i segmenter stak logisk opbygning fysisk adresserum main calc stak trædata main calc

39 Datalogi 1F Forår 2003: Operativsystemer[4] 39 Segmentering – hvordan? •Logiske adresser består af to dele: •Segmenttabel angiver afbildning fra segmentnummer til fysisk adresse. Hver indgang har: –base: segmentets startadresse –længde: segmentets længde –statusbit: hele segmentet dækkes (oftest det naturligste)

40 Datalogi 1F Forår 2003: Operativsystemer[4] 40 Eksempel: segmenteringshardware

41 Datalogi 1F Forår 2003: Operativsystemer[4] 41 Eksempel: segmenteringstabel

42 42 Deling af segmenter

43 Datalogi 1F Forår 2003: Operativsystemer[4] 43 Sidebaseret segmentering •Segmentering lider af ekstern fragmentering •Derudover kan der være andre grunde til at ville splitte et segment op: –dele af segmentet bruges sjældent og skal swappes ud

44 44 i386 sidebaseret segmentering

45 Datalogi 1F Forår 2003: Operativsystemer[4] 45 Opsummering •Opdeling i et logisk og fysisk adresserum •Afbildning af logisk adresser til fysiske adresser: –sidebaseret (størrelse af sidetabel, intern fragmentering): •TLB •hierarkiske sidetabeller •hashbaserede sidetabeller •inverterede sidetabeller –segmentbaseret (ekstern fragmentering, segmentstørrelse)

46 Datalogi 1F Forår 2003: Operativsystemer[4] 46 Kilder •Disse slides er baseret på SG03 samt de af forfatterne udviklede slides


Download ppt "Operativsystemer[4]: Arbejdslageret Datalogi 1F Forår 2003 Jørgen Sværke Hansen"

Lignende præsentationer


Annoncer fra Google