Pamat Flashcards
Co je to monoprogramovanie?
V pamati je len jeden program
Co je to swapping?
Vymena obsahu na sekundarne medium
Aky OS bol monoprogramovy?
MS DOS
Co je multiprogramovanie?
Pri starte OS sa pamat rozdeli na segmenty, novemu procesu sa prideli najmensi vyhody volny usek
Co je segment?
Usek pevnej dlzky
Co je interna fragmentacia?
Program nemusi vyuzit vsetku pridelenu pamat
Pozri si priklad na slide 7
slide 7
Aka je vyhoda pouzitia segmentov s premenlivou dlzkou?
odstranenie internej fragmentacie
Co je to relokacia?
Presunutie programu na ine miesto
Co je to externa fragmentacia?
Volna pamat je rozdrobena na male casti medzi obsadenymi usekmi
Ako vieme riesit externu fragmentaciu?
Kompaktificia pamate - obsadene useku sa presunu vedla seba a volne miesto sa zluci do jedneho bloku
Aky program vieme vybrat na swap na disk?
Napr dlho necinny
Pozri si priklad na slide 13
slide 13
Ako vie OS vediet ktore casti pamate su volne a kotre obsadene?
Bitove mapy
Zoznamy segmentov
Co je nevyhoda bitovych map?
Prehladavanie tabulky pre najdenie suvisleho useku 0 je drahe
Kedy je dobra bitova mapa?
Ak mame male bloky
Co sa pri alokacii spravi so zoznamom segmentov?
Najde sa dostatocne velky a rozdeli sa
Ake pozname algoritmy alokacie blokov pamate?
First Fit
Next Fit
Best Fit
Worst Fit
Co je first fit?
prvy dostatocne velky segment sa pouzije - rychle a jednoduche
Co je next fit?
“circular first fit” - nezacinam od zaciatku
Co je best fit?
najdem volny segment s najblizsou velkostou
nevyhoda - treba prejst celu pamat a vytvaram male a nepouzitelne volne bloky
Co je worst fit?
Opak best fit
Nevyhoda je ze nemame potom kam dat velke ulohy
Co je to Quick Fit?
Zoznamy pre casto pouzivane velkosti segmentov
Opis Buddy algoritmus
Udrzuju sa zoznamy volnych segmentov s velkostou mocnin dvojky
Bloky za sebou tvoria dvojice
Po prichode poziadavky sa velkost zaokruhli hore k mocnine 2 a pouzije sa prislusny zoznam, ak je plny tak sa najde vacsi a rozdeli sa na polovice
Po uvolneni sa skontroluje ci je dvojica volna, ak ano tak sa zlucia a presunu do vyssieho zoznamu
Co vyuziva Linux na buddy algoritmus?
bitovu mapu - na kazdu dvojicu blokov (1 ak je jeden obsadeny, 0 ak oba volne alebo obsadene)
aj zoznam volnych blokov
Co je obmedzujuce pri sprave pamate?
Program zabera vzdy suvisly usek fyzickej pamate, teda velkost programu je obmedzena dostupnou fyzickou pamatou
Co je virtualna pamat?
Proces pracuje so suvislym adresovym priestorom ktory je OS mapovany do fyz. pamate
Co je vyhoda virtualnej pamate?
Proces nemusi byt v suvislom useku fyz pamati a teda to eliminuje externu fragmentaciu
Kto robi preklad adries z virtualnej na fyzicku?
Memory Management Unit MMU
Co je strankovanie a preco ho vyuzivame?
Rozdelime virtualny adresny priestor na suvisle bloky rovnakej dlzky, lebo mapovat kazdu jednu adresu samostatne je narocne
V strankovani, na co je rozdelena fyzicka pamat?
Strankove ramy (page frame) - rovnako velke bloky
Co obsahuje virtualna adresa v strankovani?
Cislo stranky a offset od zaciatku stranky
Co robi mapovanie v strankovani?
Prideluje strankovym ramom stranky - pomocou tabulky stranok
Kolko je tabuliek stranok?
Jedna pre kazdy proces
Co je problemom strankovania?
Interna fragmentacia
Co je demand paging? (na poziadanie)
Proces sa moze vykonavat aj ked nie je cely v pamati, moze byt cas na disku
Co je nevyhoda demand pagingu?
zlozitejsi OS, OS moze pridelit viac pamate nez je dostupne
Aky typ spravy pamate sa najviac dnes pouziva?
demand paging
Kedy nastava vypadok stranky?
Ked present bit v PTE nie je nastaveny
Co sa stane ked nie je nastaveny valid bit?
nevieme prelozit adresu - SIGSEGV
Co sa stane ak je adresa platna ale stranka nie je v pamati?
Najde sa volny strankovy ram
Ako sa pokracuje po vyrieseni page fault?
aktualizuje sa PTE a OS a restartuje sa proces od instrukcie ktora vypadok sposobila
Pozri si priklad na slide 31
slide 31
Na co je tabulka stranok?
na preklad logickej adresy na fyzicku
Musia byt rovnako velke virtualna a fyzicka adresa?
Nie
Preco potrebujeme viacurovnove tabulky stranok?
Aby tabulky nezaberali tolko miesta
Na co delime teda tabulky v dvojurovnovej tabulke stranok?
page directory, page table, offset
Kolko je page directory?
1
Co znamena bit 7 (page size bit)?
PDE neukazuje na tabulku stranok ale priamo na stranku
Pozri si priklad na slide 39
slide 39
Co je problem pri pouziti page table directory?
O jeden pristup navyse - rychlost klesa
Co je TLB?
polozky z PT v cache
Co je problem velkych stranok?
Interna fragmentacia
Pozri si priklad na slide 48
slide 48
Ako vieme riesit prilis velky pocet stranok na 64-bit architekture, kam sa nezmestia ani s pouzitim PTD?
Hierarchia tabuliek stranok
Inverzne tabulky - stranka ktoreho procesu je v rame umiestnena
Rozptylove tabulky
Aky je problem inverznych tabuliek?
Narocnejsi preklad virtualnej adresy na fyzicku, treba to prejst cele, ale vieme pouzit TLB
Ake flagy moze mat polozka tabulky stranok na x86?
G - global D - dirty A - accesed C - Cache disabled R - Read / Write U - User / Supervisor (privilegovany proces?) P - present / absent vo fyz. pamati
Ake su priciny vypadku stranky?
nema nastaveny bit U,P pri pristupe alebo zapisovanie do takej co nema bit R
Co sa spravi po vypadku stranky?
Spusti sa rutina co rozhodne co s tym, napriklad odosle signal procesu SIGSEGV
Alebo sa najde novy strankovy ram ak nebol bit P nastaveny
Kto vie vynulovat Dirty a Accesed Bit?
OS
Ake 2 sposoby algoritmov hladania obete pozname?
Vybrat nahodnu stranku
Optimalny algoritmus
Naco su algoritmy hladania obete?
Vyber bloku pamate ktory uvolnime
Aky je algoritmus NRU?
Not recently used
podla bitu R a D
vyberie sa nahodne stranka z triedy nepouzite nezmenene, resp nepouzite zmenene ak prva je prazdna
Aky je algoritmus FIFO?
Odstranuje sa podla FIFO, moc sa ale nepouziva
Co je algoritmus second chance?
rovnako ako FIFO ale ak je pouzivana vybrana obet, tak sa prida na koniec a dostane druhu sancu. Rezia je tym dost velka
Co je zac alg Clock algorithm?
Rovnake ako second chance ale stranky su organizovane v kruhovom zozname a teda npresuvaju sa, presuva sa len pointer
Aky algoritmus je least recently used LRU?
Najdlhsie nepouzita stranka
treba zistit aka stranka bola kedy naposledy pouzita - mega rezia
Aky alg je NFU?
Not frequently used
Ako LRU, kazdy ma pocitadlo pristupov, obet je s najnizsou hodnotou pocitadla
Aky je aging algoritmus?
Algoritmus starnutia
Pocitadlo sa posunie o bit doprava a R bit sa pripocita na najvyssiu poziciu
Ktory z algoritmov je optimalny (teoreticky)?
Least recently used, ale prakticky moc nie
Co ukladame, aky zoznam stranok?
Zoznam aktivnych a neaktivnych stranok
Ako teda sa realne vybera obet?
Aging v zozname neaktivnych stranok
Aky algoritmus je Clock-pro?
Uklada sa
recency - kolko pristupov k inym strankam sa urobilo od posledneho pristupu
Reuse distance RD - pocet inych stranok ku ktorym sa pristupovalo medzi dvoma pristupmi k stranke
Vybera sa obet na zaklade najvacsej RD
Aky algoritmus pouziva Linux?
Clock pro
Cim vyssia rychlost, tym …
zlozitejsie/drahsie a teda mensia kapacita
Ake pozname typy pamate od najrychlejsich?
Registre Cache RAM SSD HDD Siet
Ake su 3 vlastnosti pamatovej hierarchie?
Inkluzivnost - blizsie k CPU je podmnozina dat z vzdialenejsej urovne
Koherencia - instancie rovnakych dat v rovnakych urovniach musia byt rovnake
Lokalita - pristup do pamate nie je rovnaky, ale vykazuje iste vzory
Co je sekvencna lokalita?
Ak procesor v case n pristupil na adresu a, tak pravdepodobne bude v n+1 pristupovat k a+1
Teda sa oplati pozriet nasledujuce bloky
Co je priestorova lokalita
Ak procesor v case n pristupil na adresu a, tak pravdepodobne bude v n+1 pristupovat k bloku blizkemu a.
Co je casova lokalita?
Ak procesor v case n pristupil na adresu a, tak pravdepodobne bude v blizkej dobe pristupovat k a znova.
Mozu procesy bezat rychlo aj ked je fyzickej pamate menej nez celkovy sucet pamate alokovanej procesmi? Preco?
Ano, lebo casto pouzivaju procesy malu cast priestoru a zmeny su pomale.
Co je pracovna mnozina stranok?
Stranky ktore proces prave vyuziva
Kedy sa proces vykonava bez vacsieho poctu vypadkov s ohladom na pracovnu mnozinu stranok?
pokial su stranky z tejto mnoziny v pamati
Co je trashing?
neustale odkladanie a nahravanie stranok
Pozri velkost pracovnej mnoziny na lide 84
slide 84
Co je predstrankovanie?
Ak nechceme vypadky, tak si zavedieme nejake stranky do pracovnej mnoziny
Aky je rozdiel medzi lokalnym a globalnym pristupom vyberu obete?
Lokalny - len z ramov procesu
Globalny - z ramov vsetkych procesov
Aky je predpoklad Page Fault Frequency?
S rastucim poctom pridelenych strankovych ramov klesa pocet vypadkov
Co robi Page Fault Frequency alg?
Sleduje frekvenciu vypadkov a pridava alebo odobera ramy aby ju udrzal v priajetlnom intervale
Co je vyhodnejsie swapovat? menej velkych blokov alebo vela malych?
menej velkych
Pozri slide 90 na optimalnu velkost stranky
slide 90
Ake su sposoby pristupu k segmentu?
rwx
Moze byt segment pouzivany viacerymi procesmi? Ak ano daj priklad
Ano, zdielane kniznice
Co je to segmentacia?
Rozdelenie logickeho adresneho priestoru na samostatne segmenty
Z coho sa sklada logicka adresa? Pri segmentacii
Z cisla segmentu a offsetu
Je transparentne pre programatora strankovanie alebo segmentacia?
strankovanie
Ako dostaneme fyzicku adresu z logickej v segmentacii?
bazova adresa vo fyz pamati segmentu + offset
Aka architektura umoznuje kombinaciu segmentacie so strankovanim?
Intel Pentium
Co su segmenty programu?
Suvisle bloky so samostatnym vyznamom - text, data, bss, heap, stack,…
V akom structe je opisana Virtual Memory Area?
vm_area_struct
Co su Virtual Memory Area VMA?
Suvisle oblasti virtualneho adresneho priestoru
kde je dostupny zoznam VMA pre program?
/proc//maps
Co robi volanie mmap?
Vytvara nove mapovanie vo virtualnom adresovom priestore procesu
Co robi malloc(size)?
Alokuje size bajtov a vrati pointer na alokovanu pamat, alebo NULL v pripade chyby.
Ako vieme uvolnit pamat alokovanu malloc?
free
Kde alokuje pamat malloc?
V casti heap
Kedy sa vykonava malloc so systemovym volanim brk?
Ak nie je miesto v heap a treba posunut hranicu datoveho segmentu
Ake systemove volanie pouziva free?
sbrk
Ak malloc vrati nenulovy pointer, znamena to ze bude pamat skutocne k dispozicii?
Nie
Aku pamat poskytuje jadro procesom?
V celych strankach
Co si uchovava jadro pre znizenie rezie s alokaciou?
prepripravene objekty roznej velkosti
Coho sa tyka SLOB/SLAB/SLUB alokator?
Alokacie v jadre
Pozri priklad od slide 107
slide 107