310 likes | 572 Views
Vi soka poslovno-tehnička škola Užice. OPERATIVNI SISTEMI. UPRAVLJANJE MEMORIJOM. GLAVNI DELOVI RAČUNA R A. MEMORIJA. CPU Centalna procesorska jedinica za obradu. U / I ulazno-izlazni uređaji. Upravljanje memorijom.
E N D
Visoka poslovno-tehnička škola Užice OPERATIVNI SISTEMI UPRAVLJANJE MEMORIJOM
GLAVNI DELOVI RAČUNARA MEMORIJA CPU Centalna procesorska jedinica za obradu U / I ulazno-izlazni uređaji
Upravljanje memorijom Kao što procesi dele centralni procesor (CPU), tako dele i operativnu memoriju. Upravljanje memorijom obično zahteva hardversku podršku. Sadržaj Memorije se sastoji od niza memorijskih reči i svaka reč ima jedinstvenu adresu Relokatibilan - program se može izvršavati bilo gde u operativnojmemoriji. 00A0 ... 00A1 0000 00A2 0102 00A3 0200 00A4 0003 00A5 0104 00A6 0300 00A7 ... 00A8 ... 00A9 ... 00AA ... 00FF 00AB ... 00AC ... 00AD ... A D
ĆELIJA, REGISTAR - podsećanje Objekat sa dva diskretna stanja nazivamo ćelijom. Više ćelija organizovanih u fizičku celinu da registruju reč (broj) binarne azbuke čine registar. Sadržaj registra može biti podatak ili naredba (instrukcija).
Upravljanje memorijom 00A2 0102 • Fizička memorija računara: linearno uređen niz ćelija sa mogućnošću direktnog pristupa(direct access) • Direktan pristup: svaka ćelija ima svoju adresu(address) preko koje joj se može pristupiti • RAM (Random Access Memory): memorija sa mogućnošću čitanja i upisa; gubi sadržaj gubitkom napajanja • ROM (Read Only Memory): memorija samo sa mogućnošću čitanja; obično čuva sadržaj po gubitku napajanja; 00A0 ... 00A1 0000 00A2 0102 00A3 0200 00A4 0003 00A5 0104 00A6 0300 00A7 ... 00A8 ... 00A9 ... 00AA ... 00FF 00AB ... 00AC ... 00AD ... A D
Hijerarhija memorije 1 instrukcija i nekoliko podataka 1 % 10 % 100 %
Hijerarhija memorije Na magnetnom disku su аrhivirani, smešteni svi programi (100 %) Od ukupne veličine programa oko 10% se nalazi u RAM (operativna, glavna memorija) i podaci koji se trenuto koriste ili su bili skoro korišćeni. Oko 1% programa (trenutno se koriste) je u keš memoriji. Jedna instrukcija i nekoliko podataka se nalazi u registrima. Na svakom memorijskom nivou postoji kompromis između brzine i cene.
Hijerarhija memorije Može biti do četiri kopije nekih delova programskog koda ili podataka (disk, operativna memorija - RAM, keš memorija, registri CPU). Sve kopije moraju da ostanu konzistentne(neprotivurečne). U opštem slučaju svaki put kada se program učita u glavnu memoriju – RAM, on će biti na različitim memorijskim lokacijama.
Upravljanje memorijom Zašto je potrebno? Potrebno jeorganizovati programei podatke unutarmemorije. Neki programi mogubiti suviše veliki da bistali unutar fizičkememorije. Može biti zahtevano dase više programaizvršava u isto vreme. Svakom programu jepotreban poseban(kontinualan) adresniprostor.
Upravljanje memorijom Kod upravljanja memorijomrazlikujemo četiri osnovne funkcije: vođenje evidencije o memoriji (slobodna - zauzeta memorija), dodeljivanje memorije (po strategiji kome, koliko, kada, gde), alokacija memorije, (tehnika, odnosno mehanizam dodeljivanja memorije) dealokacija memorije tehnika, odnosno mehanizam oslobađanje(“izbacivanje” nekog programa, aplikacije iz memorije).
Načini upravljanja memorijom Upravljanje memorijom Particije Stranice, Segmenti, Stranice i segmenti Dinamičko Particije Stranice, Segmenti Statičko Dodela memorije Kontinualna Diskontinualna
Upravljanje memorijom Vezivanje adresa Deljenje memorije Organizacija i alokacija memorije Virtuelna memorija
Windows XP arhitektura - podsećanje Win 32-bit App Win 32-bit App Win 32-bit App Win 32-bit App Win32 Subsytem (Win32 API) User Mode Kernel Mode Executive Services Security Virtual Plug and Window I/O IPC Process Power Reference Memory Play Manager Manager Manager Manager Manager Monitor Manager Manager and GDI Graphics Object Manager File Device Systems Drivers Device Drivers Microkernel Hardware Abstraction Layer (HAL) Computer Hardware
Problem vezivanja adresa Izvorni program (napisan u nekomprogramskom jeziku)podeljen na fajlove. Pitanja: Kako preslikati obraćanje promenljivoj a ili funkciji f u mašinski “razumljivo” adresiranje – prevođenje(compilation)? Kako povezati prevedene fajlove u jedinstven program i rešiti obraćanje promenljivoj a ili funkciji f u drugom fajlu – povezivanje(linking)? Kako odrediti adrese promenljive a i funkcije f kada se sazna gde će proces biti smešten u memoriji – učitavanje, punjenje (loading)? Postoji li potreba za preslikavanjem logičkih u fizičke adrese u vreme izvršavanja, uz pomoć hardvera – dinamičko preslikavanje adresa?
Operativni sistem i Vezivanje Postoji jaka zavisnost između programa za prevođenje (compiler-a), programa za povezivanje (linker-a) i programa za učitavanje - punjenje (loader-a) kao delova sistemskog softvera sa jedne strane i operativnog sistema, odnosno njegovog dela za upravljanje memorijom, sa druge strane. Najveći uticaj na operativni sistem ima preslikavanjeadresnog prostora programa ufizički memorijski prostor (RAM).
Preslikavanja u simboličkom i fizičkom prostoru Preslikavanje imena (promenljivih) se odnosi na preslikavanje simboličkih adresa (imena, npr. a) koje programer dodeljuje promenljivima u pojedinim naredbama u programu u programsku, relativnu adresu. Preslikavanje adresase odnosi na preslikavanje programskih, relativnih adresa u stvarne, fizičke memorijske adrese Preslikavanja sadržajase odnosi na preslikavanje sadržaja memorijskih adresa u vrednosti (podatke) koje one sadrže.
Vezivanje Sam čin ili događaj preslikavanja se naziva vezivanje (binding)– vrši se vezivanje instrukcija i podataka sa fizičkom adresom u memoriji. Za izvršavanje programa potrebna je fizička memorija (RAM). Fizička memorija je određena preslikavanjem adresnog prostora programau fizičke. Na primer, kada se izvrši preslikavanje simboličkog imena u programsku adresu, kažemo da je posmatrana simbolička adresa vezana za određenu programsku adresu (da joj jednoznačno odgovara ta programska adresa). Kada se programska adresa preslika u memorijsku adresu kažemo da je vezana za tu memorijsku (fizičku) adresu.
Vreme vezivanja (“binding time”) - Vremenski trenutak kada se odigrava vezivanje naziva se vreme vezivanja (binding time) Vreme vezivanja seodigrava u vreme: prevođenja (compiler), učitavanja programa u memoriju (povezivač – linker i punilac - loader) ili izvršavanja programa (execution)
Vreme vezivanje - nastavak Vreme prevođenja - ako je adresa fizičke memorije poznata unapred (a priori), može se generisati fizička adresa. To znači da ako se početna adresa izvršavanja programa promeni, program se mora ponovo prevesti. Vreme učitavanja (punjenja)- ako fizička adresa nije poznata u vreme prevođenja, tada prevodilac ili asembler moraju da generišu relokatibilnu adresu. Program za punjenje (punilac – loader)transformiše relokatibilnu adresu na osnovu početne adrese punjenja. Vreme izvršavanja - vezivanje adresa se odlaže do vremena izvršavanja. To omogućava da se programski kod premešta iz jednog dela memorijeu neki drugi deo za vreme izvršavanja. Ovaj način zahteva hardversku podršku.
Načini upravljanja memorijom Upravljanje memorijom Particije Stranice, Segmenti, Stranice i segmenti Dinamičko Particije Stranice, Segmenti Statičko Dodela memorije Kontinualna Diskontinualna
Statičko vezivanje Linearan adresni prostor se translacijom preslikava u odgovarajući linearan memorijski prostor a' = p + a gde je:a - programska adresa(relativna, npr. 696), p - početna adresa programa u memoriji (relokacioni registar, npr. 12000) i a'- memorijska adresa (fizička adresa, primer 12696=696+12000). U opštem slučaju preslikavanje adresa može biti realizovano na različite načine pa se može predstaviti funkcijom: a' = f (a) pri čemu implementaciju funkcije f obavlja operativni sistem. Proces je zauzeo fiksni adresni prostor i sve vreme ostaje u memoriji (RAM) – statičko ponašanje
Načini upravljanja memorijom Upravljanje memorijom Particije Stranice, Segmenti, Stranice i segmenti Dinamičko Particije Stranice, Segmenti Statičko Dodela memorije Kontinualna Diskontinualna
Dinamičko preslikavanje adresa Ako OS omogućava postojanje više procesa u memoriji u jednom trenutku i izbacivanje nekih procesa ili delova procesa i ubacivanje drugih, onda statičko vezivanje adresa u vreme učitavanja (punjenja) nije dovoljno Potrebno je da proces bude relokatibilan: da se može u vreme izvršavanja programa, promeniti lokacija procesa (programa i njegovih podataka) na drugo mesto u operativnoj memoriji (OM), a da to ni na koji način ne utiče na program i njegovo adresiranje podataka (pokazivači!) – dinamičko ponašanje Potrebno je zato da proces poseduje logički (virtuelni) adresni prostor, tako da program može da adresira sve adrese u opsegu 0 do Max
Dinamičko preslikavanje adresa Logičke adrese se preslikavaju u fizičke adrese koje se upućuju memorijskim modulima – RAM (DDR 2, DDR 3) Preslikavanje logičkih u fizičke adrese obavlja se dinamički, u vreme izvršavanja. Ovo preslikavanje vrši hardver – MMU (Memory Management Unit – jedinica za upravljanje memorijom) Ovo preslikavanja vrši se uvek i za svaku logičku adresu – proces “vidi” isključivo logički adresni prostor, nikako fizički Primer. CPU učita proces u RAM, logička adresa se preslika u fizičku adresu, proces ili deo procesa se posle nekog vremena izbaci iz operativne memorije pa ponovo učita u memoriju, logička adresa se može preslikati u istu ili drugu fizičku adresu iliproces je u stanju čekanja (WAIT) ili spreman (READY), MMU mu dodeli drugu fizičku adresu – dinamičko preslikavanje
Dijagram stanja procesa - podsećanje START – nastanak, formiranje procesa READY – proces ima sve resurse, čeka na procesor RUN – procesor izvršava proces WAIT – proces čeka na resurs (štampač, tastatura, miš, neki drugi proces ...) STOP – kraj procesa STOP RUN START WAIT READY
Dinamičko preslikavanje adresa Najjednostavnija tehnika dinamičkog preslikavanja adresa: bazni registar za relokaciju (base relocation register): Relocation Reg Virtelna Adresa 1A220000 17 1A220017 + CPU MMU OM • Zaduženja OS-a: • Loader (punilac) treba da definiše vrednost relokacionog registra na osnovu mesta učitavanja procesa u memoriji i smesti tu vrednost u PCB • prilikom svake promene konteksta, OS treba da upiše vrednost iz PCB u relokacioni registar • Složenije tehnike dinamičkog preslikavanja: stranična, segmentna i stranično-segmentna organizacija
Implementacija procesa - podsećanje Struktura podataka u kojoj se čuvaju informacije za svaki poces unutar OS – Process Control Block (PCB) i sadrži: ID – jedinstveni identifikator procesa unutar OS kontekst procesa (process context): sve informacije potrebne da OS nastavi izvršavanje procesa, kao i da ga kontroliše i ugasi memorijski parametri: veličina i pozicija dodeljenog memorijskog bloka informacije o I/O resursima: spisak otvorenih fajlova, zauzetih resursa itd. podaci potrebni za raspoređivanje: prioritet, dodeljeno CPU vreme, itd. podaci potrebni za obračunavanje ... PCB ID Processor context Memory params I/O info Scheduling params Accounting params ...