Luento 5: Muistin hallinta 13.9.2006. Luento 5. Luento 5-1. Luento 5-3. u Continuous memory allocation for partition. Luento 5-5



Samankaltaiset tiedostot
Muistinhallinta. Tietokoneen rakenne. Stallings: Ch Heittovaihto vs. Virtuaalimuisti Esim: Pentium. Luento 5-1

Muistinhallinta. Teemu s Cheesecake. Tietokoneen rakenne

VIRTUAALIMUISTI. Stallings, Luku 8.1

Sisältö VIRTUAALIMUISTI. Stallings, Luku 8.1. Suoritus virtuaalimuistissa. Suoritus virtuaalimuistissa. Puutoskeskeytys. Suoritus virtuaalimuistissa

Sisältö VIRTUAALIMUISTI. Stallings, Luku 8.1. Suoritus virtuaalimuistissa. Suoritus virtuaalimuistissa. Puutoskeskeytys. Suoritus virtuaalimuistissa

VIRTUAALIMUISTI. Stallings, Luku 8.1

Luento 9 Järjestelmän ulkoinen muisti

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus.

ltö Luento 6: VIRTUAALIMUISTI Luento 7: Segmentointi Segmentointi ja sivutus yhdistettynä Yhteiskäytöstä Suoritus virtuaalimuistissa

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

Luento 6: VIRTUAALIMUISTI

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus (2)

Luento 9 Järjestelmän ulkoinen muisti

KJ-II K2006 / Auvo Häkkinen - Teemu Kerola Tehtävät, staattinen vs. dynaaminen partitiointi, Buddy System sivutus, segmentointi

Lähtötiedot tiedot / seuraavaksi? Käyttöjärjestelmät II MUISTINHALLINNAN OHJELMISTO. Looginen vs. fyysinen osoite Perusvalinnat.

Käyttöjärjestelmän rakenne

Käyttöjärjestelmät: Virtuaalimuisti

MUISTINHALLINNAN OHJELMISTO

Internal Memory, Cache (välimuisti)

Internal Memory, Cache (välimuisti)

Internal Memory, Cache

Capacity Utilization

Järjestelmän ulkoinen muisti I/O

Internal Memory, Cache

Muistihierarkia Kiintolevyt I/O:n toteutus

Kuva 8.7. u Muunnos prosessin sivunumerosta sivutilanumeroksi u Kussakin alkiossa: u Katenoimalla. u MMU:ssa; juuri äsken käytettyjä muunnoksia

Luento 7: VIRTUAALIMUISTIN SIVUTUS JA SEGMENTOINTI

Käyttöjärjestelmät. Tietokoneen rakenne. Stallings, Luku 1. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1

Käyttöjärjestelmät II

Perusvalinnat. Sivun koko. Sivun koko? Sopiva sivukoko? MUISTINHALLINNAN OHJELMISTO: Sivutuksen algoritmit. Käyttöjärjestelmät

MUISTINHALLINTA. Stallings, Luku 7

Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS

Käyttöjärjestelmät II

Muistihierarkia Kiintolevyt I/O:n toteutus

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Luento 9 Järjestelmän ulkoinen muisti

Tietorakenteet ja algoritmit

ltöä (Luennot 5&6) Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS Pikakertaus: : a) b) c) Dyn.. part.: sijoitus Kuva Buddy System: esimerkki

Yleiskuva. Käyttöjärjestelmät II. Tietokonejärjestelm. rjestelmä. KJ ja laitteistopiirteet. KJ ja laitteistopiirteitä.

Sivun koko. Perusvalinnat. Sopiva sivukoko? Sivun koko? MUISTINHALLINNAN OHJELMISTO: Sivutuksen algoritmit. Käyttöjärjestelmät, Luento 9

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

7.4 Variability management

MUISTINHALLINNAN OHJELMISTO: Sivutuksen algoritmit. Stallings, Luku 8.2

Uusi Ajatus Löytyy Luonnosta 4 (käsikirja) (Finnish Edition)

Choose Finland-Helsinki Valitse Finland-Helsinki

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

UNIX / Solaris MUISTINHALLINTA

Käyttöjärjestelmät II. Muistinhallinnan esimerkit. UNIX / Solaris MUISTINHALLINTA. UNIX / Solaris (SVR4) UNIX/Solaris: Tietorakenteita

Osio 2: Luennot 4-7 Muistinhallinta

LYTH-CONS CONSISTENCY TRANSMITTER

1. SIT. The handler and dog stop with the dog sitting at heel. When the dog is sitting, the handler cues the dog to heel forward.

National Building Code of Finland, Part D1, Building Water Supply and Sewerage Systems, Regulations and guidelines 2007

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

UNIX / Solaris (SVR4)

Security server v6 installation requirements

Stallings, Luku 8.1. KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-1

Stallings, Luku 7. KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 6-1

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne

Security server v6 installation requirements

Salasanan vaihto uuteen / How to change password

Other approaches to restrict multipliers

Osio 2: Luennot 4-7 Muistinhallinta YKSINKERTAINEN MUISTINHALLINTA. ltöä YLEISTÄ MUISTINHALLINNASTA. Looginen muisti.

Luento 5 Suoritin ja väylä

Luento 5 Suoritin ja väylä

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

UNIX / Solaris (SVR4)

Muistinhallinnan esimerkit UNIX, Solaris, Linux, W2000

Sisältöä MUISTINHALLINTA. Stallings, Luku 7. Fyysinen muisti YLEISTÄ MUISTINHALLINNASTA. Looginen muisti. Prosessin rakenne

Alternative DEA Models

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Suoritin. Jakso 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Returns to Scale II. S ysteemianalyysin. Laboratorio. Esitelmä 8 Timo Salminen. Teknillinen korkeakoulu

Luento 5 (verkkoluento 5) Suoritin ja väylä

anna minun kertoa let me tell you

AYYE 9/ HOUSING POLICY

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti

Network to Get Work. Tehtäviä opiskelijoille Assignments for students.

Kernel (Fig 4.10 [Stal 05]) Operating Systems Examples and Process Management

KONEISTUSKOKOONPANON TEKEMINEN NX10-YMPÄRISTÖSSÄ

Operatioanalyysi 2011, Harjoitus 4, viikko 40

C++11 seminaari, kevät Johannes Koskinen

16. Allocation Models

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Use of spatial data in the new production environment and in a data warehouse

You can check above like this: Start->Control Panel->Programs->find if Microsoft Lync or Microsoft Lync Attendeed is listed

Luento 9 Järjestelmän ulkoinen muisti

FinFamily Installation and importing data ( ) FinFamily Asennus / Installation

The CCR Model and Production Correspondence

Jakso 5 Suoritin ja väylä

Information on preparing Presentation

Luento 9 Järjestelmän ulkoinen muisti

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti

Results on the new polydrug use questions in the Finnish TDI data

make and make and make ThinkMath 2017

Transkriptio:

Tietokoneen rakenne Luento 5 Teemu s Cheesecake hand table Muistinhallinta Register, on-chip cache, memory, disk, and tape speeds relative to times locating cheese for the cheese cake you are baking... Europa refridge- (Jupiter) rator moon Stallings: Ch 8.3-8.6 Heittovaihto vs. Virtuaalimuisti Esim: Pentium 0.5 sec (register) 1 sec (cache) 10 sec (memory) 12 days (disk) 4 years (tape) Luento 5-1 Luento 5-2 Virtual Memory (virtuaalimuisti) Other Problems Often Solved with VM Problem: How can I make my (main) memory as big as my disk drive? Answer: Virtual memory u keep only most probably referenced data in memory, and rest of it in disk disk is much bigger and slower than memory address in machine instruction may be different than memory address need to have efficient address mapping most of references are for data in memory u joint solution with HW & SW If you must want to have many processes in memory at the same time, how do you keep track of memory usage? How do you prevent one process from touching another process memory areas? What if a process needs more memory than we have? Luento 5-3 Luento 5-4 Memory Management Problem How much memory for each process? u Is it fixed amount during the process run time or can it vary during the run time? Where should that memory be? u In a continuous or discontinuous area? u Is the location the same during the run time or can it vary dynamically during the run time? How is that memory managed? How is that memory referenced? Partitioning How much physical memory for each process? Static (fixed) partitioning (staattiset tai u Amount of physical memory kiinteät partitiot) determined at process creation time u Continuous memory allocation for partition Dynamic partitioning (dynaamiset partitiot) u Amount of physical memory given to a process varies in time Due to process requirements (of this process) Due to system (I.e., other processes) requirements Luento 5-5 Luento 5-6 Tietokoneen rakenne / 2006 / Teemu Kerola 1

Static Partitioning Equal size - give everybody the same amount u fixed size - big enough for everybody too much for most u need more? Can not run! Unequal size u sizes predetermined Variable size u Size determined at process creation time Sta06 Fig. 8.13 (a) Sta06 Fig. 8.13 (b) Sta06 Fig. 8.14 Fragmentation Internal fragmentation (sisäinen pirstoutuminen) u unused memory inside allocated block u e.g., equal size fixed memory Sta06 Fig. 8.13 (a) partitions External fragmentation (ulkoinen pirstoutuminen) u enough free memory, but it is splintered as many un-allocatable blocks u e.g., unequal size partitions Sta06 Fig. 8.13 (b) or dynamic fixed size (variable size) memory partitions Sta06 Fig. 8.14 Luento 5-7 Luento 5-8 Dynamic Partitioning Address Mapping (4) (osoitteen muunnos) Process must be able to run with varying amounts of main memory u all of memory space is not in physical memory u need some minimum amount of memory New process? u reduce amount of memory for some (lower priority) processes Not enough memory for some process? u reduce amount of memory for some (lower priority) processes u kick (swap) out some (lower priority) process Pascal, Java: while (...) X := Y+Z; Textual machine language: 1312: LOAD R1, 2510 ADD R1, 2514 STORE R1, 2600 (addresses relative to 0) Symbolic Assembler: loop: LOAD R1, Y ADD R1, Z STORE R1, X Execution time: 101312: LOAD R1,102510 ADD R1,102514 ADD R1,102600 (real, actual!) Luento 5-9 Luento 5-10 Address Mapping (2) Textual machine language: 1312: LOAD R1, 2510 Execution time: - Want: R1 Mem[102510] or Mem[2510]? - Who makes the mapping? When? logical address 101312: LOAD R1,102510 or 101312: LOAD R1, 2510?? physical address (constant?) +100000? logical addr Luento 5-11 Address Mapping (2) At program load time u Loader u Static address binding (staattinen osoitteiden sidonta) At program execution time u Cpu u With every instruction u Dynamic address binding u Swapping u Virtual memory (lataaja) (dynaaminen osoitteiden sidonta) Luento 5-12 Tietokoneen rakenne / 2006 / Teemu Kerola 2

Heittovaihto (swapping) Prosessilla yhtenäinen muistialue u Prosessi joko muistissa tai levyllä u Prosessinkuvaaja (PCB) aina muistissa Ajonaikainen osoitemuunnos u Looginen osoite fyysinen muistiosoite Laitteistotuki = MMU u Kanta- ja rajarekisteri u Bounds exceeded -keskeytys KJ u Kirjanpito vapaista muistialueista u Prosessien siirto levyltä muistiin / muistista levylle u Prosessin vaihto: kanta- ja rajarekisterin asetus u Virheellinen muistiviite: tapa prosessi Lisätietoja KJ-kurssilla VM Implementation Methods u Base and limit registers u Segmentation u Paging u Segmented paging, multilevel paging Hardware support u MMU - Memory Management Unit Part of processor Varies with different methods u Sets limits on what types of virtual memory (methods) can be implemented using this HW Luento 5-13 Luento 5-14 Base and Limit Registers Osoitteenmuunnos rajarekistereitä käyttäen Continuous memory partitions u One or more (4?) per process u May have separate base and limit registers Code, data, shared data, etc By default, or given explicitly in each mem. ref. BASE and LIMIT registers in MMU u All addresses logical in machine instructions u Exec. time address mapping for address (x): Check: x < LIMIT Physical address: BASE+x (Sta05 Operating Systems Fig 7.8) Luento 5-15 Luento 5-16 Virtuaalimuisti Vain tarvittavat prosessin palat muistissa, ei tarvitse sijaita peräkkäin muistissa u Tarvenouto Palojen koko? u Vakiokokoiset palat = Sivutus u Palojen koko vaihtelee = Segmentointi u Yhdistettynä = Sivutettu segmentointi KJ:n kirjanpito u Sivutilataulu ( frame table) Mitkä sivutilat vapaita, mitkä varattuja? KJ kurssin pureskeltavaa Sivutus yleisintä nyt vain siitä u Jokaisella prosessilla oma sivutaulu ( table) Onko sivu muistissa vai levyllä? Presence-bitti Missä sivutilassa sivu majailee? Muuta kontrollitietoa? Viitebitit: Modified, R=Referenced Luento 5-17 Virtuaalimuisti: Sivutus (Sta06 Fig 8.15) Luento 5-18 Tietokoneen rakenne / 2006 / Teemu Kerola 3

Sivuttavan virtuaalimuistin osoitteenmuunnos (Sta06 Fig 8.16) Paged Address Translation (4) Page table register Check for valid entry Virtual address 1 30 0: 1: 2: Page table 0 rwx 65 1 rw 14 1 rw 55.. Valid entry Access rights Page frame Access type r Check access rights r {rw} 14 30 (virt. mem. used to solve memory protection problem) Physical address Luento 5-19 Luento 5-20 Page fault interrupt Stop execution Initiate reading 1 from disk Schedule next process to run I/O interrupt Page 1 read, update table Make orig. process ready-to-run Page Fault (12) Page table register Check for valid entry: not valid! Virtual address 1 30 0: 1: 2: Page table 0 rwx 65 10 rw w 33 14 1 rw 55.. Schedule orig. process again, at the same instruction Access type r Check access rights r {rw} 14 30 Physical address Virtuaalimuisti: TLB Osoitemuunnos jokaiselle muistiviittaukselle, vähintään kerran per käsky Sivutaulun alkio muistissa = ylimääräinen muistinouto? u Liian hidasta Ratkaisu Translation Lookaside Buffer u Paikallisuus! Sitähän tarvitaan het kohta uudestaan u Pidä tallessa edellisissä muunnoksissa tarvitut sivutaulun alkiot TLB, osoitemuunnospuskuri u Vrt. välimuisti u Nopea rekisterijoukko (esim. Pentium: 32 alkiota) u Assosiatiivinen haku u Osumatodennäköisyys 99.9%? (eli lähes aina!) Luento 5-21 Luento 5-22 Correct address mapping found Physical address 0x00B6C8E6 046 ReadW I2, 0xAB00C7DA 046? = 0000: tag index 28 4. AB00C7D A. Match Example: 16-entry TLB (6) 0111: 1000: 1001: 1010: offset. tag frame 28 32 AB00C7D 00B6C8E6 Translation Lookaside Buffer Hit on TLB? u address translation is in TLB - real fast Miss on TLB? u must read table entry from memory u takes time u cpu waits idle until it is done Just like normal cache, but for address mapping u implemented just like cache u instead of cache line data have physical address u split TLB? 1 or 2 levels? Luento 5-23 Luento 5-24 Tietokoneen rakenne / 2006 / Teemu Kerola 4

Virtuaalimuisti Sivunpuutoskeskeytyksen käsittely Prosessin vaihto (ainakin 2 kpl) Prosessin vaihto (ainakin 2 kpl) (Sta06 Fig 8.18) Luento 5-25 Laitteistotuki = MMU ja sen erikoisrekisterit u PTR ( table register) Sivutaulun fyysinen alkuosoite (tuotu PCB:stä) u TLB (translation lookaside buffer) Aiemmissa osoitteenmuunnoksissa käytettyjä tietoja = sivutaulun alkioita u Page fault keskeytys u Viitebittien ylläpito Prosessin vaihtuessa u PTR sivutaulun fyysinen alkuosoite u TLB:n vanha sisältö invalidoitava TLB:n alkioissa Validi-bitit Muuttuneet alkiot takaisin muistiin ( cache block ) Luento 5-26 Memory Organisation (3) CPU instr mem.addr TLB regs data table table Memory TLB ja välimuisti Myös sivutaulun alkio voi löytyä välimuistista! cache Bus Disk table table table table (Sta06 Fig 8.19) Luento 5-27 Luento 5-28 TLB vs. Cache TLB Miss CPU waits idling HW implementation Invisible to process Data is copied from memory to TLB u from table data u from cache? Delay 4 (or 2 or 8?) clock cycles Cache Miss CPU waits idling HW implementation Invisible to process Data is copied from memory to cache from data Delay 4 (or 2 or 8?) clock cycles TLB Misses vs. Page Faults TLB Miss CPU waits idling HW implementation Data is copied from memory to TLB (or from cache) Delay 1-4 (?) clock cycles Page Fault Process is suspended and cpu executes some other process SW implementation Data is copied from disk to memory Delay 30 ms (?) Luento 5-29 Luento 5-30 Tietokoneen rakenne / 2006 / Teemu Kerola 5

Korvauspolitiikka Mikä sivu korvataan muistista, jos muistitilasta puutetta? Lokaalit / globaalit algoritmit u Prosessin omien sivujen joukosta KJ-kurssilla tarkemmin u Kaikkein prosessien sivujen joukosta Algoritmeja u Clock, Second change, LRU, MMU u aseta viitattaessa Referenced=1, u aseta Modified=1, jos sivun sisältö muuttuu KJ u Nollaa bitit aika-ajoin u Korvaa tarvittaessa sellainen, jossa R=0, M=0 u M=1 kirjoita muuttunut sivu levylle ennen uusiokäyttöä Nykyprosessin oikea sivu? (Sta06 Fig 8.17 täydennettynä) Käänteinen sivutaulu Järjestelmässä vain yksi käänteinen ST MMU: PTR ( table reg), PidR (process id register), TLB ~ PowerPC ~ UltraSPARC ~ IA-64 Luento 5-31 Luento 5-32 Monitasoinen sivutaulu (3) Monet järjestelmät sallivat suuren virtuaaliosoiteavaruuden u Myös ST jaetaan sivuihin, ja ST:n osia levyllä u Ylimmän tason ST mahtuu yhteen sivuun, aina muistissa 32b osoite 1 K alkiota (= 1024 = 2 10 ) = Page Dir 10 10 12 1K * 1K = 1M alkiota Virtual Memory Policies (3) Fetch policy u demand paging: fetch only when needed 1st time u working set: keep all needed s in memory u prefetch: guess and start fetch early Placement policy (sijoituspolitiikka) u any frame for d VM Replacement policy (noutopolitiikka) (poistopolitiikka) u local, consider s just for this process for replacement u global, consider also s for all other processes u dirty s must be written to disk (likaiset, muutetut) (Sta05 Fig 8.4) Luento 5-33 Luento 5-34 Tietokoneen rakenne Esimerkiksi Pentium (IA-32) Ks. myös Tan06 Pentiumin tuki muistinhallinnalle Unsegmented und, max 2 32 = 4 GB u Virtuaaliosoite = fyysinen osoite u Tehokas käyttöä reaaliaikajärjestelmissä Unsegmented d (Sivuttava), max 4 GB u Lineaarinen osoiteavaruus u Sivu 4KB tai 4MB u Käyttöoikeudet sivukohtaisesti Segmented und (Segmentoiva), max 2 48 = 64 TB u Useita segmenttejä useita lineaarisia osoiteavaruuksia u Käyttöoikeudet segmenttikohtaisesti Segmented d (Sivuttava segmentointi), max 64 TB u Muistinhallinta sivutusta käyttäen u Käyttöoikeudet segmenttikohtaisesti Luento 5-35 Luento 5-36 Tietokoneen rakenne / 2006 / Teemu Kerola 6

Pentium: Osoitemuunnos Pentium: Osoitemuunnos 16 32 10 10 12 Segment selector u Global / Local u Segmentin numero Global/Local Descriptor Table (GDT/LDT) base Segment descriptor (Tan06 Fig 6-12, 6-13) (Sta06 Fig 8.21) Jos Paging=Enabled, käytä sivutauluja, muuten lineaarinen osoite = fyysinen osoite (KJ, esim. laiteajurit?) Kontrollirekisterit ks. s. 444 [Sta06] Luento 5-37 Luento 5-38 Pentium: Segmenttikuvaaja Pentium: Sivutaulu (Sta06 Table 8.5) Luento 5-39 (Sta06 Table 8.5) Luento 5-40 Pentium: Käyttöoikeudet Hennessy-Patterson:Computer Architecture, Fig 5.47 Alpha AXP Privilege level CPU:n tilarekisterissä PSW:ssä u 00=korkein, 11 = matalin u Korkeampi voi viitata alemmille u Etuoikeutetut käskyt vain, kun level=00 Käyttöoikeus rajattavissa u Segmentin valinta RPL, requested privilege level u Segmenttikuvaaja DPL, descriptor privilege level Type: koodi/data? R/W u Sivutaulu R/W-bitti Linux ja Windows: vain kaksi käytössä (Tan06 Fig 6-16) Luento 5-41 Instr. TLB fully assoc, 12 entries Instr. CACHE direct mapped, 8 KB, 256 lines (a 32B) Unified Level 2 CACHE 2 MB, 64K lines (a 32B) direct mapped, write-back Data TLB fully assoc, 32 entries Data CACHE direct mapped, 8 KB, 256 lines Main Memory Disk Tietokoneen rakenne / 2006 / Teemu Kerola 7

Kertauskysymyksiä Mitä laitteistotason tukea tarvitaan VM:n toteuttamiseksi? Miten sivutus ja segmentointi eroavat toisistaan? Miksi ne joskus yhdistetään? Miten TLB ja välimuisti suhtautuvat toisiinsa? Luento 5-43 Tietokoneen rakenne / 2006 / Teemu Kerola 8