Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Predavanje 1a: Computer-System Structures
- Operacije računarskog sistema
- I/O operacije
- Struktura memorije
- Hijerarhija memorije
- Hardverska zaštita
- Glavna arhitektura sistema
- Arhitektura računarskog sistema
- Operacije računarskog sistema
- I/O uređaji i CPU
- moze se izvršavati
- konkurentno
- CPU izolacija od I/O (3 uslova)
- 1. svaki uređaj kontroler ima lokalni bafer
- 2. DMA
- 3. Signal prekida (Interrupt controller)
- Interrupt Time Line for Single Process Doing Output
- Dve I/O Metode
- Direktan pristup memoriji (DMA)
- Koristi se za I/O uredjaje velike brzine
- omogucava brz prenos informacija
- između periferija i memorije.
- DMA Uredjaj kontroler prenosi pakete podataka
- iz bafera
- direktno u glavnu memoriju
- bez koriscenja CPU-a
- Jedan prekid
- je češći po bloku
- nego po bajtu.
- Struktura memorije
- Glavna memorija:
- veliki memorijski medijum
- kome CPU može pristupati direktno
- Sekundarna memorija:
- nastavak glavne memorije
- koja obezbeđuje veliki dugotrajni memorijski prostor
- Magnetni diskovi:
- čvrst metal ili staklene ploče
- omotani sa magnetnim materijalom po kojem se može pisati
- Površina diska je logički podeljena na staze,
- koji su podeljeni na sektore
- Disk kontroler obavlja
- logičku interakciju između uređaja i računara
- Mehanizam pomeranja glave diska
- Hijerarhija memorijskih uređaja
- Keširanje (Caching)
- Koriste ga memorije velike brzine
- da čuvaju podatke kojima se skoro pristupalo
- Zahteva tehniku (policy) za upravljanje kešom
- Keširanje predstavlja još jedan nivo u memorijskoj hijerarhiji.
- Ovo zahteva da podaci
- koji su istovremeno memorisani
- u više od jednog nivoa
- da budu konsistentani
- Migracija A iz diska u registar
- Hardverska zaštita
- Dual mode operacija (user – kernel)
- I/O zaštita
- Memorijska zaštita
- CPU zaštita
- Dvomodna operacija
- 1. Korisnički mod:
- izvršenje obavlja korisnik
- 2. Monitor mod
- (kao kernelski mod ili sistemski mod)
- izvršenje obavlja operativni sistem
- Dvomodna operacija
- Mode-bit se ubacuje u računarski hardver da ukaže na trenutni mod:
- monitor (0)
- ili
- user (1)
- Kada se javi greška ili prekid hardver se prebacuje u monitor mod
- I/O zaštita
- Sve I/O instrukcije su privilegovane instrukcije.
- Mora se osigurati
- da korisnički program
- nikad ne dobije kontrolu
- nad računarom u monitor modu
- (npr., korisnički program koji, kao deo njegovog izvršavanja,
- memoriše nove adrese u IVT)
- Korišćenje sistemskih poziva za izvršavanje I/O operacija
- Memorijska zaštita
- Mora se obezbediti memorijska zaštita za:
- IVT (vektor prekida)
- interrupt service routines
- kernel
- user processes
- Memorijska zaštita:
- ubacije dva registra
- koji određuju prostor adresa
- kojima program može pristupiti:
- Base register – opisuje najmanju fizičku memorijsku adresu.
- Limit register – sadrži veličinu prostora
- Korišćenje Base i Limit registara
- Hardverska adresna zaštita
- CPU zaštita
- Timer (real time clock):
- Obezbeđuje računarske prekide posle određenog perioda
- osigurava operativnom sistemu održavanje kontrole.
- Timer (real time clock) se dekrementira na svaki otkucaj sata
- Kada brojač dostigne vrednost 0, nastaje prekid
- Timer se obično koristi za implementaciju time sharing-a.
- Timer se takođe koristi za računanje trenutnog vremena
- Load-timer je privilegovana instrukcija
- Mrežna struktura
- Local Area Networks (LAN)
- Wide Area Networks (WAN)
- LAN struktura
- WAN struktura
- Predavanje 1b: Uvod u OS
- Šta je operativni sistem?
- Veliki računarski sistemi (Mainframe Systems)
- Desktop sistemi
- Višeprocesorski sistemi (Multiprocessor Systems)
- Distribuirani sistemi
- Udruženi sistemi (Clustered Systems)
- Sistemi za upravljanje u realnom vremenu
- Ručni sistemi (Handheld Systems)
- Računarsko okruženje (Computing Environments)
- Šta je operativni sistem?
- OS je program koji predstavlja
- posrednika
- između
- korisnika računara
- i
- računarskog hardvera
- Prikaz delova operativnog sistema
- Komponente računarskog sistema
- Hardver:
- osnovni računarski resursi (CPU, memorija, I/O uređaji)
- Operativni sistem:
- kontroliše i koordinara korišćenje hardvera
- između različitih aplikativnih programa
- za različite korisnike
- Aplikativni programi:
- određuju
- koji resursi sistema se koriste
- za rešavanje računarskih problema korisnika
- (prevodioci, baze podataka, video igre, poslovni programi)
- 4. Korisnici (ljudi, mašine, ostali računari)
- Definicija operativnog sistema
- OS kao upravljač resursa:
- upravlja
- dodeljuje resurse
- kontroliše računarski hardver
- OS kao virtuelna mašina:
- izvršava korisničke programe
- rešava korisničke probleme na lakši način.
- čini računarski sistem pogodnim za korišćenje
- Funkcije operativnog sistema
- Sekvenciranje poslova (s jednog na drugi)
- Upravljanje poslovima i interpretacija komandnog jezika
- Rukovanje greškama
- Rukovanje I/O operacijama
- Rukovanje prekidima
- Raspoređivanje poslova
- Upravljanje resursima
- Zaštita i sigurnost (protection and security)
- Višestruki pristup
- Dodatne funkcije:
- Korisnički interfejs
- Obračun
- Karakteristike operativnog sistema
- Konkurentnost (postojanje više procesa)
- Deoba resursa (Resource Sharing)
- Dugotrajna memorija (diskovi: magnetic, flash, SSD)
- Determinističan u odnosu na rezultate/ Nedeterminističan u odnosu na opterećenje
- Poželjne osobine:
- Efikasnost
- Pouzdanost
- Mogućnost održavanja
- Prihvatljiva veličina
- Poželjne osobine
- Efikasnost
- srednje vreme između grupnih (batch) poslova
- Vreme (%) iskorišćenosti procesora
- vreme prolaska za grupne poslove
- vreme odziva (za interaktivne sisteme)
- iskorišćenost resursa
- propusna moć (poslova/sat, transakcija/min)
- e=Tuseful/Total; o=Tsystem/Total; e+o=1
- Pouzdanost
- p je verovatnoća greške, f je funkcija stanja
- p e [0,1]; f=1-p
- Mogućnost održavanja
- jednostavan za održavanje sa malim brojem ljudi koji će raditi na održavanju
- Prihvatljiva veličina
- Tipovi operativnih sistema -1
- Kriterijum 1. (broj korisnika)
- jednokorisnički OS (DOS, MS-Windows 3.xx, 95, 98)
- višekorisnički OS (UNIX)
- Kriterijum 2. (broj simultanih procesa)
- jednoprocesni OS (DOS)
- višeprocesni OS (UNIX, MS-Windows)
- Kriterijum 3. Kombinacija 1+2
- jednoprocesni, jednokorisnički OS
- višeprocesni, jednokorisnički OS
- višeprocesni, višekorisnički OS
- Tipovi operativnih sistema -2
- Kriterijum 4. (obrada poslova)
- Sistemi sa grupnom obradom (batch)
- Interaktivni sistemi
- Kombinovani sistemi
- Kriterijum 5. (distribucija resursa)
- Centralizovani OS
- Mrežni OS
- Distribuirani OS
- Kriterijum 6. (namena)
- OS opšte namene
- OS specijalne namene
- Tipovi operativnih sistema -3
- Kriterijum 7. (funkcionalne osobine)
- Veliki računarski sistemi (mainframe)
- Sistemi sa deljenim vremenom (timesharing)
- Desktop sistemi
- Višeprocesorski sistemi
- Mrežni OS
- Distribuirani sistemi
- Udruženi sistemi (clusters)
- Sistemi za upravljanje u realnom vremenu
- Ručni sistemi (handheld)
- Veliki računarski sistemi
- Vreme pripreme se smanjuje grupisanjem sličnih poslova (batch)
- Automatsko sekvenciranje poslova (AJS)
- (bez operatora)
- automatski prebacuje kontrolu
- sa jednog posla na drugi.
- Rezidentni monitor (za AJS)
- početna kontrola je u monitoru (kernel)
- kontroliše prenos poslova
- kad se posao završi, kontrola se prenosi u monitor
- Raspored memorije za grupni sistem
- Multiprogramiranje (grupni sistemi)
- Osobine OS-a potrebne za multiprogramiranje
- I/O rutine podržane od sistema
- Upravljač memorijom:
- sistem mora dodeliti memoriju
- za nekoliko poslova
- CPU raspoređivanje:
- sistem mora izabrati
- između nekoliko poslova spremnih za odvijanje.
- Dodela uređaja
- Sistemi sa deljenim vremenom–Interaktivno računanje
- CPU se deli
- između nekoliko poslova
- koji se nalaze u memoriji i na disku
- (CPU se dodeljuje procesu samo ako je proces u memoriji).
- Proces može da se suspenduje van memorije na disk (vm)
- On-line komunikacija između korisnika i sistema je uspostavljena na sledeći način;
- kad operativni sistem završi izvršavanje jedne naredbe,
- onda očekuje sledeću “kontrolnu naredbu” od korisnika.
- Vreme odziva je što je moguće kraće
- Desktop sistemi
- Lični računar (PC):
- računarski sietem namenjen za jednog korisnika.
- I/O uređaji – tastatura, miš, monitor, mali štampači
- Podesni za rad i okrenuti korisniku (user friendly)
- Mogu da prihvaju tehnologije razvijene za veće operativne sisteme
- vrlo često pojedinac sam koristi računar
- i nema potrebu za naprednom korišćenjem CPU-a
- Ovde spadaju nekoliko različitih tipova operativnih sistema (Windows, MacOS, UNIX, Linux)
- Paralelni sistemi
- Multiprocesorski sistemi:
- sa više od jednog CPU
- u zatvorenoj komunikaciji
- Čvrsto-povezan grupni sistem:
- procesori dele memoriju i sistemski časovnik;
- komunikacija se obično odvija
- preko deljive memorije
- Prednosti paralelnih sistema:
- Povećanje brzine (manje od Nx, CPU sinhronizacija)
- Ekonomičnost (isto napajanje, memorija, I/O)
- Povećanje pouzdanosti
- Paralelni sistemi
- Simetrično multiprocesiranje (SMP)
- svaki procesor izvršava
- identičnu kopiju operativnog sistema.
- veliki broj procesa se može izvršavati
- po jedan na svakom CPU bez gubitka performansi
- mnogi moderni operativni sistemi podržavaju SMP
- Asimetrično multiprocesiranje
- Svaki procesor ima dodeljen specifičan zadatak;
- glavni procesor raspoređuje i dodeljuje poslove
- ostalim procesorima.
- Uglavnom se koristi u ekstremno velikim sistemima
- Arhitektura simetričnog multiprocesiranja
- Taksonomija za paralelne računare
- Proširena taksonomija
- UMA simetrična multiprocesorska arhitektura
- NUMA
- CC-NUMA
- Sun Fire E25K NUMA Multiprocessor
- Distribuirani sistemi
- Distribuira izračunavanje
- između nekoliko fizičkih procesora
- Labavo-povezani grupni sistem
- svaki procesor ima svoju lokalnu memoriju
- procesori komuniciraju između sebe
- putem raznih komunikacionih linija
- kao što su magistrale velike brzine ili telefonske linije
- Prednosti distribuiranih sistema:
- deljenje resursa
- ubrzavanje izračunavanja – load sharing
- pouzdanost
- komunikacije
- Distribuirani sistemi
- Zahtevaju mrežnu infrastrukturu
- LAN ili WAN
- Mogu biti realizovani kao klijent-server ili peer-to-peer sistemi.
- U klijent-server arhitekturi postoje:
- Serveri za izračunavanje (Compute server)
- Serveri podataka (File server)
- Serveri za štampače (Printer server)
- Struktura klijent-server sistema
- BlueGene
- Realizacija BlueGene
- Red Storm
- Baziran na 64bit AMD Opteron CPU
- 3 operaciona moda
- poboljšan momrijski protok
- sadrži mrežni CPU u sebi
- RedStorm realizacija
- BlueGene v Red Storm
- Klasteri (Cluster computing)
- 100-1000 PC
- osetno jeftiniji u odnosu na MPP
- koriste:
- Internet mrežu
- i
- PC komponente
- centalizovani i decentralizovani
- Google-arhitektura
- Udruženi sistemi (Clustered Systems)
- Udruženi sistemi se sastoje od dva ili više sistema koji dele storage
- Obezbeđuju visoku pouzdanost (Nema zastoja)
- asimetrično udruživanje:
- jedan server izvršava aplikaciju
- dok
- su ostali serveri neaktivni = prateći serveri (monitoring servers).
- simetričnom udruživanje:
- svi serveri izvršavaju aplikaciju/aplikacije
- (svi izvrčavaju i prate rad ostalih).
- Real-Time sistemi
- Često se koriste kao kontrolni uređaji
- u aplikacijama specijalne namene, kao što su:
- kontrolisanje naučnih eksperimenata
- sistemi za medicinsku grafiku
- sistemi za industrijsku kontrolu
- specijalni grafički sistemi
- Imaju precizno definisana vremenska ograničenja
- Real-Time sistemi mogu biti:
- hard real-time (nema diska)
- soft real-time (realni OS)
- Real-Time sistemi
- Hard real-time:
- sekundarna memorija ograničena ili otsutna,
- podaci se čuvaju u RAM ili read-only memory (ROM)
- nema diska, tastature, ekrana, miša..
- nema standardnih funkcija OS
- Soft real-time
- procesi u realnom vremenu i obični procesi
- mnogi OS su soft real-time
- limitirana upotreba u industrijskoj kontroli ili robotici
- upotreba u aplikacijama
- (multimedia, virtual reality)
- zahteva napredne osobine operativnih sistema
- Ručni sistemi (Handheld Systems)
- Personal Digital Assistants (PDAs)
- Mobilni telefoni
- Karakteristike:
- Ograničena memorija
- Spori procesori
- Mala veličina ekrana
- Migracija operativnih sistema i osobine
- Računarsko okruženje (Computing Environments)
- Tradicionalno okruženje
- desk-top
- ili
- time-sharing sistemi
- Web-bazirano okruženje
- Ugrađeno okruženje (embeded, real time)
- Predavanje 3: Strukture operativnih sistema
- Komponente sistema
- Servisi operativnog sistema
- Sistemski pozivi
- Sistemski programi
- Struktura sistema
- Virtuelna mašina
- Dizajn sistema i implementacija
- Generacije sistema
- Opšte komponente sistema
- Upravljanje procesima (Process Management)
- Upravljanje memorijom (Main Memory Management)
- Upravljanje podacima (File Management)
- Upravljanje uIazom i izlazom (I/O System Management)
- Upravljanje sekundarnom memorijom (Secondary Management)
- Umrežavanje (Networking)
- Zaštita (Protection System)
- Korisnički interfejs (Command-Interpreter System)
- Upravljanje procesima
- Proces je program koji se izvršava
- Proces traži izvesne resurse, da završi zadatak:
- CPU vreme
- memoriju
- datoteke
- I/O uređaje
- Operatvni sistem je odgovoran za sledeće aktivnosti u vezi sa upravljanjem procesa:
- Kreiranje i brisanje procesa.
- Suspenzija i nastavak procesa.
- Obezbeđuje mehanizme za:
- sinhronizaciju procesa
- komunikaciju među procesima
- Upravljanje memorijom
- Memorija je veliki niz reči ili bajtova,
- svaki sa svojom adresom
- To je spremište za brz pristup podacima
- deljiv za CPU i I/O uređaje
- Glavna memorija je privremeni uređaj za skladištenje
- Ona gubi svoj sadržaj u slučaju da se sistem obori
- Operativni sistem je odgovoran za sledeće aktivnosti u vezi sa upravljanjem memorijom:
- Čuva evidenciju koji deo memorije se trenutno koristi i ko je koristi
- Odlučuje koji prices će biti učitan kada memorijski prostor bude dostupan
- Dodeljuje i oduzima memorijski prostor po potrebi
- Upravljanje podacima
- Datoteka je skup povezanih informacija definisan od strane njenog tvorca
- Uopšteno, datoteke predstavljaju:
- programe
- podatke
- Operativni sistem je odgovoran za sledeće aktivnosti u vezi sa upravljanjem datotekama:
- Kreiranje datoteke i njeno brisanje.
- Kreiranje direktorijuma i njegovo brisanje.
- Pruža podršku za rukovanje datotekama i direktorijumima.
- Mapira datoteke u sekundarnoj memoriji
- Pravi kopiju datoteke na trajnoj (ne privremenoj) memorji.
- Upravljanje ulazom i izlazom
- I/O sistem se sastoji od:
- 1. Komponente za upravljanje memorijom
- buffering
- caching
- spooling system
- 2. Opšti drajveri za uređaje
- 3. Drajveri za određeni hardver
- Upravljanje sekundarnom memorijom
- Pošto je glavna memorija (primarna memorija) privremena
- i suviše mala da prihvati sve podatke i programe za stalno,
- računarski sistem mora obezbediti sekundarnu memoriju u koju kopira podatke iz glavne memorije
- Mnogi moderni računarski sistemi koriste diskove
- kao osnovni memorijski medijum,
- za programe i podatke
- Operativni sistem je odgovoran za sledeće aktivnosti u vezi sa upravljanjem sekundarnom memorijom:
- Upravljanje slobodnim prostorom
- Dodela memorije
- Disk scheduling
- Umrežavanje (Distribuirani sistemi)
- Distribuirani sistem je:
- skup procesora
- koji ne dele memoriju ili sistemski časovnik
- svaki procesor ima svoju lokalnu memoriju
- Procesori se u sistemu spajaju kroz komunikacionu mrežu
- Komunikacija se odvija korišćenjem protokola
- Distribuirani sistem obezbeđuje korisniku da pristupa raznim resursima sistema
- Pristup deljenim resursima obezbeđuje:
- Brže izračunavanje
- Povećanu upotrebljivost podataka
- Veću pouzdanost
- Zaštita
- Zaštita predstavlja mehanizam
- koji kontroliše pristup
- programa
- procesa
- korisnika
- sistemu i korisničkim resursima.
- Mehanizam za zaštitu mora:
- praviti razliku između
- autorizovane i
- neautorizovane upotrebe
- obezbediti način da to sprovede
- Korisnički interfejs (UI)
- Tekstualni korisnički interfejs
- komandna linija
- shell (u UNIX-u)
- Mnoge komande se operativnom sistemu zadaju preko kontrolnih naredbi koje obavljaju:
- kreiranje procesa i upravljanje
- upravljanje ulazom i izlazom
- upravljanje sekundarnom memorijom
- upravljanje glavnom memorijom
- pristup sistemu datoteka
- zaštita
- umrežavanje
- GUI
- Servisi operativnog sistema
- Izvršavanje programa:
- sposobnost sistema
- da učita program u memoriju i
- da ga pokrene
- I/O operacije:
- pošto korisnički programi nemogu da izvršavaju I/O operacije direktno,
- operativni sistem mora obezbediti neki način da izvrši I/O operacije
- Rukovanje sistemom datoteka:
- sposobnost programa da čita, upisuje, kreira, i briše datoteke
- Komunikacija:
- razmena informacija između procesa koji se uzvršavaju
- na istom računaru ili
- na različitim sistemima koji su umreženi
- Implementira se preko deljene memorije ili sistema poruka
- Otkrivanje grešaka:
- garantuje ispravno izračunavanje
- tako što otkriva greške u CPU i memoriji, u I/O uređajima, ili u korisničkim programima
- Sistemski pozivi (System Calls)
- Sistemski pozivi obezbeđuju interfejs
- između programa koji se izvršava i operativnog sistema
- Generalno, realizuju se u asembleskom jeziku.
- Noviji programski jezici za sistemsko programiranje
- takođe omogućavaju realizaciju sistemskih poziva u C, C++
- Postoje tri generalna metoda za prosleđivanje parametara između programa koji se izvršava i operativnog sistema.
- 1. Prosleđivanje parametara u registrima procesora
- 2. Postavljanjem parametara u memorijskoj tabeli, a adresa tabele se prosleđuje u registru procesora.
- 3. Postavljanjem parametara na vrh steka (push), koje operativni sistem skida sa steka.
- Passing of Parameters As A Table
- Tipovi sistemskih poziva
- Kontrola procesa
- Upravljanje datotekama
- Upravljanje uređajima
- Rukovanje informacijama
- Komunikacije
- MS-DOS Execution
- UNIX Running Multiple Programs
- Komunikacioni modeli
- Unutrašnja struktura OS-a
- Monolitni sistemi (Monolithic Systems)
- velika zbrka (big mess)
- nema slojeva, nema ograničenog pristupa
- parametri sistemskog poziva se smeštaju u određena mesta
- Slojevita realizacija (Layered systems)
- Mikrokernel arhitektura
- Klijent-server arhitektura
- Slojevita realizacija
- Operativni sistem je podeljen na različite slojeve (layer):
- svaki sloj se gradi na slojeve ispod njega
- Najniži sloj (sloj 0), je hardver
- najviši (sloj N) je korisnički interfejs
- Sa ovakvim modularnim konceptom,
- slojevi koriste
- funkcije i servise
- jedino sa nižih nivoa
- Sloj operativnog sistema
- Struktura MS-DOS sistema
- MS-DOS
- velika funkcionalnost
- u malom prostoru
- nije podeljen na module
- Iako MS-DOS ima neku strukturu,
- njegov interfejs i nivo funkcionalnosti
- nisu dobro odvojeni
- MS-DOS slojevita struktura
- Mikrokernel sistemska struktura
- Mnoge funkcije kernela se pomeraju u korisnički prostor
- Korisnički moduli komuniciraju između sebe koristeći sistem poruka (message passing)
- Dobre osobine:
- - kernel se lako proširuje i optimizuje
- - sistem se lako prenosi na drugu računarsku arhitekturu
- - mnogo je pouzdaniju (manje koda se izvršava u kernelskom modu)
- - mnogo je sigurniji
- Struktura UNIX sistema
- UNIX operativni sistem ima ograničenu strukturu.
- UNIX OS se sastoji od 2 odvojena dela.
- 1. Sistemski programi
- 2. Kernel
- se sastoji od:
- interfejsa sistemskih poziva na višem nivou
- fizičkog hardvera na nižem
- Obezbeđuje podršku za:
- sistem datoteka
- CPU raspoređivanje
- upravljanje memorijom
- i ostale funkcije operativnog sistema
- veliki broj funkcija za jedan nivo
- Struktura UNIX sistema
- OS/2 slojevita struktura
- Windows NT Client-Server Structure
- Virtuelne mašine
- Virtuelna mašina je zasnovana
- na slojevitoj organizaciji
- Tretira
- realni hardver i realni kernel
- kao da su hardver za operativni sistem koji predstavlja
- Virtelna mašina obezbeđuje
- identičan interfejs
- kao da je realni hardver ispod virtuelne mašine
- Operativni sistem stvara iluziju
- o višestrukim procesima ili OS
- koji se izvršavaju na svom virtuelnom procesoru
- i svojoj virtuelnoj memoriji.
- Virtuelne mašine (2)
- Resursi računara
- se dele
- da kreiraju virtuelne mašine.
- 1. CPU scheduling može stvoriti iluziju da korisnici imaju svoj procesor
- 2. Spooling i sistem datoteka
- može obezbediti virtuelne čitače kartica
- i virtuelne linijske štampače.
- 3. Vremenski deljeni korisnički terminal
- radi
- kao konzola za operatera virtuelne mašine
- Koncept virtuelne mašine
- Prednosti i mane virtuelnih mašina
- Koncept virtuelne mašine obezbeđuje
- kompletnu zaštitu sistemskih resursa
- pošto su sve virtuelne mašine izolovane od ostalih virtuelnih mašina
- Ova izolacija, sprečava direktno deljenje resursa
- Virtuelne mašine su perfektan razvojni sistem
- za realizaciju novih operativnih sistema
- Sistem se razvija na virtuelnoj mašini
- a ne na realnoj
- i nemože doći do narušavanja normalnih sistemskih operacija
- Koncept virtuelne mašine je komplikovan za realizaciju
- zato što treba egzaktno
- simulirati hardver koga reprezentuje virtulena mašina
- Ciljevi kod projektovanja OS-a
- Korisnički ciljevi: operativni sistem treba da bude podesan za:
- korišćenje
- lak za učenje
- pouzdan
- bezbedan
- brz
- Sistemski ciljevi – operativni sistem treba da bude jednostavan za:
- projektovanje
- implementaciju i održavanje
- fleksibilan
- pouzdan
- bez grešaka
- efikasan
- Implementacija operativnog sistema
- Tradicionalno, operativni sistemi su pisani na asemblerskom jeziku
- Danas se operativni sistemi pišu u višim programskim jezicima.
- Implementacija u višem programskom jeziku:
- izvorni kod se mnogo brže piše
- izvorni kod je mnogo kompaktiniji
- Kod se lakše razume i lakše se otklanjaju greške (debug)
- Operativni sistem napisan na višem programskom jeziku se mnogo lakše prenosi na drugu računarsku arhitekturu, odnosno drugu vrstu procesora.
- Generisanje operativnog sistema (SYSGEN)
- Operativni sistemi se generišu da rade
- za više klasa računara;
- operativni sistem mora da se konfiguriše za svaku klasu procesora, posebno.
- SYSGEN program obezbeđuje informacije:
- za hardversku konfiguraciju
- za koju će se generisati operativni sistem.
- Booting – strartovanje operativnog sistema punjenjem kernela sa diska u memoriju.
- Bootstrap program – kod koji se čuva u ROM-u
- sposoban je da:
- locira kernel
- napuni kernel u memoriju
- otpočne izvršenje
- Uvod u procese
- Pojam procesa
- Raspoređivanje procesa
- Operacije nad procesima
- Saradnja među procesima
- Interprocesna komunikacija (IPC)
- Komunikacija u klijent-server sistemima
- Pojam procesa
- Operativni sistem izvršava mnoštvo programa:
- Grupni sistemi – jobs - poslovi
- Time-shared sistemi – korisnički programi ili zadaci (tasks)
- U literaturi se termini job, task i process koriste identično.
- 1. def: Proces je program u stanju izvršavanja (running)
- (kontekst procesa: proces se izvršava u svom kontekstu).
- Proces sadrži:
- CPU registre {programski brojač i ostali CPU registri}
- Memorijsku sekciju
- tekst
- stek (stack)
- sekcija podataka
- I/O resursi: {datoteke, I/O uređaji}
- OS struktura
- 2. def: Proces je unija 4 konteksta:
- Register context
- Memory context
- IO context
- OS kontext
- Stanja procesa
- U toku izvršavanja proces menja stanja:
- New (novi): Proces je upravo kreiran.
- Ready (spreman): Proces je spreman za rad ali čeka da mu se dodeli CPU.
- Running (izvršava se): Procesove Instrukcije se upravo izvršavaju (odnosi se na CPU)
- Waiting (čekanje): Proces čeka da se neki događaj izvrši.
- Terminated (završio): Proces je završio izvršavanje.
- Dijagram stanja procesa
- Running stanje i Dual-Mode Operation
- Mode Bit se ubacuje u računarski hardver
- da ukazuje na trenutni mode:
- monitor mode (0)
- ili
- user mod (1)
- Kada se javi greška ili prekid hardver prebacije u monitor mod.
- Sistemski pozivi
- PCB (Process Control Block)
- Informacije vezane za svaki proces:
- Stanje procesa
- Programski brojač
- Sadržaj CPU registara
- Informacije o memoriji procesa
- Lista otvorenih datoteka
- Statističke informacije
- Status I/O resursa
- PCB (Process Control Block)
- CPU prebacivanje od procesa do procesa
- Queue: red čekanja
- Red čekanja za poslove (Job queue):
- obuhvata sve procese u sistemu
- Red čekanja za spremne procese (Ready queue):
- obuhvata sve procese
- smeštene u glavnoj memoriji
- spremne i čekaju na izvršenje
- Redovi čekanja za I/O uređaje (Device queues):
- obuhvata procese koji
- čekaju na dodelu I/O uređaja
- Proces se kreće između različitih redova čekanja
- Ready Queue and Various I/O Device Queues
- Prikaz raspoređivanja procesa
- Raspoređivači (Schedulers)
- Long-term (dugi, dugoročni) raspoređivač
- (ili raspoređivač poslova):
- selektuje procese
- i dovodi ih
- u red čekanja za spremne poslove (Ready queue)
- Short-term (kratki, kratkoročni) raspoređivač
- (ili CPU raspoređivač):
- seletuje proces
- koji će se sledeći izvršiti
- i dodeljuje mu CPU
- Blok dijagram za medium-term (srednji) raspoređivač
- Raspoređivači (Schedulers)
- kratkoročni raspoređivač se poziva veoma često
- (millisekunde) (mora biti brz).
- dugoročni raspoređivač se ne poziva često
- (sekunde, minuti) (može biti spor).
- dugoročni raspoređivač reguliše stepen multiprogramiranja
- Procese možemo podeliti:
- I/O intenzivne procese (IO bound process):
- najveći deo njihovog vremena izvršavanja otpada na I/O cikluse,
- relativno mala upotreba CPU
- CPU intenzivne procese (CPU bound process):
- najveći deo svog vremena korsite na CPU izračunavanja,
- veoma velika upotreba CPU
- Prebacivanje konteksta (Context Switch)
- Kada se CPU prebacuje na drugi proces
- sistem mora sačuvati stanje starog procesa
- i
- učitati sačuvano stanje za novi proces
- Prebacivanje konteksta (Context switch) =
- pamti stanje starog procesa
- +
- učitava sačuvano stanje novog procesa
- Prebacivanje konteksta je gubitak vremena (overhead);
- sistem ne može raditi koristan posao dok prebacuje
- Vreme zavisi od hardverskih performansi
- Kreiranje procesa (Process Creation)
- Kreiranje:
- Roditelj proces kreira dete proces
- koji, dalje kreira druge procese
- i formira stablo procesa
- Deljenje resursa (Resource sharing)
- Roditelj i dete procesi dele sve resurse
- Dete proces deli podskup od roditeljskih resursa
- Roditelj i dete proces ne dele resurse
- Izvršavanje (Execution)
- Roditelj i dete procesi se izvršavaju konkurentno
- Rioditelj proces čeka da dete proces završi aktivnosti
- Kreiranje procesa
- Memorijski adresni prostor
- Dete proces kopira adresni prostor roditelja
- Dete proces dobija program koji puni njegov adresni prostor.
- UNIX primeri
- fork sistemski poziv kreira novi proces
- exec sistemski poziv se koristi posle fork
- koji puni adresni prostor novim programom
- Kreiranje procesa (fork)
- /* fork drugi proces*/
- pid = fork ();
- if (pid == 0 )
- { /*dete proces*/
- execlp(“/bin/ls”, “ls”, NULL);
- }
- else /*roditelj proces*/
- /*roditelj će čekati da dete završi*/
- wait(NULL);
- printf(“Dete je završilo");
- exit (0);
- }}
- Stablo procesa na UNIX sistemu
- Završetak procesa (Process Termination)
- (exit) = normal termination
- Proces izvršava poslednju aktivnost i
- traži od operativnog sistema da ga obriše (exit)
- Dete proces vraća izlazne podatke roditelju (preko wait)
- Resursi koji su pripadali procesu detetu se oslobađaju
- (abort) = abnormal termination
- Roditelj proces može prekinuti izvršavanje dece procesa, ako:
- Dete proces je prekoračilo dodeljene resurse
- Aktivnost koju obavlja dete proces nije više potrebna
- Ako proces roditelj završi aktivnosti:
- neki operativni sistemi ne dozvoljavaju da dete proces nastavi sa izvršavanjem ako je roditelj završio
- Nasilno prekidanje (Cascading termination)
- Saradnja među procesima
- Nezavisni procesi:
- nemogu uticati ili ne trpe uticaj
- od strane drugih procesa.
- (ne dele podatke, ili resurse)
- Kooperativni procesi:
- mogu uticati ili da se na njih utiče
- od strane drugih procesa.
- (dele podatke, ill resurse)
- Prednosti saradnje među procesima:
- Deljenje informacija
- Ubrzavanje rada
- Modularnost
- Pogodnost
- Problem Proizvođač-Potrošač
- Paradigma za kooperativne procese,
- proizvođač proces proizvodi informacije
- potrošač koji troši informacije
- Bafer (buffer)
- bafer beskonačnog kapaciteta (unbounded-buffer) nema ograničenje u veličini bafera.
- ograničeni bafer (bounded-buffer) ima ograničenu veličinu bafera
- Sinhronizacija procesa:
- turn
- flags
- semaphores
- monitor
- IPC (sistem poruka)
- Bounded-Buffer – Rešenje za deljenje memorije
- Deljeni podaci
- #define BUFFER_SIZE N
- typedef struct
- {
- . . .
- } item;
- item buffer[BUFFER_SIZE];
- int in = 0; #first free buffer position
- int out = 0; #first full buffer position
- Rešenje je tačno, ali može koristiti samo BUFFER_SIZE-1 elemenata
- Bounded-Buffer – Proces proizvođač
- item nextProduced; int in = 0; #in ->first free buffer position
- int out = 0; #out->first full buffer position
- while (1)
- {
- while (((in + 1) % BUFFER_SIZE) == out)
- ; /* buffer is full, do nothing */
- buffer[in] = nextProduced;
- in = (in + 1) % BUFFER_SIZE;
- }
- Bounded-Buffer – Proces potrošač
- item nextConsumed; int in = 0; #first free buffer position
- int out = 0; #first full buffer position
- while (1)
- {
- while (in == out) #empty
- ; /* do nothing */
- nextConsumed = buffer[out];
- out = (out + 1) % BUFFER_SIZE;
- }
- Interprocesna komunikacija (IPC)
- Mehanizam za procese koji omogućava da:
- komuniciraju
- sinhronizuju njihove akcije
- Tri metode:
- signali (UNIX)
- deljena memorija
- sistem poruka
- Komunikacioni model
- (IPC): poruke
- Sistem poruka:
- procesi razmenjuju poruke
- procesi komuniciraju sa ostalim procesima
- bez deljenja memorije
- IPC sistem obezbeđuje dve operacije:
- slanje poruke (send message) – poruke fiksne ili promenljive veličine
- prijem poruke (receive message)
- Ako procesi P i Q žele da komuniciraju, oni trebaju da:
- uspostave komunikacioni link između njih
- poruke razmenjuju preko send/receive operacija
- Implementacija komunikacionog linka:
- fizička (npr., deljena memorija, hardverska magistrala)
- logička (npr., logičke osobine)
- Pitanja vezana za implementaciju
- Kako su linkovi uspostavljeni?
- Da li se linku mogu pridružiti više od dva procesa?
- Koliko linkova može postojati
- između svakog para komunikacionih procesa?
- Šta je kapacitet linka?
- Da li je veličina poruke koju link može preneti: fiksna ili promenljiva?
- Da li je link unidirectional ili bi-directional?
- Direktna komunikacija
- Procesi trebaju da imaju ime i to svaki različito:
- send (P, message) – poslaće poruku procesu P
- receive (Q, message) – primiće poruku od procesa Q
- Osobine direktne komunikacije:
- Veze se uspostavljaju automatski
- Veza je udružena sa tačno jednim parom komunikacionih procesa
- Između svakog para postoji tačno jedna veza
- Veza može biti unidirectional, ali se koristi i bi-directional
- Indirektna komunikacija
- Poruke se šalju i primaju preko poštanskih sadučića (mailboxes)
- (ili preko portova)
- Svako sanduče ima jedinstven id
- Procesi mogu komunicirati samo ako dele sanduče
- Osobine indirektne komunikacije:
- Veza se uspostavlja samo ako procesi dele zajedničko sanduče
- Vezi se mogu pridružiti više procesa
- Između svakog para može postojati više različitih veza
- Veza može biti unidirectional ili bi-directional.
- Indirektna komunikacija
- Operacije
- kreiranje novog sandučeta
- slanje i primanje poruka kroz sanduče
- brisanje sandučeta
- Naredbe za slanje:
- send(A, message) – poslaće poruku u sanduče A
- receive(A, message) – primiće poruku iz sanduče A
- Indirektna komunikacija
- Deljenje sandučeta
- P1, P2, i P3 dele sanduče A.
- P1, šalje; P2 i P3 primaju.
- Ko je dobio poruku?
- Rešenje:
- 1. Dozvoliti da se link uspostavlja između najviše dva procesa
- 2. Dozvoliti da samo jedan proces može obaviti prijem u jednom trenutku
- 3. Dozvoliti da sistem proizvoljno bira primaoca
- Pošiljaoc je obavestio ko je bio primaoc.
- Sinhronizacija
- Sistem poruka može biti blokirajući ili neblokirajući
- blokirajući funkcioniše sinhrono
- neblokirajući funkcioniše asinhrono
- slanje i primanje poruka može biti:
- blokirajuće
- ili
- neblokirajuće
- Baferisanje
- Message Buffer = Red u kom poruka čeka ;
- realizacija na jedan od 3 načina:
- Nulti kapacitet (Zero capacity): 0 poruka se čekaPošiljalac mora čekati primaoca (rendezvous).
- Ograničen kapacitet (Bounded capacity): ograničena dužina na n porukaPošiljalac mora da sačeka ako je bafer pun
- Neograničen kapacitet (Unbounded capacity) – neograničena dužinaPošiljalac nikad ne čeka
- Potvrda: (P proces šalje poruku procesu Q)
- Proces P Proces Q
- send(Q, message) receive(P, messages)
- receive(Q, message) send(P, “acknowledgment”)
- Osobine poruka
- Postoje tri vrste poruka koje razmenjuju procesi:
- Fiksne veličine
- Promenljive veličine
- Tipske poruke
- Druge osobine (waiting):
- Nikad ne čeka
- Čeka za odgovor (moguć deadlock)
- Izgubljene poruke (lost messages)
- otkrivanje
- ponovno prenošenje
- Komunikacija u klijent-server sistemima
- Sockets
- Poziv udaljene procedure (Remote Procedure Calls -RPC)
- Sockets
- BSD način za IPC između različitih mašina
- Socket se definiše kao krajnja tačka komunikacije
- Socket = Povezuje IP adresu i port
- Socket 161.25.19.8:1625 se obraća
- portu 1625
- na hostu 161.25.19.8
- Komunikacija se odvija između para socketa
- Socket model
- Socket komunikacija
- Poziv udaljene procedure (RPC)
- Poziv udaljene procedure (RPC) je abstrakcija poziva procedure
- između procesa na mrežnom sistemu
- Stubovi: klijentska strana je proxy za aktuelnu proceduru na serveru
- Stub klijentske strane:
- pronalazi server
- šalje parametre
- Stub serverske strane:
- prima ovu poruku
- raspakuje parametre
- izvršava proceduru na serveru.
- Izvršavanje RPC
- Niti (Threads)
- Opšti pregled
- Višenitni modeli (Multithreading Models)
- Osobine niti
- Pthreads
- Solaris 2 niti
- Windows 2000 niti
- Linux niti
- Jedno-nitni i više-nitni procesi
- Editor (single/multi threaded)
- Web-Browser (single/multi threaded)
- Dobre osobine
- Vreme odziva (Responsiveness)
- Deljenje resursa (Resource Sharing)
- Ekonomičnost
- Bolje iskorišćenje višeprocesorske arhitekture
- Korisničke niti (User Threads)
- Nitima upravlja korisnička biblioteka za niti
- Primeri:
- - POSIX Pthreads
- - Mach C-threads
- - Solaris threads
- Kernelske niti (Kernel Threads)
- Podržava ih kernel
- Primeri:
- - Windows 95/98/NT/2000
- - Solaris
- - Tru64 UNIX
- - BeOS
- - Linux
- Višenitni modeli
- Više u jednu (Many-to-One)
- Jedna u jednu (One-to-One)
- Više u više (Many-to-Many)
- Model više u jednu
- Više korisničkih niti
- mapira se u
- jednu kernelsku nit
- Koristi se na sistemima koji ne podržavaju kernelske niti
- Model više u jednu
- Model jedna u jednu
- Svaka korisnička nit se mapira u kernelsku nit
- Primeri:
- - Windows 95/98/NT/2000
- - OS/2
- Model jedna u jednu
- Model više u više
- Dozvoljava da više korisničkih niti
- bude mapirano
- u više kernelskih niti
- Dozvoljava operativnom sistemu
- da kreira
- dovoljan broj kernelskih niti
- Solaris 2
- Windows NT/2000 sa ThreadFiber paketom
- Model više u više
- Osobine niti
- Fork() i exec() sistemski pozivi
- Prekidanje niti
- Upravljanje signalima
- Gomile niti (Thread pools)
- Specifični podaci za nit (Thread specific data)
- Pthreads
- POSIX standard (IEEE 1003.1c) = pravila za:
- kreiranje niti
- i
- njihovu sinhronizaciju
- Postoji API i Pthread biblioteka na korisničkom nivou, koja programeru omogućava kreiranje niti
- Prihvaćeni su u UNIX operativnim sistemima
- Solaris 2 niti
- Solaris procesi
- Windows 2000 niti
- Primenjuju one-to-one mapiranje
- Svaka nit sadrži:
- - nit id
- - registarski set
- - korisnički stek i kernelski stek
- - mesto za privatne poruke
- Linux niti
- Linux koristi termin tasks umesto threads
- Kreiranje niti se izvršava kroz clone() sistemski poziv.
- Clone() dozvoljava
- da dete proces deli adresni prostor
- sa roditeljem procesom
- Raspoređivanje procesa (CPU Scheduling)
- Osnovni koncepti
- Kriterijumi za raspoređivanje
- Algoritmi za raspoređivanje
- Raspoređivanje u višeprocesorskoj okolini
- Raspoređivanje u realnom vremenu
- Ispitivanje algoritama
- Osnovni koncepti
- Maksimalno iskorišćenje CPU-a
- postiže se
- multiprogramiranjem
- CPU–I/O Burst Cycle:
- Izvršavanje procesa se sastoji od
- ciklusa CPU izvršavanja
- i
- ciklusa čekanja na I/O operacije
- CPU burst distribucija
- malo dugačkih-burst procesa
- mnogo kratkih-burst procesa
- Naizmenična sekvenca CPU i I/O Bursts
- Histogram CPU-burst vremena
- CPU raspoređivač (CPU Scheduler)
- Selektuje iz reda čekanja procese u memoriju
- koji su spremni da se izvrše,
- i dodeljuje CPU jednom od njih
- CPU raspoređivanje se dešava kada se proces:
- 1. Prebacuje iz stanja izvršavanja u blokirano stanje
- 2. Prebacuje iz stanja izvršavanja u stanje spremnosti
- 3. Prebacuje iz blokiranog stanja u stanje spremnosti
- 4. Završi svoje aktivnosti
- Raspoređivanje koje se dešava pod okolnostima 1 i 4 je bez prekidanja (non-preemptive)
- Raspoređivanje pod drugim okolnostima je preemptive
- Dispečer (Dispatcher)
- Dispečer modul
- daje kontrolu CPU procesu
- koji je izabran od strane kratkoročnog raspoređivača
- Funkcije dispečera:
- prebacivanje konteksta
- prebacivanje u korisnički režim rada
- skok na odgovarajuću lokaciju izabranog procesa koji će omogućiti njegovo izvršavanje
- Kašnjenje dispečera (Dispatch latency):
- vreme koje je potrebno dispečeru
- da zaustavi jedan proces i
- startuje izvršavanje drugog.
- Kriterijumi za raspoređivanje
- Iskorišćenje CPU
- održavati CPU zauzetim (busy) kad god je moguće
- Propusna moć (Throughput):
- broj procesa izvršenih u jedinici vremena
- Vreme za kompletiranje procesa (Turnaround time, TA, ATA):
- ukupna količina vremena potrebna da se izvrši jedan proces
- Vreme čekanja (Waiting time, WT, AWT) –
- ukupno vreme koje proces provede u redu čekanja spremnih procesa (ready queue)
- Vreme odziva (Response time)
- vreme kada se uputi neki zahtev
- pa do pojave prvih rezultatata procesa
- Optimizacija kriterijuma
- Maksimalno iskorišćenje CPU-a
- Maksimalna propusna moć
- Minimalno vreme za kompletiranje procesa
- Minimalno vreme čekanja
- Mininimalno vreme odziva
- Algoritmi
- FCFS
- SJF <-> SRTF
- RR
- Priority
- Multilevel
- First-Come, First-Served (FCFS) raspoređivanje
- Proces Vreme izvršavanja
- P1 24
- P2 3
- P3 3
- Pretpostavimo da procesi dolaze sledećim redom: P1 , P2 , P3 Gantt karta za raspoređivanje je:
- Vreme čekanja za P1 = 0; P2 = 24; P3 = 27
- Srednje vreme čekanja: (0 + 24 + 27)/3 = 17
- FCFS raspoređivanje
- Pretpostavimo da procesi dolaze sledećim redom:
- P2 , P3 , P1 .
- Gantt karta za raspoređivanje je:
- Vreme čekanja za P1 = 6; P2 = 0; P3 = 3
- Srednje vreme čekanja: (6 + 0 + 3)/3 = 3
- Mnogo bolje nego prošli slučaj (AWT je bio 17)
- Efekat konvoja:
- kratki procesi
- iza
- dugačkih procesa
- Shortest-Job-First (SJF) raspoređivanje
- Svaki proces određuje dužinu svog sledećeg CPU ciklusa
- Ove dužine služe za raspoređivanje procesa sa najkraćim vremenom
- Dve šeme:
- SJF: bez pretpražnjenja (nonpreemptive):
- kada je CPU dat procesu
- N emože biti oduzet
- dok se proces ne izvrši do kraja.
- SRTF: sa pretpražnjenjem (preemptive):
- ako dođe novi proces
- sa vremenom izvršavanja manjim od
- preostalog vremena izvršavanja tekućeg procesa,
- nastaje predpražnjenje.
- Ova šema je poznata kao Shortest-Remaining-Time-First (SRTF)
- SJF je optimalan – daje najmanje srednje vreme čekanja za dati skup procesa.
- Određivanje dužine sledećeg CPU ciklusa
- Može se samo proceniti dužina
- Procena se obavlja tako što se
- na bazi svih prethodnih CPU ciklusa,
- odredi eksponencijalna srednja vrednost
- Primer eksponencijalne srednje vrednosti
- =0
- n+1 = n
- Skorija istorija se neračuna (stvarne dužine nemaju efekta)
- =1
- n+1 = tn
- Samo poslednji CPU ciklus se računa
- Ako proširimo formulu dobijamo:
- n+1 = tn+(1 - ) tn -1 + …
- +(1 - )j tn -j + …
- +(1 - )n t0 +(1 - )n+10
- Ako su oba i (1 - ) manje od ili jednako 1,
- svaki sledeći termin
- je manje težine od prethodnika
- Procena trajanja sledećeg CPU ciklusa
- Primer SJF bez pretpražnjenja
- novo raspoređivanje: samo kad proces završi
- Proces Vreme nailaska Vreme izvršavanja
- P1 0.0 7
- P2 2.0 4
- P3 4.0 1
- P4 5.0 4
- SJF (non-preemptive)
- Srednje vreme čekanja = (0 + 6 + 3 + 7)/4 = 4
- (gleda se vreme nailaska)
- za P2 i P4, se primenjuje algoritam FIFO
- Primer SJF sa pretpražnjenjem (SRFT)
- novo raspoređivanje: kad proces završi i kad naidje novi proces
- pogledati u ready queue: svaki novi proces izaziva novo rasporedjivanje
- Proces Vreme nailaska Vreme izvršavanja
- P1 0.0 7
- P2 2.0 4
- P3 4.0 1
- P4 5.0 4
- SJF (sa pretpražnjenjem)
- srednje vreme čekanja = (9 + 1 + 0 +2)/4 = 3
- pogledati u ready queue: svaki novi proces izaziva novo rasporedjivanje
- Prioriteno raspoređivanje
- Prioritet (ceo broj) se dodeljuje svakom procesu
- CPU alocira proces sa najvećim prioritetom (manji broj veći prioritet)
- sa pretpražnjenjem
- bez pretpražnjenja
- SJF je prioritetno raspoređivanje
- gde je prioritet obrnuto proporcionalna funkcija od dužine trajanja sledećeg CPU ciklusa
- Problem zakucavanje
- proces niskog prioriteta se možda nikad ne izvrši
- Rešenje Aging
- sa vremenom čekanja raste prioritet procesa
- Round Robin (RR)
- Svaki proces ima malu količinu vremena (vremenski kvantum)
- obično 10-100 millisekundi
- Kada ovo vreme istekne
- proces se prekida
- i
- ubacuje na kraju reda čekanja
- Ako imamo
- n procesa u redu čekanja i
- ako je vremenski kvantum q, onda:
- svakom procesu pripada procesor u odnosu 1/n
- nijedan proces ne čeka više od (n-1)*q vremena na sledeći vremenski kvantum.
- Performanse
- veći q FIFO
- manji q maksimalno ravnomerna raspodela CPU, ali i veoma često prebacivanje konteksta između procesa, a to znači veliki gubitak korisnog vremena .
- Primer RR gde je vremenskim kvantum = 20
- Proces Vreme izvršavanja
- P1 53
- P2 17
- P3 68
- P4 24
- Gantt karta za raspoređivanje je:
- Karakteristično,
- veće srednje vreme završetka procesa u odnosu na SJF,
- ali i bolje vreme odziva
- Time Quantum and Context Switch Time
- Turnaround Time Varies With The Time Quantum
- Raspoređivanje u više redova
- Red čekanja je podeljen u različite redove:
- foreground (interactive)
- background (batch)
- Svaki red čekanja ima poseban algoritam za raspoređivanje:
- foreground – RR
- background – FCFS
- Raspoređivanje između redova može biti:
- Prioriteno raspoređivanje;
- (npr., opslužuje sve iz prvog plana a onda iz drugog plana).
- Mogućnost zakucavanja.
- Time Slice (Deo vremena)
- svaki red dobija procesor na neko vreme
- a u tom vremenu selektuju se procesi iz tog reda;
- npr., 80% za interaktivno red (RR)
- 20% za pozadinski red (FCFS)
- Raspoređivanje u više redova
- Povratna sprega između redova čekanja
- Proces se može pomerati između različitih redova;
- aging može biti implementiran na sledeći način:
- Multilevel-feedback-queue raspoređivač je definisan sledećim parametrima:
- broj redova
- raspoređivanje algoritama za svaki red
- metod za određivanje kada proces može da pređe u red višeg prioriteta
- metod za određivanje kada proces može da pređe u red nižeg prioriteta
- metod koji određuje u koji će red proces ući po kreiranju
- Primer Multilevel Feedback Queue
- Tri reda:
- Q0 – vremenski kvantum 8 milisekunde (RR)
- Q1 – vremenski kvantum 16 milisekunde (RR)
- Q2 – FCFS
- Raspoređivanje
- Novi posao ulazi u red Q0 koji je serviran uz pomoć FCFS.
- Kada dobije CPU, posao ima 8 milisekunde.
- Ako nije završio za 8 milisekunde, posao se pomera u red Q1
- U red Q1 posao je opet serviran FCFS i dobija 16 dodatnih milisekundi
- Ako još uvek nije završio, on je preempted i pomera se u red Q2.
- Multilevel Feedback Queues-example
- Višeprocesorsko raspoređivanje
- CPU raspoređivanje je kompleksnije kad je dostupno više CPU-a
- SMP: Homogeni procesori su u SMP
- Svi CPU su identični
- Pitanje je?
- jedan isti ready queue (za sve procesore)
- ili
- poseban ready queue (za svaki CPU)
- Load sharing
- Svaki CPU = poseban ready queue,
- jedan CPU može biti neaktivan
- drugi veoma zauzet=>isti ready queue
- U istoj oblasti podataka, svaki CPU mora biti programiran veoma pažljivo
- Asimetrično multiprocesiranje:
- svaki CPU ima specifičan cilj (jedan od njih je master)
- samo jedan procesor ima pristup strukturama sistema podataka,
- olakšava potrebu za deljenjem podataka
- Rapoređivanje u realnom vremenu
- Hard real-time systems:
- zahteva da izvršavaju kritične poslove
- u garantovanom vremenskom roku
- Samo u sistemima bez diskova i virtuelne memorije
- Soft real-time systems:
- zahtevaju da im se
- kritični procesi izvršavaju prioritetnije
- nego drugi
- Zahteva prioritetno raspoređivanje
- Dispečersko kašnjenje mora da bude veoma malo
- Vreme za dispečer (Dispatch Latency)
- Ispitivanje algoritama
- Simulacija: Deterministic modeling:
- uzima poseban predeterminisan workload
- i
- definiše performanse svakog algoritma
- za taj workload
- Modeli za redove:
- Broj redova, prioritet, pravila
- Dužina
- Nailazak procesa
- Algoritam
- Implementacija
- Procena CPU raspoređivanja simulacijom
- Sinhronizacija procesa
- Pozadina
- Problem kritične sekcije
- Hardverska sinhronizacija
- Semafori
- Klasični problemi sinhronizacije
- Kritični regioni
- Monitori
- Pozadina
- Konkurentni pristup deljenim podacima
- može dovesti do nekonzistencije podataka
- Održavanje konzistencije podataka
- zahteva mehanizme koji će da osiguraju
- izvršavanje kooperativnih procesa u poretku (in order)
- Solucija deljene memorije za problem bounded-buffer
- dozvoljava više n – 1 elemenata u baferu
- u isto vreme
- Rešenje, gde se koriste svih N bafera, nije jednostavno
- Pretpostavimo da želimo da izmenimo kôd za proizvođač-potrošač:
- dodajući promenljivu counter
- inicijalizovan na 0
- inkrementiran svaki put kada se novi element doda u bafer
- dekrementiran svaki put kada je elemenat izbačen iz bafera
- Bounded-Buffer
- Deljeni podaci (shared data)
- in pokazuje na sledeći slobodan bafer
- out pokazuje na prvi pun bafer
- counter++ proizvođač; counter-- potrošač;
- #define BUFFER_SIZE 10
- typedef struct {
- . . .
- } item;
- item buffer[BUFFER_SIZE];
- int in = 0;
- int out = 0;
- int counter = 0;
- Bounded-Buffer
- Proces proizvođač
- item nextProduced;
- while (1) {
- while (counter == BUFFER_SIZE)
- ; /* ništa ne radi, bafer je pun */
- buffer[in] = nextProduced;
- in = (in + 1) % BUFFER_SIZE;
- counter++;
- }
- Bounded-Buffer
- Proces potrošač
- item nextConsumed;
- while (1) {
- while (counter == 0)
- ; /* ništa ne radi, bafer je prazan */
- nextConsumed = buffer[out];
- out = (out + 1) % BUFFER_SIZE;
- counter--;
- }
- Bounded Buffer
- Naredbecounter++;counter--;moraju se izvršavati atomski
- Atomska operacija znači
- operacija koja je u celosti izvršena
- bez prekida
- Bounded Buffer
- Naredba “counter++” može biti implementirana u mašinskom jeziku kao:register1 = counter
- register1 = register1 + 1counter = register1
- Naredba “counter--” može biti implementirana kao:register2 = counterregister2 = register2 – 1counter = register2
- Bounded Buffer
- Ako obojica, proizvođač i potrošač
- pokušaju da ažuriraju bafer (brojač) konkurentno,
- asemblerske naredbe mogu imati preklapanje (interleaving)
- Interleaving zavisi od toga
- kako su proizvođač i potrošač procesi raspoređeni
- Bounded Buffer
- Imamo counter inicijalizovan na 5
- counter++;counter--;
- Jedan od redosleda naredbi je:proizvođač: register1 = counter (register1 = 5)proizvođač: register1 = register1 + 1 (register1 = 6)
- potrošač: register2 = counter (register2 = 5)potrošač: register2 = register2 – 1 (register2 = 4)
- proizvođač: counter = register1 (counter = 6)potrošač: counter = register2 (counter = 4)
- Vrednost counter može biti 4 ili 6,
- gde tačan rezultat moze biti 5
- Stanje trke (Race Condition)
- Stanje trke:
- Situacija gde više procesa
- Pristupaju i upravljaju deljenim podacima konkurentno
- Konačna vrednost deljenih podataka
- zavisi od toga
- koji proces završava poslednji
- Da bi se izbeglo stanje trke,
- konkurentni procesi
- moraju biti sinhronizovani
- Problem kritične sekcije (Critical section)
- n procesa
- svi se takmiče da koriste neke od deljenih podataka
- Svaki proces ima deo koda,
- zvani kritična sekcija,
- u kome pristupa deljenim podacima
- Problem:
- kad je jedan proces udje u svoju kritičnu sekciju,
- ni jedan drugi proces be sme da udje u svoju kritičnu sekciju
- Rešenje problema kritične sekcije
- Međusobno isključenje (Mutual Exclusion).
- Ako se proces Pi izvršava u svojoj kritičnoj sekciji,
- onda ni jedan drugi proces
- ne može da se izvršava u istoj kritičnoj sekciji
- Progres (Progress)
- Ako se nijedan proces ne izvršava u svojoj kritičnoj sekciji a
- postoje neki procesi koji žele da uđu u svoju kritičnu sekciju, onda selekcija procesa koji hoće da udje u kritičnu sekciju
- nemože biti odložena u nedogled
- Ograničeno čekanje (Bounded Waiting)
- Ograničenje (bound) mora postojati
- od trenutka kada proces da zahtev da uđe u svoju kritičnu sekciju
- sve dok zahtev ne bude prihvaćen
- Pretpostavka je da se svaki proces izvršava na nonzero brzini
- Nema pretpostavke vezane za relativnu brzinu n procesa.
- Inicijalni pokušaj za rešenje problema
- Samo 2 procesa, P0 i P1
- Generalna struktura procesa Pi (drugi proces Pj)
- do {
- entry section
- critical section
- exit section
- reminder section
- } while (1);
- Procesi mogu deliti neke zajedničke promenljive
- da sinhronizuju njihove akcije
- Algoritam 1 (strict alternation)
- Deljene promenljive:
- int turn; initially turn = 0
- if turn = i Pi može ući u svojoj kritičnoj sekciji
- Proces P0 Proces P1
- do { do {
- while (turn != 0) ; /*(entry section)*/ while (turn != 1) ;
- critical section critical section
- turn = 1; /*exit section*/ turn = 0;
- ……reminder section …… reminder section
- } while (1); } while (1);
- Zadovoljava međusobno isključenje, ali ne progres (P0, P1, P0, P1)
- (ako P1 ne uđe u svoj CS, P0 nikad neće ući)
- Algorithm 2 (No SA, but wrong)
- Deljene promenljive
- boolean flag[2];initially flag [0] = flag [1] = false.
- flag [i] = true Pi spreman da uđe u kritičnoj sekciji
- Proces Pi
- do {
- flag[i] = true; while (flag[j]) ; critical section
- flag [i] = false;
- remainder section
- } while (1);
- Zadovoljava međusobno isključenje, ali ne progress
- T0: P0 postavlja flag[0]=true; CPU je preempt-ovan u P1
- T1: P1 postavlja flag[1]=true; oba procesa se blokiraju zauvek
- Algoritam 3 Dekker-Peterson
- Kombinovane deljene promenljive algoritma 1 i 2.
- Proces Pi
- do {
- flag [i] = true; turn = j; /* daje šansu drugom procesu*/ while (flag [j] and turn = j) ;
- critical section
- flag [i] = false;
- remainder section
- } while (1);
- Sva tri zahteva se ispunavaju;
- rešava problem kritične sekcije za dva procesa.
- Bakery Algorithm
- Pre ulaska u kritičnu sekciju,
- proces dobija broj
- Onaj koji ima najmanji broj ulazi u kritičnu sekciju
- Ako procesi Pi i Pj dobiju isti broj,
- if i < j, (i, j predstavlja vreme kreiranja procesa, ili PID)
- onda Pi se prvi izvršava; a ako ne Pj je se prvi izvršava
- (prim. proces dobije broj,
- onda je uspavan proces sa istim brojem probuđen)
- Šema brojeva uvek generiše brojeve od najmanjeg do najvećeg;
- prim., 1,2,3,3,3,3,4,5...
- Bakery Algorithm
- Notiranje < lexicographical order (ticket #, process id #)
- (a,b) < (c,d)
- if a < c
- ili
- if a = c and b < d
- max (a0,…, an-1) je broj k, tako da k ai for i - 0, …, n – 1
- Deljeni podaci:
- boolean choosing[n];
- int number[n];
- Strukture podataka su inicijalizovane na false i 0 respektivno
- Bakery Algorithm
- do {
- choosing[i] = true; #čeka da dobije broj
- number[i] = max(number[0], number[1], …, number [n – 1])+1;
- choosing[i] = false;
- for (j = 0; j < n; j++) {
- while (choosing[j]) ;
- while ((number[j] != 0) && (number[j],j) < (number[i],i))) ;
- }
- critical section
- number[i] = 0;
- remainder section
- } while (1);
- Hardverska sinhronizacija
- Testira i modifikuje sadržaj reči, atomski
- boolean TestAndSet(boolean &target)
- {
- boolean rv = target;
- target = true;
- return rv;
- }
- Međusobno isključenje sa Test-and-Set
- Deljeni podaci: boolean lock = false;
- Proces Pi
- do {
- while (TestAndSet(lock)) ;
- critical section
- lock = false;
- remainder section
- }
- Hardverska sinhronizacija
- Atomska razmena dve promenljive
- void Swap(boolean &a, boolean &b)
- {
- boolean temp = a;
- a = b;
- b = temp;
- }
- Međusobno isključenje sa razmenom
- Deljeni podaci (inicijalizovani na false): boolean lock;
- Proces Pi
- do {
- key = true;
- while (key == true) Swap(lock,key);
- critical section
- lock = false;
- remainder section
- }
- Semafori
- Alat za sinhronizaciju koji ne zahteva busy waiting
- Semafor S, integer promenljiva
- može biti dostupan samo preko
- dve atomske operacije:
- wait (S):
- while S 0 do no-op; S--;
- signal (S):
- S++;
- Kritična sekcija n Procesa
- Deljeni podaci:
- semaphore mutex; //initially mutex = 1
- Proces Pi: do {
- wait(mutex);
- critical section
- signal(mutex);
- remainder section
- } while (1);
- Implementacija semafora
- Definisati semafor kao zapis
- typedef struct {
- int value; struct process *L; } semaphore;
- Pretpostavlja dve jednostavne operacije:
- block
- prekida proces.
- wakeup(P)
- nastavlja izvršavanje blokiranog procesa P
- Implementacija
- Semafor operacije su sad definisane kao:
- wait(S): S.value--;
- if (S.value < 0)
- {
- add this process to S.L; block;
- }
- signal(S): S.value++;
- if (S.value <= 0)
- {
- remove a process P from S.L; wakeup(P);
- #but which one {FIFO, LIFO, priority}
- }
- Semafor kao glavni alat za sinhronizaciju
- Izvršava se B u Pj samo kad se A izvrsi u Pi
- Koristi se semafor flag inicijalizovan na 0
- Kod:
- Pi Pj
- A wait(flag)
- signal(flag) B
- Zastoj i zakucavanje
- Deadlock – dva ili više procesa beskonačno čekaju
- na događaj koji se nikada neće dogoditi.
- Neka S i Q budu dva semafora inicijalizovana na 1
- Zastoj nastupa ako P0 (wait(S), onda P1 (wait(Q), sledeće čekanje stavlja proces u stanje zastoja
- P0 P1
- 1. wait(S); 2. wait(Q);
- wait(Q); wait(S);
- ...... ........
- signal(S); signal(Q);
- signal(Q) signal(S);
- Zakucavanje – beskonacno blokiranje
- Proces nikad nemože da se pomeri
- iz semafor queue
- u kojem je bio suspendovan
- Dva tipa semafora
- Brojački semafor:
- integer vrednost nema ograničenje u domenu
- Binarni semafor:
- integer vrednost je ograničen samo izmedju 0 i 1;
- može biti jednostavniji za inplementaciju
- Može se inplementirati
- brojački semafor S
- kao binarni semafor
- Klasični problemi sinhronizacije
- Problem ograničenog bafera
- Problem čitalaca i pisaca
- Večera filozofa
- Problem ograničenog bafera
- Deljeni podacisemaphore full, empty, mutex;Initially:full = 0, empty = n, mutex = 1
- empty: broji prazne bafere
- full: broji pune bafere
- Problem ograničenog baferaProizvođač-proces
- do {
- …
- produce an item in nextp
- …
- wait(empty); /*buffer full*/
- wait(mutex); /* ulaz u kritičnu sekciju*/
- …
- add nextp to buffer
- …
- signal(mutex); /*oslobodi bafer i kritičnu sekciju*/
- signal(full); /*uvećaj broj popunjenih elemenata u baferu*/
- } while (1);
- Problem ograničenog baferaPotrošač proces
- do {
- wait(full); /* bafer prazan*/
- wait(mutex); /*ulaz u kritičnu sekciju*/
- …
- remove an item from buffer to nextc
- …
- signal(mutex); /*oslobodi bafer i kritičnu sekciju*/
- signal(empty); /*uvećaj broj slobodnih mesta*/
- …
- consume the item in nextc
- …
- } while (1);
- Problem čitalaca i pisaca
- Pravila: (tipični deljeni fajlovi ili zapisi)
- samo jedan pisac u jedinici vremena (pisac ima ekskluzivan pristup)
- vise čitalaca, simultano
- kad je pisac aktivan, nijedan čitalac nemoze imati pristup
- kad je neki čitalac aktivan, nijedan pisac nema pristup
- Deljeni podacisemaphore mutex, wrt;Initiallymutex = 1, wrt = 1, readcount = 0
- wrt = mutex za čitaoce i pisce
- mutex = mutex za readcount update
- readcount = broj procesa koji čita objekat
- Problem čitalaca i pisca (writer proces)
- wait(wrt); /* no readers*/
- …
- writing is performed
- …
- signal(wrt);
- Problem čitalaca i pisca (reader proces)
- wait(mutex);
- readcount++;
- if (readcount == 1) wait(wrt); /* prvi reader, čeka writer /*
- else continue /*nije prvi, ima readers*/
- signal(mutex);
- …
- reading is performed
- …
- wait(mutex);
- readcount--;
- if (readcount == 0) signal(wrt); #no readers, freeing wrt
- signal(mutex); go to transactions
- Večera filozofa
- Deljni podaci semaphore chopstick[5];
- Inicijalno sve vrednosti su 1
- Večera filozofa
- Filozof i:
- do {
- wait(chopstick[i])
- wait(chopstick[(i+1) % 5])
- …
- eat
- …
- signal(chopstick[i]);
- signal(chopstick[(i+1) % 5]);
- …
- think
- …
- } while (1);
- Kritični regioni
- Konstrukcija sinhronizacije visokog nivoa
- Zajednička promenljiva v tipa T, je deklarisana kao:
- v: shared T
- Promenljivoj v se može pristupati samo unutar regiona naredbi S
- region v when B do Sgde je B logički izraz
- Dok se naredba S izvršava,
- nijedan drugi proces nemože pristupiti promenljivoj v
- Kritični regioni
- Regioni koje se oslanaju na istu deljenu promenljivu (v)
- isključuju jedan drugog u vremenu
- Uslovni kritični regioni
- Kad proces pokuša da izvrši naredbu regiona,
- logički izraz B se ispituje:
- Ako je B true
- naredba S se izvršava
- Ako je B false
- proces se blokira dok B ne postane true
- i
- nema drugih proces u tom regionu koji je asociran sa v
- Primer – Bounded Buffer
- Deljeni podaci:
- struct buffer #all in structure is shared
- {
- int pool[n];
- int count, in, out;
- }
- Bounded Buffer (Proizvođač proces)
- Proizvođač proces ubacuje nextp u zajednički bafer
- region buffer when( count < n)
- { pool[in] = nextp; in:= (in+1) % n; count++; }
- Bounded Buffer (Potrošač proces)
- Proces potrošač pomera element iz zajedničkog bafera i postavlja u nextc
- region buffer when (count > 0)
- {
- nextc = pool[out]; out = (out+1) % n; count--; }
- Monitori
- Konstrukcija sinhronizacije visokog nivoa koja omogućava sigurno deljenje jednog apstraktnog tipa podatka među konkurentnim procesima.
- monitor monitor-name
- {
- shared variable declarations
- procedure body P1 (…) {
- . . .
- }
- procedure body P2 (…) {
- . . .
- }
- procedure body Pn (…) {
- . . .
- }
- {
- initialization code
- }
- }
- Monitori
- Da bi se dozvolilo procesu da čeka u monitoru,
- uslovna promenljiva mora biti deklarisana, kao
- condition x, y;
- Uslovna promenljiva može biti upotrebljena samo sa operacijama wait i signal:
- Operacija
- x.wait();
- znači da proces koji je pozvao operaciju se suspenduje
- sve dok drugi proces ne pozove kontra operaciju
- x.signal();
- x.signal operacija će odblokirati tačno jedan suspendovan proces.
- Ako nema suspendovanih procesa, onda signal operacija nema efekta.
- Šematski prikaz na monitor
- Monitor With Condition Variables
- Primer - Večera filozofa
- monitor dp
- {
- enum {thinking, hungry, eating} state[5];
- condition self[5];
- void pickup(int i) // following slides
- void putdown(int i) // following slides
- void test(int i) // following slides
- void init()
- {
- for (int i = 0; i < 5; i++)
- state[i] = thinking; //init code
- }
- }
- Večera filozofa
- void pickup(int i)
- {
- state[i] = hungry;
- test[i];
- if (state[i] != eating)
- self[i].wait();
- }
- void putdown(int i)
- {
- state[i] = thinking;
- // testira levog i desnog komsiju
- test((i+4) % 5); /*daje šansu levom komšiji da jede*/
- test((i+1) % 5); /* daje šansu desnom komšiji da jede */
- }
- Večera filozofa
- void test(int i)
- {
- if((state[(I + 4)%5] != eating) && (state[i] == hungry)&&(state[(i +1) % 5] !=eating))
- {
- state[i] = eating;
- self[i].signal();
- }
- }
- Večera filozofa
- each philosopher do it:
- dp.pickup(i)
- …..
- eat
- dp.putdown(i)
- Zastoji (Deadlocks)
- Sistemski model
- Karakterizacija zastoja
- Metodi upravljanja zastojem
- Prevencija od zastoja (Deadlock Prevention)
- Izbegavanje zastoja (Deadlock Avoidance)
- Detekcija zastoja (Deadlock Detection)
- Oporavak od zastoja (Recovery from Deadlock)
- Kombinovan pristup za uklanjanje zastoja
- Problem zastoja
- Zastoj: Skup blokiranih procesa:
- svaki proces drži resurs
- i čeka da uzme resurs
- koji drži drugi proces
- Primer
- Sistem ima 2 trake.
- P1 i P2 drže po jednu traku
- i oba procesa žele i drugu
- Primer
- semafori A i B, inicijalizovani na 1
- P0 P1
- wait (A); wait(B)
- wait (B); wait(A)
- Problem prelaska preko mosta
- Saobraćaj je samo u jednom smeru.
- Svaki deo mosta možemo videti kao resurs.
- Ako se pojavi zastoj, to možemo rešiti ako se jedan automobil vrati nazad (preempt resources and rollback).
- Više automobila treba vratiti nazad ako nastane zastoj.
- Zakucavanje je moguće
- Sistemski model
- Resursi tipa R1, R2, . . ., Rm
- CPU ciklusi, memorijski prostor, I/O uređaji
- Svaki resurs tipa Ri ima Wi instancu
- Svaki proces koristi resurs na sledeći način:
- zahtev (request)
- korišćenje (use)
- oslobađanje (release)
- Karakterizacija zastoja
- 1. Mutual exclusion (Međusobno isključenje): samo jedan proces u jednom trenutku može koristiti resurs.
- 2. Hold and wait (Drži i čekaj): proces drži jedan resurs a istovremeno čeka dobijanje resursa koji koristi neki drugi proces.
- 3. No preemption (Nema otimačine): resurs se može osloboditi samo kada proces koji ga koristi završi svoj posao.
- 4. Circular wait (Kružno čekanje): postoji skup procesa {P0, P1, …, Pn} koji čekaju resurs u sledećem poretku:
- P0 čeka na resurs koji drži P1,
- P1 čeka na resurs koji drži P2, …,
- Pn–1 čeka na resurs koji drži Pn,
- Pn čeka na resurs koji drži P0
- Graf dodeljenih resursa
- V sadrži dva skupa:
- P = {P1, P2, …, Pn}, skup se sastoji od svih procesa u sistemu
- R = {R1, R2, …, Rm}, skup se sastoji od svih resursa u sistemu
- strelica zahteva: P1 Rj
- strelica alokacije: Rj Pi
- Graf dodeljenih resursa
- Proces
- Resurs sa 4 instance
- Pi zahteva instancu Rj
- Pi drži instancu Rj
- Graf dodeljenih resursa
- Graf dodeljenih resursa sa zastojem
- Graf dodeljenih resursa – kružni tok bez zastoja
- Osnovne činjenice
- Ako graf ne sadrži kružni tok nema zastoja
- Ako graf sadrži kružni tok
- ako resursi u kružnom toku sadrže samo jednu instancu,
- Nastupio je zastoj
- ako resursi u kružnom toku sadrže više instanci,
- moguć je zastoj
- Metodi upravljanja zastojem
- 1. Obezbeđuju da sistem nikada ne uđe u stanje zastoja.
- 2. Dozvoljava da ako sistem uđe u zastoj, da iz njega izađe
- 3. Ignoriše probleme pretvara se da se zastoji nikad ne javljaju u sistemu; ovo koriste mnogi operativni sistemi, uključujući i UNIX.
- Prevencija zastoja
- Međusobno isključenje – nepotrebno za deljive resurse; obavezno za nedeljive resurse
- Drži i čekaj (hold and wait)– ukoliko proces zahteva neki resurs, nema prava da drži neki drugi resurs (resources)
- Proces traži i alocira sve svoje resurse pre početka izvršavanja
- ili
- proces može tražiti resurs samo pod uslovom da ne drži ni jedan drugi
- Mala iskorišćenost resursa; zakucavanje moguce
- Prevencija zastoja
- Nema pretpražnjenja (no preemption):
- Ako proces drži neki resurs,
- a traži drugi resurs koga ne može trenutno da dobije,
- onda proces treba da otpusti sve dosadašnje zauzete resurse
- Oslobodjeni resursi se ubacuju na listu resursa za koje proces čeka
- Proces će se restartovati samo kada bude mogao da povrati stare resurse, kao i da dobije nove koji su mu trebali
- Kružno čekanje:
- uvede se poredak označavanja svih resursa
- natera se da svaki proces zahteva resurse
- u strogo rastućem redu
- Izbegavanje zastoja (Deadlock avoidance )
- Najprostiji i najviše korišćeni model zahteva od svakog procesa da objavi maximalni broj resoursa koji će mu možda trebati.
- Algoritam izbegavanja zastoja
- dinamički ispituje trenutno stanje dodeljenih resursa
- tako da osigura da sistem
- nikada ne uđe u stanje cirkularnog čekanja
- Pod stanjem dodeljenih resursa
- podrazumeva se stanje definisano brojem:
- raspoloživih
- dodeljenih
- maksimalno traženih resursa
- u jednom trenutku vremena
- Bezbedno stanje (Safe State)
- Kada proces traži neki resurs, sistem mora da proceni da li će dodela tog resursa ostaviti sistem u bezbednom stanju (safe state)
- Sistem je u bezbednom stanju ako postoji bezbedna sekvenca svih procesa
- Sekvenca <P1, P2, …, Pn> je bezbedna ako za svaki proces Pi, resursi koje Pi može još tražiti, mogu zadovoljiti iz:
- trenutno raspoloživih resursa + resursi koji pripadaju svim Pj, sa j<I.
- (svi procesi startovani pre njega)
- Ako resursi koje traži proces Pi nisu trenutno raspoloživi, tada će Pi da čeka dok prethodni procesi Pj ne završe svoje poslove
- Kada Pj završi, Pi može dobiti traženi resurs, izvršiti, vratiti deljeni resurs i završiti svoj posao
- Kada je Pi završi, Pi+1 može dobiti traženi resurs, itd
- Činjenično stanje
- Ako je sistem u bezbednom stanju nema zastoja
- Ako sistem je u ne-bezbednom stanju postoji mogućnost zastoja
- Izbegavanje
- osigurava da sistem
- nikad ne uđe u ne-bezbedno stanje
- Bezbedno, Nebezbedno , Zastoj stanje
- Resource-Allocation Graph Algorithm
- Mogući zahtev Pi Rj (claim edge)
- znači da proces Pj može zahtevati resurs Rj;
- predstavljeno isprekidanom linijom
- Mogući zahtev preći će u realni zahtev kada proces zahteva resurs
- Kada se takav resurs otpusti od procesa, strelica dodele opet prelazi u strelicu mogućih zahteva
- Svi mogući zahtevi za resurse moraju biti poznati unapred sistemu
- Resource-Allocation Graph For Deadlock Avoidance
- Unsafe State In Resource-Allocation Graph
- Bankarski algoritam
- Više instanci
- Svaki proces unapred mora deklarisati maksimalan broj instanci.
- Kada proces zahteva resurse možda će trebati da sačeka
- Kada proces dobije sve njegove resurse mora mora da ih vrati u nekom konačnom vremenu
- Strukture podataka za bankarski algoritam
- Vektor raspoloživosti: Vektor dužine m. Ako je element available [j] = k, tada je k instanci resoursa Rj raspoloživo
- Matrica maksimalnih zahteva: Ako je Max [i,j] = k, tada proces Pi može tražiti najviše k instanci resoursa Rj
- Matrica alokacije: Ako je Allocation[i,j] = k tada je proces Pi trenutno dobio k instanci resursa Rj.
- Matrica potreba: Ako je Need[i,j] = k, tada proces Pi može tražiti još k instanci resursa Rj da završi njegov posao
- Need [i,j] = Max[i,j] – Allocation [i,j].
- Bezbednosni algoritam (Safety Algorithm)
- 1. Neka Work i Finish budu vektori dužine m i n, respektivno. Inicijalizacija:
- Work = Available
- Finish [i] = false for i - 1,3, …, n.
- 2. Pronalaženje procesa Pi koji može da zadovolji svoje potrebe:
- (a) Finish [i] = false
- (b) Needi Work /*trazi manje od raspolozivih R*/
- Ako nema takvih procesa idi na korak 4
- Work = Work + Allocationi vraća resurseFinish[i] = true (proces završio)
- Idi na korak 2
- 4. Ako je Finish [i] == true za svako i, tada je sistem u stabilnom stanju.
- Algoritam za zahtevanje resursa
- Requesti = vektor trenutnih zahteva za proces Pi.
- Ako je Requesti [j] = k tada proces Pi traži k instanci resoursa Rj.
- Ako je Requesti Needi idi na korak 2. Ukoliko ovo nije ispunjeno postavlja se greška , zato što proces traži više od onoga što je specificirao kao maksimalan zahtev .
- Ako je Requesti Available, idi na korak 3. U suprotnom proces Pi mora da čeka, resursi nisu raspoloživi
- 3. Zamislite da ste dodelili resurse procesu Pi po sledećoj formuli :
- Available = Available - Requesti;
- Allocationi = Allocationi + Requesti;
- Needi = Needi – Requesti;
- Ako je stanje stabilno resursi će biti dodeljeni procesu Pi.
- Ako stanje nije stabilno Pi mora da čeka, i resursi se vraćaju u staro stanje
- Primer bankarskog algoritma
- 5 procesa P0 do P4;
- 3 resoursa:
- A (10 instanci), B (5instanci), i C (7 instanci)
- Stanje sistema u trenutku T0:
- Allocation Max Available
- A B C A B C A B C
- P0 0 1 0 7 5 3 3 3 2
- P1 2 0 0 3 2 2
- P2 3 0 2 9 0 2
- P3 2 1 1 2 2 2
- P4 0 0 2 4 3 3
- Primer
- Stanje matrice potreba Need[] se definiše kao:
- Max[] – Allocation[]
- Need Available
- A B C A B C
- P0 7 4 3 3 3 2
- P1 1 2 2
- P2 6 0 0
- P3 0 1 1
- P4 4 3 1
- Sistem je u bezbednom stanju u sekvenci < P1, P3, P4, P2, P0> a uvek se polazi od procesa sa manjim zahtevima.
- (pogledaj te najmanje zahteve P1.P3..)
- Primer gde P1 zahteva (1,0,2)
- Proverava se da li je Request Available (1,0,2) (3,3,2) true.
- Allocation Need Available
- A B C A B C A B C
- P0 0 1 0 7 4 3 2 3 0
- P1 3 0 2 0 2 0
- P2 3 0 1 6 0 0
- P3 2 1 1 0 1 1
- P4 0 0 2 4 3 1
- Izvrši se bankarski algoritam i dokaže da postoji sekvenca <P1, P3, P4, P0, P2> koja će zadovoljiti uslove stabilnosti.
- Da li se može odobriti zahtev procesu P4 (3,3,0)? (ne < od raspoloživog)
- Da li se može odobriti zahtev procesu P0 (0,2,0)?(ne, ne-bezbedno)
- Detekcija zastoja (Deadlock Detection)
- Ako sistem uđe u stanje zastoja
- Algoritam za detekciju zastoja
- Algoritam za oporavak
- Detekcija kad resursi imaju samo jednu instancu
- Pruža wait-for graf:
- Čvorovi su samo procesi
- Pi Pj ako Pi čeka na Pj.
- Algoritam se periodično pozove da pretraži krugove u grafu
- Algoritam detektuje krugove u grafu
- preko n2 operacija,
- gde je n broj strelica u grafu
- Graf alokacije resursa i Wait-for graf
- Detekcija kad resursi imaju više instanci
- Vektor raspoloživosti: Vector dužine m. Ako je element available[j] = k, tada je k instanci resursa Rj rasploživo .
- Matrica alokacije: Ako je Allocation[i,j] = k tada je proces Pi trenutno dobio k instanci resursa Rj.
- Matrica trenutnih zahteva: Matrica ukazuje na trenutne zahteve procesa. Ako je Request [i,j] = k, tada proces Pi trenutno traži k instanci resursa Rj.
- Algoritam za detekciju
- 1. Neka Work i Finish budu vektori dužine m i n, respektivno Inicijalizacija:
- (a) Work = Available
- (b) For i = 1,2, …, n, if Allocationi 0, then Finish[i] = false;otherwise, Finish[i] = true
- 2. Pronalazi se proces koji može da zadovolji sve potrebe:
- (a) Finish[i] == false
- (b) Requesti Work
- Ako takvi ne postoje, idi na korak 4
- Algoritam za detekciju
- 3. Work = Work + AllocationiFinish[i] = trueidi na korak 2
- 4. Ako je Finish[i] == false, za bilo koji proces i, 1 i n, tada je sistem u stanju zastoja
- Preciznije, ako je Finish[i] == false, tada je Pi u zastoju
- Primer algoritma za detekciju
- Pet procesa od P0 do P4;
- tri resursa tipa A (7 instanci), B (2 instance), i C (6 instanci)
- Stanje sistema u trenutku T0:
- Allocation Request Available
- A B C A B C A B C
- P0 0 1 0 0 0 0 0 0 0
- P1 2 0 0 2 0 2
- P2 3 0 3 0 0 0
- P3 2 1 1 1 0 0
- P4 0 0 2 0 0 2
- Sekvenca <P0, P2, P3, P1, P4> koja bi dovela da bude rezultat Finish[i] = true za sve procese i
- Primer 2
- P2 traži jednu instancu resursa C
- Request
- A B C
- P0 0 0 0
- P1 2 0 1
- P2 0 0 1
- P3 1 0 0
- P4 0 0 2
- Stanje sistema?
- P0 ima najmanje prohteva i ako bi završio svoje i vratio resurse, stanje raspoloživih resursa bi bilo (0,1,0) a iza toga nemamo proces koji može da zadovolji svoje potrebe
- Zastoj postoji, zaglavljeni su procesi P1, P2, P3 i P4
- Korišćenje algoritma za detekciju
- Kada, i koliko često, pozvati algoritam za detekciju zavisi od toga:
- Koliko često se zastoj dešava ?
- Koliko procesa je zahvaćeno zastojom ?
- Zastoj se mora detektovati
- jer su svi procesi i svi resursi u njima zaglavljeni,
- ali zahteva prilično veliko vreme za detekciju
- pa se ne sme pozivati veoma često
- Oporavak od zastoja: Prekidanje procesa
- Prekid svih zaglavljenih procesa
- Prekid samo jednog procesa dok se ne razbije krug
- Po kom redu se prekidaju procesi?
- Prioritet procesa
- Koliko dugo proces već radi, odnosno šta mu je ostalo do završetka
- Koje resurse proces koristi
- Koje resurse proces traži da kompletrira aktivnost
- Koliko procesa je potrebno prekinuti
- Da li su to interaktivni ili grupni procesi?
- Oporavak od zastoja: Oduzimanje resursa
- Biranje žrtve:
- najmanji gubitak
- Oporavak procesa (Rollback):
- proces se vraća u bezbedno stanje,
- ponovo se pokreće iz tog stanja.
- Zakucavanje (Starvation):
- neki proces možda uvek bude biran kao žrtva,
- zbog toga se neće dugo izvršiti
- Kombinovan pristup za uklanjanje zastoja
- Kombinacija tri osnovna pristupa:
- prevencija
- izbegavanje
- detekcija
- dopušta korišćenje najpovoljnijeg pristupa za svaki resurs u sistemu
- Podeljeni resursi u hierarhijski poređanim klasama
- Koristi se najodgovarajuća tehnika za uklanjanje zastoja u svakoj klasi
- Zastoj u saobraćaju
- Virtuelna memorija
- Background
- Učitavanje stranica prema potrebi (Demand Paging)
- Kreiranje procesa (Process Creation)
- Zamena stranica (Page Replacement)
- Alokacija okvira po procesima (Allocation of Frames)
- Thrashing
- Background
- Osnovna zamisao:
- Omogućava da se izvrši proces koji je samo delimično u memoriji
- Deo procesa je u memoriji (onaj koji se trenutno koristi)
- Ostatak programa je na disku (swap ili exe datoteka)
- Program > Fizičke Memorije
- VM nije jednostavna za implementaciju
- VM može smanjiti performanse
- Virtuelna memorija:
- odvajanje korisničke logičke memorije od fizičke memorije.
- Potrebno je da samo deo programa bude u memoriji da bi se izvršavao.
- Zbog toga logički adresni prostor može biti mnogo veći od fizičkog adresnog prostora.
- Omogućava da više procesa dele adresni prostor
- Omogućava mnogo efikasnije kreiranje procesa
- Virtuelna memorija je veća od fizičke memorije
- Realizacija virtuelne memorije
- Virtuelna memorija se najčešće realizuje preko sledećih tehnika:
- Učitavanje stranica prema potrebi
- (Demand paging)
- Učitavanje segmenata prema potrebi
- (Demand segmentation)
- Učitavanje stranica prema potrebi
- Učitava stranicu u memoriju samo kada je potrebna
- lazy swapper (lenji razmenjivač)
- potrebno je manje I/O operacija
- potrebno je manje memorije
- brži odziv
- više korisnika
- Postoje dva velika problema:
- 1. Algoritam alokacije okvira
- 2. Algoritam zamene stranica
- Stranica je potrebna prebacuje se u memoriju
- ako je nevažeća referenca prekid
- ako nije u memoriji prebacuje se u memoriju restart
- Prenos stranica u kontinualni prostor na disku
- Valid-Invalid Bit
- Za svaki ulaz u tabelu stranica
- asociran je valid–invalid bit is(1 u memoriji, 0 nije u memoriji)
- Valid–invalid bit je inicijalizovan na 0 za sve ulaze
- Primer tabele stranica:
- Tabela stranica kada neke stranice nisu u glavnoj memoriji
- Greška u stranicenju (Page Fault)
- PF rutina ima zadatak,
- da stranicu sa diska
- prebaci u memoriju
- PF rutina proverava da li je referenca validna ili invalidna:
- ako je referenca nevalidna proces se prekida
- ako je validna učitava se u memoriju
- Uzima prazan okvir
- Zamenjuje stranicu za okvir
- Resetuje tabele, validation bit = 1
- Instrukcija se restartuje: (carefully)
- pomeranje bloka
- automatsko inkrementiranje/dekrementiranje lokacije
- Koraci u manipulisanju sa PF-om
- Šta se događa ako nema slobodnih okvira?
- Zamena stranica:
- nađe se jedna stranicu u memoriji
- koja se ne koristi,
- upiše se na disk, a potom se oslobodi njena memorija
- algoritam za najbolje performanse
- traži se algoritam
- koji daje rezultat
- sa najmanjim brojem grešaka u stranici.
- Ista stranica može biti dovedena u memoriju nekoliko puta
- Performanse DP tehnike
- PF: 0 p 1.0
- ako je p = 0 nema grešaka u stranici
- ako je p = 1 svaka referenca ima grešku (trashing)
- Effective Access Time (EAT)
- EAT= (1 – p) x memory access + p x (Page Fault time)
- Page Fault time = page fault overhead
- + swap page out /* if write*/
- + swap page in
- + restart overhead
- Page Fault
- 1. Servisiranje PF prekida
- prekidni signal PF izaziva prelazak u operativni sistem
- čuvanje konteksta prekinutog procesa (registri procesora)
- određivanje da li je prekidni signal izazvan PF greškom
- 2. Čitanje stranice
- disk I/O izazva čekanje, tj. blokadu PF rutine
- dok se čeka na disk CPU se daje nekom drugom
- prekidni signal koji znači da je disk I/O operacija završena
- određivanje da li je disk I/O prekidni signal
- 3. Restrartovanje procesa koji je izazvao PF
- korekcija tabele stranica
- obnova konteksta procesa
- Primer DP
- Vreme pristupa memoriji MC = 1 mikrosekunda = 1000nsec
- Proces punjenja stranice u memoriju može uključiti dve I/O
- stranica koja je zamenjena
- ukoliko je promenjena dok je bila u memoriji
- ponovo se upisuje na disk.
- ->1 ili 2 disk I/O operacije ->prosek =1.5 disk I/O
- Vreme razmene stranica = 10 msec = 10,000 microsekundi
- EAT = (1 – p) x 1 + p (15000)
- 1 + 15000p (microsec)
- Kreiranje procesa
- Virtuelna memorija može dosta pomoći
- u toku
- kreiranja procesa:
- - Copy-on-Write
- - Memorijski mapirane datoteke (Memory-Mapped Files)
- Copy-on-Write
- Copy-on-Write (COW)
- omogućava da roditelji i dete proces
- inicijalno
- dele iste stranice u memoriji
- Ako bilo koji proces
- pokuša da modifikuje deljenu stranicu,
- tada će se prvo kreirati kopija za tu stranicu
- COW omogućava mnogo efikasnije kreiranje procesa
- tako što se samo modifikovane stranice kopiraju
- Kod dodele novih stanica,
- poželjno je da one budu prazne, to se postiže tehnikom
- koja puni nule u okvir koji se dodeljuje (zero-fill-on-demand)
- Memorijski mapirane datoteke
- Memorijski mapirana I/O datoteka omogućava da se
- I/O datotekama pristupa
- preko memorijskih referenci
- tako što se deo virtuelnog memorijskog prostora
- dodeli datotekama
- Inicijalni pristup datoteci se odvija preko DP tehnike
- koja će izazvati PF grešku
- i kao rezultat te greške
- deo datoteke će se učitati u memoriju
- Sledeći čitanje/upis u/iz datoteke
- se tretira
- kao običan pristup memoriji.
- Pristup datoteci je uprošćen (brži)
- ako se I/O datoteci pristupa kroz memoriju
- češće nego preko
- read() write() sistemskih poziva
- Deljenje datoteke: omogućava da više procesa
- mogu deliti istu datoteku
- tako što se datoteka učita u memoriju
- Memorijski mapirane datoteke
- Zamena stranica
- Kod alociranja memorije
- pojavljuje se veliki broj PF grešaka,
- tada se koristi zamena stranica
- Koristi se dirty bit
- koji opisuje da je stranica modifikovana
- na disk se upisuju samo modifikovane stranice
- Zamena stranica kompletira razdvajanje između logičke i fizičke memorije:
- velika virtuelna memorija
- se koristi samo kada je
- fizička memorija mala
- Zamena stranica
- Opis zamene stranica
- Potrebno je pronaći lokaciju na disku gde je smeštena stranica
- Traži se slobodan okvir: - Ako ima slobodnih okvira uzima se jedan od njih - Ako nema nijednog slobodnog, pomoću algoritama za zamenjivanje stranica izabra se žrtva: okvir koji će biti zamenjen
- Željena stranica se učitava u oslobođeni okvir. Tabele stranica i okvira se ažuriraju
- Proces se restartuje
- Pažljivo sa:
- pomeranjem instrukcija
- ili
- automatskim inkrementiranjem/dekrementiranjem
- Zamena stranica
- Algoritmi za zamenu stranica
- Potrebna je najmanja verovatnoća PF grešaka
- Prilikom evaulacije algoritama
- definiše se ulazna sekvenca referenci
- i
- na datoj veličini fizičke memorije
- analizira se broj PF grešaka
- U svim primerima, memorijske reference su
- 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
- Graph of Page Faults Versus The Number of Frames
- First-In-First-Out (FIFO) Algorithm
- Najstarija stranica će biti zamenjena
- Niz memorijskih refernci: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
- 3 okvira (3 stranice po procesu istovremeno mogu biti u memoriji)
- 4 okvira
- FIFO zamena – Belady anomalija
- više okvira manje PF
- FIFO algoritam za zamenu stranica
- Belady anomalija
- Optimalni algoritam
- Zamenjuje stranice
- koje se neće koristiti
- najduže vremena od svih.
- primer sa 4 okvira
- 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
- OPT je najbolji mogući algoritam, ali na žalost ne može se implementirati.
- Ne postoji način da operativni sistem dođe do potrebne informacije o tome, kada će koja stranica biti potrebna.
- Optimalni algoritam za zamenu stranica
- Least Recently Used (LRU) Algorithm
- Zamenjuje se stranica za koju je proteklo najviše vremena od kada se nije koristila
- Niz memorijskih refernci: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
- Realizacija pomoću brojača (timer)
- Svaka stranica ima svoj interni registar;
- svaki put kada se pristupi stranici,
- sadržaj casovnika kopira se u interni registar
- Kada dođe do PF prekida,
- algoritam pregleda sve interne registre
- i bira stranicu čiji je broj najmanji.
- (što znači da najduže nije korišćena)
- LRU algoritam za zamenu stranica
- LRU Algoritam (2)
- Realizacija pomoću steka:
- formira se stek koji opisuje redosled pristupanja stranicama
- (head list & tail list):
- Nakon PF prekida:
- bira se stranica sa vrha steka
- na njeno mesto se stavlja stranica kojoj se pristupa
- Ova realizacija je veoma spora jer se pri svakom pristupu memoriji stek ažurira.
- Algoritam LRU – realizacija pomoću steka
- Aproksimativni LRU algoritmi
- Reference bit
- Za svaki ulaz u tabeli stranica postoji referentni bit, inicijalizovan na 0
- Kada se stranica referencira, bit se setuje na 1
- Nakon određenog vremena R bit se briše pomoću tajmerskih prekida
- Nema informacije o redosledu korišćenja okvira
- Druga šansa (second chance)
- FIFO baziran
- Koristi R bit
- Kada treba izbaciti stranicu, uzima se zadnja iz reda čekanja, i pogleda R bit:
- Ako stranica ima referenti bit R = 1, tada:
- se R setuje na 0
- a stranica se ostavlja u memoriji
- zatim se gleda sledeća stranica na kraju reda
- Druga šansa – realizacija pomoću kružnog reda čekanja
- Klase stranica
- Na osnovu vrednosti R i M bitova okvire delimo u 4 klase:
- clasa 0. (0,0) stranica nije ni korišćena ni modifikovana
- clasa 1. (0,1) stranica nije korišćena ali je modifikovana
- clasa 2. (1,0) stranica je korišćena ali nije modifikovana
- clasa 3. (1,1) stranica je i korišćena i modifikovana
- Stranica za zamenu je svaka stranica u najnižoj klasi
- Svaka klasa sa više stranica je FIFO bazirana
- Brojački algoritmi
- Čuva informaciju koliko je puta
- svaka stranica bila referencirana
- LFU Algoritam:
- zamenjuje stranicu koja ima najmanji broj referenci
- MFU Algoritam:
- baziran na činjenici
- da je stranica sa najmanjim brojem referenci
- verovatno upravo učitana
- i
- upravo treba da se sačuva
- Alokacija okvira
- Svaki proces zahteva minimalan broj stranica.
- Minimalni broj okvira po procesu zavisi od procesorske arhitekture
- Primer:
- IBM 370 – 6 pages to handle SS MOVE instruction:
- instruction is 6 bytes, might span 2 pages.
- 2 pages to handle from.
- 2 pages to handle to.
- Dve najvažnije šeme za alokaciju.
- fiksna alokacija
- prioritetna alokacija
- Fiksna alokacija
- Jednaka alokacija:
- npr., ako ima 100 okvira i 5 procesa, svaki dobija 20 stranica.
- Proporcionalna alokacija:
- Svakom procesu pripašće sledeći broj okvira:
- Prioritetna alokacija
- Koristi šemu za proporcionalnu alokaciju
- upotrebljavajući
- prioritet umesto veličine.
- Ako proces Pi generiše PF, postoje dva načina za zamenu
- 1. bira za zamenu
- jedan od njegovih okvira.
- 2. bira za zamenu okvir
- čiji proces ima najmanji prioritet.
- Globalna i lokalna zamena stranica
- Globalna zamena:
- proces bira bilo koji okvir
- iz cele fizičke memorije;
- jedan proces može uzeti okvir od drugog.
- Lokalna zamena:
- svaki proces bira
- samo okvire koji su mu dodeljeni
- Thrashing
- Ako proces nema “dovoljno” stranica,
- pojava PF grešaka je veoma česta
- Razmatrajmo sledeći slučaj:
- ako je stepen iskorišćenja CPU-a previše mali
- operativni sistem
- povećava stepen multiprogramiranja
- tako što aktivira nove proces.
- Thrashing pojava čestog razmenjivanja stranica
- Thrashing proces je zauzet zamenom stranica
- Proces troši više vremena za straničenje nego za izvršavanje
- Thrashing
- Kako se izbegava trashing efekat?Model lokalnosti
- Lokalnost je skup stranica koje proces koristi zajedno u jednom intervalu vremena
- Proces može menjati svoje lokalnosti
- Lokalnosti se mogu preklapati.
- Zašto nastupa thrashing efekat? suma lokalnosti > ukupne fizičke memorije
- Radni model (Working-Set Model)
- Radni model (Working-Set Model)
- prozor radnog skupa fiksni broj referenciranih stranica
- Primer: 10,000 instrukcija (memorijskih refernci)
- WSSi (veličina radnog skupa procesa Pi) =
- ukupan broj stranica
- koje proces traži u vremenskom prozoru
- D = WSSi ukupna veličina radnog prostora
- Ako je D > m Thrashing
- Kada D dođe do veličine sistemske memorije,
- pojedini procesi treba da se suspenduju na disk
- Keeping Track of the Working Set
- Aprokcimaci preko Tajmera + referentni bit
- Primer: = 10,000
- Tajmer pravi prekide posle svakih 5000 vremeskih jedinica.
- U memoriji se čuvaju 2 bita za svaku stranicu
- Uvek kada tajmer napravi prekid
- kopira i setuje vrednost svih referentnih bitova na 0.
- Ako je jedan od bitova u memoriji = 1 stranica je u radnom skupu.
- Zašto ovo nije kompletno ispravno?
- Poboljšanje =
- 10 bita
- i
- prekid svakih 1000 vremenskih jedinica
- Broj PF grešaka u funkciji broja okvira
- Uspostavlja se “prihvatljiva” PF učestanost.
- Ako je aktuelna učestanost mala, proces gubi okvir (ima ih mnogo)
- Ako je aktuelna učestanost velika, proces dobija okvir (dodeljeno mu je malo okvira)
- Dopunska razmatranja
- Prepaging
- DP=veliki broj PF grešaka pri startovanju programa
- Prepaging je pokušaj da se spreči ovo inicijalno straničenje
- Primer:
- obnoviće ceo radni skup prethodno suspendovanog procesa
- Veličina stranice
- Fragmentacija (manja stranica=>manja fragmentacija)
- veličina tabele stranica
- I/O overhead (zahteva veće stranice)
- Lokalnost (bolja rezolucija, bolja lokalnost, smanjen PF)
- Tipične stranice:512, 1K, 2K, 4K
- Dopunska razmatranja (2)
- TLB efikasnost:
- Količina dostupne memorije u TLB
- TLB efikasnost = (TLB Size) X (Page Size)
- Idealno,
- radni skup svakog procesa se memoriše u TLB.
- U protivnom,
- postoji visok stepen PF grešaka.
- Povećanje veličine TLB-a
- Povećanje veličine stranice.
- Ovo može dovesti do povećane fragmentacije
- mada ne zahtevaju sve aplikacije velike stranice
- Obezbediti stranice različitih veličina
- Ovo omogućava aplikacijama
- da traže veće stranice
- i da ih koriste
- bez povećanja fragmentacije
- Dopunska razmatranja (3)
- Struktura programa
- int A[][] = new int[1024][1024];
- Each row is stored in one page
- Program 1 for (j = 0; j < A.length; j++) for (i = 0; i < A.length; i++) A[i,j] = 0;1024 x 1024 page faults
- Program 2 for (i = 0; i < A.length; i++) for (j = 0; j < A.length; j++) A[i,j] = 0;
- 1024 page faults
- Dopunska razmatranja (3)
- Struktura programa
- int A[][] = new int[1024][1024];
- Each row is stored in one page
- Program 1
- for (j = 0; j < A.length; j++)for (i = 0; i < A.length; i++)
- A[i,j] = 0;
- 1024 x 1024 page faults
- Dopunska razmatranja (3)
- Struktura programa
- int A[][] = new int[1024][1024];
- Each row is stored in one page
- Program 2
- for (i = 0; i < A.length; i++)for (j = 0; j < A.length; j++)A[i,j] = 0;
- 1024 page faults
- Dopunska razmatranja (4)
- Dok proces obavlja I/O transfer
- Može biti suspendovan
- Stranica za I/O transfer može biti dodeljena drugom procesu
- Postoje dva rešenja za ovaj problem
- I/O se nikad ne izvršavaja korisničkoj memoriji nego u kernelskim baferima
- Mehanizam za zaključavanje stranice
- I/O zaključavanje:
- Stranice mogu biti zaključane u memoriji
- I/O zaključavanje
- Stranice koje se koriste za kopiranje datoteke sa uređaja
- trebaju biti zaključane od buduće selekcije
- u algoritma za zamenu stranica.
- Razlog zbog čega okviri koji se koriste za I/O trebaju biti u memoriji
- Upravljanje memorijom
- Background
- Razmena (Swapping)
- Kontinualna alokacija (Contiguous Allocation)
- Diskontinualna alokacija (Discontinuous Allocation)
- Straničenje (Paging)
- Segmentcija
- Segmentacija sa straničenjem
- Pregled
- Background
- Memorija je jedan od fundamentalnih delova OS
- Glavne funkcije memorijskog menadžera:
- 1. Vodi računa o korišćenju memorije
- 2. Dodeljuje memoriju procesima kad je zatraže
- 3. Oslobađa memoriju od procesa kad završe svoje aktivnosti
- 4. Vrši razmenu između memorije i diska
- kada glavna memorija nije dovoljno velika
- da sadrži sve procese
- Background
- Program se mora učitati
- u memoriju
- unutar adresnog prostora novostvorenog procesa
- Ulazni red (Input queue):
- kolekcija procesa na disku
- koja čeka povratak u memoriju
- i nastavak izvršenja
- Korisnički program
- prolazi preko više faza
- dok ne dođe do izvršavanja
- Vezivanje adresa
- 1. Adrese u izvornom programu
- su simboličke
- (npr. X)
- 2. Prevodilac (Compiler)
- vezuje ove simboličke adrese
- za relokatibilne adrese
- (npr. promenljiva count se vezuje na lokaciju na adresi 14 u odnosu na početak modula)
- 3. Punilac (Loader)
- pretvara ove relokatibilne adrese
- u apsolutne adrese
- (npr. 74014)
- Vezivanje (Binding) = mapiranje iz jednog adresnog prostora u drugi
- Vezivanje adresa
- Vezivanje
- instrukcija i podataka na memorijske adrese
- može se izvršiti na tri različita načina:
- 1. Vreme prevođenja (Compile time):
- Kako nije poznato gde će proces koji će izvršavati,
- generisani kod biti smešten u memoriji;
- prevodilac generiše relativne, a ne apsolutne adrese
- 2. Vreme učitavanja u memoriju (Load time):
- Povezivač i punilac na bazi relokatibilnog koda
- generišu apsolutne adrese i pune memoriju programom
- 3. Vreme izvršavanja (Execution time):
- Za vreme izvršavanja,
- proces se može pomerati
- s jednog memorijskog segmenta na drugi.
- Zahteva hardversku podršku za adresno mapiranje
- Višefazno procesiranje korisničkog programa
- Logički i fizički adresni prostor
- Koncept logičkog adresnog prostora
- bazirano na razdvojenim fizičkim adresni prostorima
- ima centralnu ulogu u upravljanju memorijom.
- Logička adresa:
- generisana od strane CPU;
- u fazi izvršavanja naziva se i virtuelna adresa
- Fizička adresa:
- adresa same memorijske jedinice
- Logičke i fizičke adrese su potpuno iste
- u fazi prevođenja
- u fazi učitavanja
- Logičke i fizičke adrese
- se razlikuju u fazi izvršavanja
- Jedinica za upravljanje memorijom (MMU-Memory Management Unit)
- MMU: Hardverski uređaj koji mapira
- virtuelni adresni prostor u fizički
- U naj-prostijoj MMU šemi,
- vrednost u relokacionom registru
- se sabira sa logičkom adresom koju generiše program
- i tako se dobija fizička adresa
- Korisnički program
- uvek počinje od nulte adrese;
- i ne treba da vodi računa o svom fizičkom prostoru.
- Mapiranje pomoću relokacionog registra
- Razmena (Swapping)
- Proces se može
- privremeno prebaciti iz memorije na disk,
- i onda
- ponovo vratiti u memoriju da bi nastavio izvršavanje
- Vraćanje u memoriju:
- brzi disk, dovoljno veliki
- da prihvati kopije za sve memorijske slike za sve korisnike;
- potrebno je obezbediti direktni pristup za ove memorijske slike
- swap out, swap in:
- razmenjivanje se koristi u prioritetnim šemama za raspoređivanje procesa;
- procesi niskog prioriteta se upisuju na disk dok se
- procesi visokog prioriteta učitavaju u memoriju i izvršavaju
- Najveći deo vremena u ciklusima razmene otpada na prenos podataka;
- trajanje jedne razmene
- zavisi od količine podataka za prenos, karakteristika diskova i hardvera
- Modifikovana verzija razmenjivanja postoji na svim OS, npr., UNIX, Linux, i Windows
- Šematski prikaz razmene
- Dinamičko učitavanje (Dynamic Loading)
- Rutina se puni u memoriju samo kada je program pozove
- Bolja iskorišćenost memorijskog prostora;
- nepotrebne rutine se ne učitavaju u memoriju
- Korisno je kod:
- velikih programa
- jer se u memoriju smeštaju
- samo potrebni delovi programa.
- Ne zahteva specijalnu podršku
- od operativnog sistema
- programer projektuje programe da koriste dinamičko punjenje
- Preklapanje (Overlays)
- Overlay čuva u memoriji
- samo one delove programa
- koji su potrebni u tom trenutku
- Koristi se kada je proces veći
- od memorije koja mu je dodeljena
- Implementira je programer,
- ne postoji specijalna podrška operativnog sistema
- konkretnu strukturu overlay delova definiše programer
- Preklapanje kod dvoprolaznog asemblera
- Dinamičko povezivanje (Dynamic Linking)
- Linkovanje je odloženo za kasnije, u toku izvršavanja
- Malo parče koda za svaki poziv sistemske biblioteke,
- stub,
- pokazuje kako da se locira odgovarajuća sistemska rutina
- Stub
- puni rutinu u memoriju
- i
- izvršava je
- Operativni sistem obezbeđuje da
- da istu sistemsku rutinu koja je u memoriji
- mogu koristititi više procesa.
- Dinamičko povezivanje je naročito korisno za sistemske biblioteke.
- Tipovi memorijiskih alokacija
- Razlikujemo različite tipove memorijske alokacije na osnovu:
- Efektivnosti
- Složenosti
- Hardvrske podrške
- Kontinualna alokacija:
- Single-programming
- Bare
- Resident Monitor
- Multiprogramming
- MFT
- MVT
- Diskontinualna alokacija:
- Paging
- Segmentation
- Kontinualna alokacija za jedan proces
- Bare machine
- Dve particije: Resident Monitor + User area
- Rezidentni deo operativnog sistema
- se obično čuva u nižoj memoriji
- sa tabelom prekidnih rutina
- Korisnički procesi se drže u višoj memoriji
- Kontinualna alokacija
- Multiprogramming:
- više korisničkih programa se čuvaju u memoriju,
- istovremeno
- bez mešanja
- Alokacija uz pomoć particija
- relokacioni registar
- se koristi da zaštiti
- korisničke procese između sebe,
- i
- operativnog sistema od korisničkih procesa.
- relokacioni registar
- sadrži najnižu adresu procesa;
- limit registar
- sadrži maksimalan opseg logičkih adresa procesa
- svaka logička adresa treba biti manja od limit registra.
- Hardverska podrška za relokacione i limit registre
- Kontinualna alokacija (MFT)
- MFT = Multiprogramming with Fixed Partitions
- (fiksni broj zadataka)
- Idealna za multiprogramiranje sistema sa grupnom obradom
- Memorija se deli na N particija fiksne veličine
- {multiply input Q, single input Q}
- Novi proces
- se smešta u najmanju moguću particiju
- uvek postoji neiskorišćenost memorije (interna fragmentacija)
- Kontinualna alokacija (MFT)
- Višestruki redovi (Multiple Queues)
- mali neiskorišćen prostor
- procesi mogu čekati, dok su velike particije neiskorištene
- Jedinstveni red (Single Queue)
- bolja iskorišćenost particija
- veliki neiskorišćen prostor (mali procesi u velikim particijama)
- Kontinualna alokacija (MFT)
- U sistemima sa deljenjem vremena (time-sharing)
- više korisnika
- više procesa
- zahtevaju više od raspoložive memorije (swapping)
- U sistemima sa deljenjem vremena dolazni procesi su:
- previše mali ili previše veliki
- menjaju se u vremenu (promenljive veličine)
- procesi mogu da rastu u vremenu (podaci i stek)
- Obe osobine su nepovoljna za MFT=>
- mnogo neiskorišćenog prostora u particijama => novi MVT
- MFT je neupotrebljiv;
- => novi MVT
- Kontinualna alokacija (MVT)
- Multiple-partition allocation
- šupljina (hole): slobodni kontinualni deo memorije
- šupljine raznih veličina su razbacane po memoriji
- Kad proces naiđe,
- traži se šupljina dovoljno velika
- da preuzme proces
- Operativni sistem vodi evidenciju o:a) alociranim particijama b) slobodnim particijama (šupljine)
- Upravljanje memorijom (slobodna lista)
- Bit mape (Bit Maps)
- Alocirani delovi memorije + bit mapa (0=free, 1=allocated)
- Ako je alocirani deo manji => bit mapa je veća
- Povezane liste (Linked Lists)
- Povezana lista slogova = Proces (Šupljina) { start, dužina}
- Zasebne liste za šupljine sa istim veličinama => tabela sa N ulaza:
- traženje šupljine je brzo, ali je spajanje šupljina veoma teško
- Sistem udruženih parova (Buddy Systems)
- MM koristi listu slobodnih blokova veličine 1,2, 4, 8, 16, 32 ….
- (za 1MB = 21 liste)
- Cilj=2k, svi procesi trebaju imati veličinu približno 2k
- brzo pretraživanje i spajanje šupljina
- ali je dominantna neiskorišćenost prostora
- Sistem udruženih parova (Buddy Systems)
- Algoritmi za izbor prazne particije
- 1. First-fit:
- Procesu se alocira prva šupljina koja je dovoljno velika
- 2. Best-fit:
- Alocira se najmanja šupljina koja je dovoljno velika za proces;
- pretražuju se cela lista, osim ako nije sređene po veličini
- u ostatku ostavlja najmanju moguću šupljinu
- => ideja za worst fit
- 3. Worst-fit:
- Procesu se dodeljuje najveća moguća šupljina;
- opet se pretražuje cela lista
- u ostatku ostavlja najveću moguću šupljinu
- Fragmentacija
- Eksterna fragmentacija – ukupan memorijski prostor može da zadovolji zahtev procesa ali nije kontinualan
- Interna fragmentacija – alocirana memorija može biti veća od zahtevane memorije procesa, ono što je preostalo od alocirane memorije se ne koristi za ništa.
- Eksterna fragmentacija se može smanjiti sažimanjem
- Cilj sažimanja je da se ispremešta sadržaj memorije kako bi se dobile veće šupljine
- Sažimanje je moguće samo ako je relokacija programa dinamička i radi se u vreme izvršavanja
- I/O problem
- opadaju performanse sistema, jer se procesi prekidaju,
- i privremeno prebacuju na disk
- Diskontinualna alokacija
- Straničenje (Paging)
- Segmentacija (Segmentation)
- Kombinacija:
- Straničenje sa segmentacijom
- Segmentacija sa straničenjem
- Straničenje (Paging)
- Logički adresni prostor procesa mora biti kontinualan;
- ali
- fizički adresni prostor procesa ne mora biti kontinualan;
- fizička memorija je dodeljena procesu kad god je raspoloživa
- Fizička memorija se podeli na blokove fiksne veličine koji se nazivaju okviri (frames)
- (veličina je stepen broja 2, između 512 B i 8192 B)
- Logički adresni prostor se podeli na blokove iste veličine koje se nazivaju stranice (pages)
- Za pokretanje programa veličine n stranica:
- potrebno je pronaći n slobodnih okvira
- učitati program
- Tabela stranica (page table) prevodi logičke u fizičke adrese
- Interna fragmentacija
- Straničenje (2)
- Adresa koju generiše CPU podeljena je na:
- Broj stranice (Page number) (p):
- koristi se kao indeks u tabeli stranica
- koja sadrži
- baznu adresu fizičke stranice, okvira
- Pomeraj unutar stranice (Page offset) (d):
- u kombinaciji sa baznom adresom
- definiše
- punu fizičku adresu
- koja se šalje memorijskoj jedinici
- Metoda straničenja
- Primer straničenja
- Primer straničenja
- Slobodni okviri (Free Frames)
- Implementacija tabele stranica
- Tabela stranica se čuva u glavnoj memoriji
- Page-table base register (PTBR)
- pokazuje na tabelu stranica
- Page-table length register (PRLR)
- ukazuje na veličinu tabele stranica
- U ovakvoj šemi
- svaka korisnička memorijska referenca
- se odvija preko dve memorijske reference
- jedna za tabelu stranica i druga za pristup željenoj referenci
- Problem dvostrukog pristupanja memoriji se rešava
- korišćenjem specijalne keš strukture
- koja se naziva
- translation look-aside buffers (TLB)
- Asocijativna memorija
- Asocijativna memorija – paralelno pretraživanje
- Prevođenje adresa (A´, A´´)
- Ako je A´ u asocijativnom registru, (hit)
- uzmi okvir # (tj A´´)
- Ako nije (miss)
- uzmi okvir #
- iz tabele stranica u memoriji
- Hardversko straničenje sa TLB-om
- Efektivno vreme pristupa
- Asocijativno pretraživanje = vremenskih jedinica
- Pretpostavimo da je vreme trajanja jednog memorijskog ciklusa MC mikrosekundi
- Hit ratio:
- procenat vremena
- vreme koje je potrebno da se pronađe broj stranice u asocijativnim registrima;
- povezan sa brojem asocijativnih registara.
- Hit ratio =
- Effective Access Time (EAT)= Thit + (1- )Tmiss
- EAT = (MC + ) + (1 – )(2MC + )
- = 2MC + – MC
- Zaštita memorije
- Zaštita memorije postiže se
- uvođenjem bitova
- sa specijalnim značenjem
- uz svaki okvir
- Valid-invalid bit se čuvaju u tabeli stranica:
- “valid” ukazuje da je stranica
- u logičkom adresnom prostoru procesa,
- pa je tako to važeća stranica
- “invalid” ukazuje da stranica
- nije u logičkom adresnom prostoru procesa
- Valid (v) or Invalid (i) Bit In A Page Table
- Struktura tabele stranica
- Hijerarhijsko straničenje (Hierarchical Paging)
- Heš bazirane tabele stranica (Hashed Page Tables)
- Invertovane tabele stranica (Inverted Page Tables)
- Hijerarhijsko straničenje
- Podeliti logički adresni prostor
- u
- više tabela stranica
- Jednostavna tehnika
- je straničenje u dva nivoa
- (two-level page table)
- Straničenje u dva nivoa
- Logička adresa (na 32-bitoj mašini sa veličinom stranice 4K) je podeljena na:
- broj stranice koji se sastoji od 20 bitova
- ofset stranice koji se sastoji od 12 bitova
- Kada se primeni tabela stranica, broj stranice se dalje deli na:
- 10-bita za broj stranice
- 10-bita za offset stranice
- Iz toga sledi, logička adresa:
- gde je:
- p1 indeks u spoljnoj tabeli stranica
- p2 je pozicija u selektovanoj untrašnjoj stranici
- Prikaz straničenja u dva nivoa
- Šema prevođenja adresa
- Šema prevođenja adresa za
- straničenje u dva nivoa na 32-bitoj arhitekturi
- Heš bazirane tabele stranica
- Koristi se kod adresnih prostora koji su > 32 bita
- Virtuelni broj stranice se dobija iz heširane tabele stranica
- Ova tabela stranica sadrži:
- povezanu listu elemenata
- koji imaju istu vrednost heš funkcije.
- Virtuelni brojevi stranica se upoređuju
- u ovom nizu
- i traži se odgovarajući broj
- Kada se pronađe odgovarajući virtuelni broj,
- dobijamo vrednost fizičke stranice
- Heš bazirane tabele stranica
- Invertovane tabele stranica
- Jedan ulaz za svaki okvir ili fizičku stranicu memorije
- Ulaz se sastoji od:
- virtuelne adrese stranice
- koja je pridružena ovoj memorijskoj lokaciji,
- sa informacijom o procesu koji je dobio tu stranicu PID
- Smanjuje se memorija potrebna da uskladišti svaku tabelu stranica,
- ali se
- povećava vreme potrebno za pretraživanje tabele
- jer se pretražuje cela tabela.
- Zbog toga se kotisti heš tabela da ograniči pretraživanje
- Invertovane tabele stranica
- Deljive stranice (Shared Pages)
- Deljivi kod
- Jedna kopija read-only (reentrant) koda
- deli se između procesa (npr., tekst editori, kompajleri, grafički sistemi)
- deljivi kod treba biti na istoj fizičkoj lokaciji
- u logičkom adresnom prostoru svih procesa
- Privatni kod i podaci
- svaki proces čuva odvojenu kopiju koda i podataka
- stranice za privatni kod i podaci mogu biti bilo gde
- u logičkom adresnom prostoru.
- Deljive stranice
- Segmentacija
- Šema za upravljanje memorijom
- koja podržava
- korisnički pogled na memoriju
- Program je kolekcija segmenata
- Segment je logička jedinica kao što je:
- glavni program
- procedura
- funkcija
- metod
- objekat
- localne promenljive, globalne promenljive,
- blok
- stek
- tabela simbola, nizovi
- Logički izgled programa
- Logički izgled segmentacije
- Arhitektura segmentacije
- Logička adresa se sastoji od dva dela:
- <segment-number, offset>
- Tabela segmenata – mapiranje dvodimenzionalnih fizičkih adresa;
- Svaki ulaz u tabeli sadrži:
- bazna adresa segmenta:
- defniše početnu fizičku adresu segmenta u memoriji
- ograničenje segmenata:
- definiše dužinu segmenta
- Segment-table base register (STBR)
- pokazuje na lokaciju u memoriji gde je smeštena tabela segmenata
- Segment-table length register (STLR)
- predstavlja broj segmenata koje koristi program;
- broj segmenata je ispravan ako je s < STLR.
- Arhitektura segmentacije (2)
- Relokacija:
- dinamičko, preko tabele segmenata
- Deljenje:
- deljivi segmenti
- isti broj segmenata
- Alokacija:
- first fit/best fit
- eksterna fragmentacija
- Arhitektura segmentacije (3)
- Zaštita.
- Za svaki ulaz u tabelu segmenata asocira se:
- validation bit = 0 nepravilan segment
- read/write/execute privilegije
- Zaštita je povezana sa segmentima;
- deljenje koda se odvija u nivoima segmenata.
- Pošto segmenti variraju u vremenu,
- alokacija memorije ima problem dinamičke alokacije.
- Primer segmentacije prikazan je u sledećem dijagramu
- Hardverska segmentacija
- Primer segmentacije
- Deljivi segmenti
- Segmentacija sa straničenjem – MULTICS
- MULTICS sistem rešava probleme
- eksterne fragmentacije i
- velikog vremena za pretraživanje
- uz pomoć straničenja segmenata
- Ovo rešenje se razlikuje od čiste segmentacije
- u tome što se na ulazu u tabelu segmenata
- ne nalazi bazna adresa segmenta,
- ali
- se nalazi bazna adresa tabele stranica za taj segment.
- Prevođenje adresa - MULTICS
- Segmentacija sa straničenjem – Intel 386
- Kao što je prikazano na sledećem diagramu,
- Intel 386
- koristi
- segmentaciju sa straničenjem
- sa šemom za straničenje u dva nivoa
- Prevođenje adresa - Intel 30386
- Zaključak
- MM šeme
- {Bare, Resident Monitor,MFT,MVT, Straničenje, Segmentacija}
- Hardverska podrška
- RM, MFT=MVT registar ili par ograničenih registara
- P&S zahteva tabele mapiranja
- Performanse
- Prostije šeme su brže
- P&S potreban je hardverski akcelerator, registri, CPU-TLB
- Fragmentacija
- MFT i straničenje pate od interne fragmentacije (fiksna veličina prostora)
- MVT i segmentacija pate od eksterne fragmentacije
- Zaključak
- Pomeranje
- Logička adresa se može pomerati dinamično,
- za vreme izvršavanja.
- To je potrebno za kompakciju memorije
- Swapping
- Svaki algoritam može imati ugrađen swapping
- Deljenje
- deljenje obično zahteva da bude korišćemo ili straničenje ili segmentacija,
- da obezbedi male pakete informacija (stranice ili segmente)
- koji mogu biti deljeni.
- Zaštita
- valid/invalid bit
- read only, execute only, r/w
- Realizacija sistema datoteka
- Struktura sistema datoteka
- Realizacija sistema datoteka
- Realizacija direktorijuma
- Alokaciona metoda
- Upravljanje slobodnim prostorom
- Efikasnost i performanse
- Oporavak (Recovery)
- Log-Structured File Systems
- Struktura sistema datoteka
- Struktura datoteka:
- Logical storage unit
- Skup povezanih informacija
- (FS) Sistem datoteka se nalazi na sekundarnoj memoriji (diskovi)
- FS Sistem datoteka je organizovan u slojevima.
- Kontrolni blok datoteke (FCB):
- memorijska struktura
- koja sadrži informacije o datoteci
- Sistem datoteka realizovan u slojevima
- Strukture podataka neophodne za realizaciju sistema datoteka
- Disk
- BCB (boot control block, MBR,MPT)
- Sistemi datoteka
- kontroni blok particije (superblock, BPB)
- kontrolne strukture za alokaciju datoteka (FAT table, inode table, MFT)
- direktorijumske strukture
- FCB (file-info)
- Memorijske strukture podataka
- tabele otvorenih datoteka:
- na sistemskom nivou
- po procesu
- keš za direktorijume = nedavno korišćeni blokovi direktorijuma
- keš za metapodatke =nedavno korišćene strukture metapodataka
- keš za datoteke
- strukture za upravljanje slobodnim prostorom
- Memorijske strukture podataka
- Virtuelni sistem datoteka
- Virtuelni sistem datoteka (VFS)
- predstavlja
- jedan objektno orjentisani način
- realizacije sistema datoteka
- VFS omogućava
- da isti sistemski poziv (API)
- bude korišćen
- za različite tipove sistema datoteka
- API je u VFS interfejsu,
- a ne u bilo kom drugom sistemu datoteka
- Virtuelni sistem datoteka – šematski prikaz
- Realizacija direktorijuma
- 1. Linearna lista
- linearna lista imena datoteka sa pokazivačem na blokove podataka
- jednostavna šema
- dugo pretraživanje
- 2. Hash tabela:
- linearna lista sa hash tabelom
- smanjuje vreme pretraživanja direktorijuma
- kolizije
- fiksne veličine
- 3. B-trees (B+ or B-)
- Alokaciona metoda
- Alokaciona metoda
- predstavlja način
- na koji se blokovi diska
- dodeljuju datoteci:
- Kontinualna alokacija
- Povezana alokacija
- Indeksna alokacija
- Kontinualna alokacija
- Svaka datoteka zauzima
- kontinualne blokove
- na disku
- Prosta metoda, FCB (file-info) jednostavan, sastoji se od:
- početne adrese (blok #)
- dužine (broj blokova)
- Proizvoljan pristup (random access)
- (direktan pristup bilo kom delu datoteke)
- Rasipanje memorijskog prostora
- (za datoteku odmah mora dodeliti ukupni adresni prostor)
- Datoteka ne može da raste
- Kontinualna alokacija prostora na disku
- Problemi kod kontinualne alokacije
- Eksterna fragmentacija i kompakcija
- Dinamička alokacija memorije:
- First fit (prva šupljina koja je dovoljno velika)
- Best fit (najmanja šupljina)
- Worst fit (najveća moguća šupljina)
- Glavni problem=creation:
- proces mora da zna veličinu datoteke koja će biti formirana
- to veoma je teško proceniti u trenutku formiranja
- Ako je alociran suviše mali prostor =>a datoteka treba da raste
- Postoje 2 mogućnosti:
- 01. Proces će se završiti sa porukom o grešci
- 02. Kopiraće datoteku u veću šupljinu i osloboditi prošlu
- Extent metoda
- Mnogi noviiji sistemi datoteka (npr. VFS)
- koriste modifikovanu
- metodu kontinualne alokacije
- Sistem datoteka baziran na extent metodi
- alocira blokove na disku
- u celinama-extents
- Extent je celina sastavljena od kontinualnih blokova na disku
- extent je jedinica promenljive veličine
- extent se koristi za alokaciju datoteke
- datoteka se sastoji od jednog ili više extent-a
- Povezana alokacija
- Svaka datoteka dobija povezanu listu blokova
- blokovi mogu biti razbacani svugde po disku
- Povezana alokacija
- Povezana alokacija (2)
- Prosta metoda, FCB zahteva samo početnu adresu
- Sistem za upravljanje slobodnim prostorom:
- nema rasipanja memorijskog prostora
- Ne postoji random pristup
- nemože direktno pristupiti
- bilo kom delu datoteke
- bez prethodne analize
- Prednosti i mane povezane alokacije
- Prednosti:
- Nema problema sa eksternom fragmentacijom
- Kreiranje datoteke: nije potrebno definisati veličinu datoteke
- Datoteka može da raste dok ima slobodnih blokova
- Nikada nije neophodan kompaktan prostor na disku
- Nedostaci:
- Datoteke su razbacane, ali su i pokazivači na blokove razbacani
- Usporeno pretraživanje zbog sekvencijalnog pristupa
- Loše za proizvoljno pristupanje datoteci
- Loše za pristupanje velikim datotekama
- Pokazivači => gubitak prostora
- Pouzdanost =loši pokazivači mogu stvoriti mnoge greške FS
- File-Allocation Table
- Primer FAT tabele
- Primer: primer.txt = {5, 14, 70, 130}
- FCB FAT Data area
- Indeksna alokacija
- Svakoj datoteci se dodeljuje indeksni blok
- koji sadrži sve informacije o prostornom rasporedu datoteke
- Logički prikaz
- Primer indeksne alokacije
- Indeksna alokacija (2)
- Potrebna je indeksna tabela
- Random pristup
- Dinamički pristup
- nema eksternu fragmentaciju
- ali ima
- gubitak prostora (index blocks)
- Indeksna alokacija – mapiranje
- UNIX FS
- FS Layout DATA area FCB Inode
- UNIX (4KB po bloku)
- Poređenje
- Kontinualna alokacija
- najbrža jer posle čitanja FCB,
- prelazi se na direktno čitanje datoteke
- Linkovana alokacija
- dobra za sekvencijalan pristup
- čita blok i čita sledeći pokazivač
- dva puta pristupa disku za jedan blok datoteke
- veoma loša za direktan pristup
- za i-ti blok može zahtevati i čitanja diska
- Kao rezultat, neki sistemi podržavaju
- direktan pristup korišćenjem CA
- sekvencijalan pristup korišćenjem LA
- Poređenje
- Indeksna alokacija je najkompleksnija
- Performanse IA zavise od:
- strukture indeksa i strukture memorije
- veličine datoteke
- pozicije potrebnih blokova
- direktni blok je brži
- indirektni blok je sporiji
- Kombinacija CA+IA
- za manje datoteke = CA
- za veće datoteke = IA
- Upravljanje slobodnim prostorom
- Bit vector (n blocks)
- Linkovane liste
- Upravljanje slobodnim prostorom(2)
- Modifikacije:
- 1. Grupisanje
- U prvom bloku se čuvju pokazivači
- na sledećih N-1 slobodnih blokova
- Dok N-ti na sledeći free information block
- 2. Brojanje (Counting)
- adresa slobodnih blokova (pointer)
- +
- broj slobodnih blokova u blizini
- Efikasnost i performanse
- Efikasnost zavisi od:
- Disk-alokacije i algoritama direktorijuma
- tipova podataka koji se čuvaju u direktorijumskim ulazima
- Performanse:
- disk keš:
- posebni delovi u glavnoj memoriji za blokove koji se često koriste
- free-behind and read-ahead:
- tehnike za optimizaciju sekvencijalnog pristupa
- unapređenje performansi PC-ja
- tako što se odvoji deo u memoriji kao virtualni disk,
- ili RAM disk
- Razne komponente keša
- Keš za stranice
- Keš za stranice
- kešira stranice
- a ne blokove na disku
- korišćenjem tehnike virtualne memorije
- Memorijski mapirane datoteke koriste stranični keš
- Datoteke: I/O Drajveri
- kroz sistem datoteka
- koriste baferski (disk) keš
- Ovo je predstavljeno na sledećoj slici:
- I/O Without a Unified Buffer Cache
- Unified Buffer Cache
- Unified buffer cache
- koristi isti keš za stranice
- da kešira obe:
- memorijski mapirane stranice
- i
- datoteke (običan FS I/O)
- I/O Using a Unified Buffer Cache
- Buffer Cache
- Podela keša
- Alokacija keša (Cache allocation)
- Razmena podataka u kešu (Cache replacement)
- Tehnika upisa podataka (Write techniques)
- Cache coherency for DFS
- Podela keša
- Organizacija keša
- Svaki deo keša ima ima svoju organizaciju
- Keš direktorijuma =
- nedavno korišćeni direktorijumski blokovi
- sortirani po imenu
- Keš metapodataka =
- nedavno korišćeni metapodaci
- sortirani po broju metapodatka (broj inoda)
- Keš za datoteke
- Keš za definicuju blokova (2**N blokova diska)
- Algoritam za alokaciju/pretraživanje
- Standardna šema
- Razmenjivanje podataka u kešu
- Svi delovi keša su ograničene veličine
- Razmenjivanje podataka u kešu je neophodno
- Tehnike za razmenjivanje podataka u kešu
- LRU
- LFU
- LRFU
- Veoma složen za DFS, Internet, proxy caching …
- Kombinacija vrednosti (prostor x starost, vreme uzimanja podataka)
- Tehnike upisa
- Keš bez mogućnostu upisa = niske performanse
- Dve metode
- Write-through (sinhronizovani upis)
- Siguran sistem, bez gubitka podataka, ali sa niskim performansama
- Write-back (odloženi upis)
- Visoke performanse, ali postoji gubitak podataka u slučaju da sistem bude oboren
- Tehnike odloženog upisa
- Upis nakon zatvaranja (Write on eject)
- Pražnjenje bafera (Flushing)
- Log-approach
- Log for meta data, only = JFS
- Total log = LFS
- Journaling –LOG approach
- svi metapodacii se ažuriraju (t) u jednom velikom logu
- JFS - Log Structured File Systems
- Log structured (or journaling) file systems
- snimaju svako ažuriranje sistema datoteka
- kao transakciju
- Sve transakcije se upisuju u log
- transakcija se izvršava
- samo kada je upisana u log
- Međutim, sistem datoteka se možda ne može odmah ažurirati
- Transakcije u log
- se asinhrono upisuju u sistem datoteka.
- kada je sistem datoteka modifikovan,
- transakcija se briše iz loga.
- U slučaju obaranja sistema,
- sve postojeće transakcije u logu
- trebaju da nastave da funkcionišu
- Oporavak (Recovery)
- Keširanje i obaranje sistema
- mogu prouzrokovati
- oštećenje podataka
- Provera konzistencije:
- uporedjuje podat ke u strukturi direktorijuma
- sa blokovima podataka na disku
- pokušava da locira nekonzistentne podatke
- [cache data] must be = [disk data]
- U slučaju obaranja sistema podaci mogu biti oštećeni
- Koristiti sistemske programe
- za pravljenje kopije podataka sa diska na drugi memorijski uređaj
- (flopi disk, magnetna traka).
- Oporavak izgubljenih datoteka
- prebacivanjem
- sa bekapa
- Interfejs za sistem datoteka
- Pojam datoteke (File Concept)
- Metode pristupa (Access Methods)
- Struktura direktorijuma (Directory Structure)
- Aktiviranje sistema datoteka (File System Mounting)
- Deljenje datoteka (File Sharing)
- Zaštita (Protection)
- Pojam datoteke
- Definicije:
- 1. Kontinulan logički adresni prostor
- (logička jedinica diska)
- 2. Datoteka je imenovana kolekcija povezanih informacija
- koji se čuva
- na disku
- 3. Datoteka je sekvenca bitova, bajtova, linija ili zapisa
- čije značenje
- je definisano od strane kreatora datoteke.
- Pojam datoteke
- Tipovi datoteka (content):
- data {brojčani, karakter, binarni, bit mape}
- program (exe files)
- Tipovi datoteka (support)
- podrška od strane OS ili od strane aplikacija
- UNIX koncept =
- ne postoje tipovi datoteka u OS
- maksimalna fleksibilnost datoteka
- aplikacije podržavaju svoje tipove datoteka
- Oblik
- slobodni oblik (npr. tekstualna datoteka)
- rigidni oblik (npr. baza podataka)
- Logička struktura datoteka
- 1. None (Nema je): kolekcija reči, bajtova
- 2. Jednostavna logička struktura
- Zapisi
- Fiksne dužine
- Promenljive dužine
- 3. Složene strukture
- Formatirani dokumenti
- Može se simulirati
- umetanjem kontrolnih znakova
- u datoteke
- bez logičke strukture.
- Ko odlučuje (pruža podršku):
- Operativni sistem
- Program-aplikacija
- Atributi datoteka
- Ime (Name)
- jedina informacija koja se održava u formi koju može da čita čovek.
- Tip (Type)
- dopuna za sisteme koji podržavaju različite tipove podataka.
- Lokacija (Location)
- pokazivač na lokaciju datoteke na disku.
- Veličina (Size)
- trenutna veličina datoteke.
- Zaštita (Protection)
- kontroliše ko može čitati, upisivati i izvršavati datoteku.
- Vreme, datum i korisnička identifikacija
- podaci za zaštitu, sigurnost i kontrolu korišćenja datoteke.
- Atributi-Informacije o datotekama
- se čuvaju u strukturi direktorijuma,
- koji je se nalazi na disku
- Operacije nad datotekama
- Kreiranje (Create)
- (dva koraka=dodeli prostor + upisuje u direktorijum)
- Upis (Write)
- (ime ili fd, bafer u kome se nalazi informacija o upisu)
- sistem za svaku otvorenu datoteku, čuva ukazivač za ciklus upisa koji se stalno ažurira
- Čitanje (Read)
- (ime ili fd, bafer u koji će se čitati datoteka )
- R/W =trenutni pokazivač na otvorenu datoteku
- čita trenutni pokazivač, upisuje trenutni pokazivač
- Pozicioniranje unutar datoteke
- file seek (nema transfera podataka)
- Brisanje (Delete)
- (oslobađa zauzeti prostor + uklanja FCB)
- Odsecanje (Truncate)
- postojeća datoteka se smanjuje
- oslobađa se prostor
- Operacije nad datotekama
- Otvaranje(Fi) (Open)
- pretražuje se direktorijumska struktura na disku
- kada se nađe kontrolni blok datoteke
- upisuje se u glavnu sistemsku tabelu
- provera sigurnosti
- način pristupa (kreiranje, ro, rw)
- za višekorisnički OS kao što je UNIX=> dve tabele + brojač
- tabela otvorenih datoteka za svaki proces (per process file table)
- sistemska tabela otvorenih datoteka (system wide file table)
- Zatvaranje(Fi) (Close)
- kontrolni blok datoteke iz memorije se ažurira
- ponovo upisuje na disk (ako je modifikovan)
- Tipovi datoteka – ime, ekstenzija
- Metode pristupa datotekama
- Sekvencijalan pristup datoteci (tape model)
- tekući pokazivač (cp)
- čitanje sledećeg bloka + vrednost cp se ažurira
- upis u sledeći blok + vrednost cp se ažurira
- reset (premotavanje)
- ne postoji mogućnost prepisivanja
- Editori i prevodioci koriste ovaj način pristupa datotekama
- Metode pristupa datotekama
- Direktan pristup datoteci (disk model)
- (datoteka = N blokova)
- svakom bloku se može pristupiti u bilo koje vreme
- pristup = N-om bloku
- čitanje n-tog bloka
- upis u n-ti blok
- pozicioniranje na n-ti blok
- čitanje sledećeg bloka
- upis u sledeći blok (kao kod sekvencijalnog modela)
- prepiši n
- n = relativan broj blokova u datoteci
- Sekvencijalan pristup datoteci
- Simulacija sekvencijalnog pristupa preko direktnog pristupa
- Indeksno-sekvencijalni pristup datoteci
- Struktura direktorijuma
- Kolekcija nodova
- sadrži
- informacije o svim datotekama
- Organizacija sistema datoteka
- Information in a Directory Entry (file-info) ili FCB
- Ime
- Tip (za OS koji podržavaju različite tipove)
- Adrese ( layout datoteka)
- Trenutna dužina (size)
- Maksimalna dužina
- Datum poslednjeg pristupa (za arhiviranje)
- Datum poslednje promene
- ID vlasnika
- Informacije o zaštiti
- Sadržaj
- Različite informacije za različite OS
- Efikasna pretraga (B-trees, hashing)
- Operacije nad direktorijumima
- Pretraživanje datoteka
- Kreiranje datoteke
- Brisanje datoteke
- Listanje sadržaja direktorijuma
- Promena imena datoteke
- Arhiviranje
- Logička organizacija direktorijuma
- Efikasnost:
- brzo lociranje datoteke.
- Imenovanje datoteka:
- podesan način, koji korisniku omogućava davanje imena.
- Dva korisnika mogu imati
- isto ime za različite datoteke.
- Ista datoteka može imati
- nekoliko različitih imena (links).
- Grupisanje:
- logičko grupisanje datoteka po osobinama,
- (npr., svi Java programi, sve igre, …)
- Struktura sa jednim nivoom
- Jedan direktorijum za sve korisnike
- Struktura sa dva nivoa
- Posebni direktorijum za svakog korisnika (dva nivoa)
- Stablo direktorijuma
- Stablo direktorijuma (2)
- Efikasno pretraživanje
- Mogućnost grupisanja
- Trenutni direktorijum (radni direktorijum)
- cd /spell/mail/prog
- type list
- Apsolutna ili relativna putanja i ime
- Stablo direktorijuma (3)
- Kreiranje nove datoteke se obavlja u tekućem direktorijumu
- Brisanje datoteke
- rm <ime datoteke>
- Kreiranje novog poddirektorijuma se obavlja u trekućem direktorijumu
- mkdir <ime direktorijuma>
- Primer: ako je tekući direktorijum /mail
- mkdir count
- Brisanje direktorijuma = samo ako je prazan
- Acyclic-Graph Directories (deljenje prostora)
- Potreba za deljenjem datoteka (ista datoteka pod različitim imenima)
- Deljenje direktorijuma i datoteka
- Link = pokazivač na druge datoteke u poddirektorijumu
- Acyclic-Graph Directories (2)
- Problem brisanja linkovanih datoteka
- If dict deletes list dangling pointer (there a link)
- Rešenja:
- Free deletion (good for symbolic links)
- Deletion only after all references are deleted
- Reference file or number of links count
- Entry-hold-count solution
- General Graph Directory
- General Graph Directory (2)
- Kako da obezbedimo da ne dođe do pojave krugova?
- 1. ne dozvoliti linkovanje između direktorijuma
- Dozvoliti linkovanje samo datoteka
- 2. garbage collection
- 3. algoritam za otkrivanje krugova
- pre kreiranja novog linka
- koristi se algoritam za detekciju krugova
- da kontorliše da li je sve u redu
- Aktiviranje sistema datoteka
- Sistem datoteka
- mora biti aktiviran
- pre korišćenja
- Neaktivan sistem datoteka
- se montira (mount)
- na tačku za montiranje (MPD)
- (a) Existing. (b) Unmounted Partition
- Mount Point
- Deljenje datoteka (između korisnika)
- Deljenje datoteka
- na višekorisničkim sistemima
- je veoma korisno
- Deljenje se može obaviti
- preko
- bezbedne šeme
- Na distribuiranim sistemima,
- datoteke mogu biti deljene
- kroz mrežu
- Network File System (NFS)
- je deljenje daoteka
- u distribuiranim uslovima
- Zaštita
- Tipovi zaštite:
- totalna zabrana
- totalna sloboda
- kontrolisani pristup
- Lista kontrole pristupa (Access Control List)
- totalna lista
- sažeta lista
- Vlasnik/kreator datoteke treba biti sposoban da kontroliše:
- šta može biti urađeno
- i od koga
- Tipovi pristupa:
- Čitanje (Read)
- Upis (Write)
- Izvršavanje (Execute)
- Dodavanje (Append)
- Brisanje (Delete)
- Listanje atributa datoteke (List)
- Liste pristupa i grupe (UNIX)
- način pristupa: read, write, execute
- tri kategorije korisnika:
- RWX
- a) owner access 7 1 1 1 RWX
- b) group access 6 1 1 0
- RWX
- c) public access 1 0 0 1
- Pitati manadžera da dozvoli kreiranje grupe (jedinstveno ime), npr. G, i dodati neke korisnike u grupu
- Za pojedinu datoteku (npr. igra) ili poddirektorijum, definisati svojstven pristup
- Ulazno/Izlazni (I/O) Sistemi
- I/O Ulazno/Izlazni Hardver
- Aplikacijski I/O Interfejs
- Kernelski I/O Podsistem
- Pretvaranje I/O Zahteva u Hardverske Operacije
- Tokovi Podataka (Streams)
- Performanse
- I/O Hardver
- Opšte kategorije I/O uređaja:
- memorijski uređaji
- uređaji za prenos podataka
- uređaji za korisnički intrefejs
- Opšti koncepti:
- Controller (host adapter) realizovan kao:
- port (4 vrste registara :kontrolni, statusni, ulazni za podatke, izlazni za podatke )
- magistrala (jedan uređaj priključen na sistem-daisy chain ili direktno deljenje podataka)
- I/O instrukcije za kontrolu uređaja
- I/O uređaji poseduju adrese, koje se koriste za:
- direktne I/O instrukcije
- memorijski mapirane I/O instrukcije
- Tipična Struktura Magistrale ko PC-a
- Lokacije Portova I/O Uređaja Kod PC-a (partial)
- Tehnika Prozivanja (polling) PIO
- Određivanje stanja korišćenjem statusnog registra, bits:
- zauzeto(busy)
- greska(error)
- Čekanje dok kontroler ne bude spreman-slobodan (free)
- busy bit
- Zadavanje komandi:
- postavljanje komandnog koda u komandni registar
- postavljanje podatka u izlazni registar (ako je izlazna komanda-write)
- postavljanje command-ready bita
- Izvršenje komande (sa mogučim transferom podataka)
- busy bit je postavljen svo vreme
- Čekanje na kraj komande
- busy bit
- Prozivanje = Busy-čekanje u petlji:
- Da kontroler bude spreman
- Izvršenje komande
- Prekidi (Interrupts)
- CPU poseduje prekidnu liniju
- koja se aktivira
- od strane I/O uređaja
- ISR: Rutina za obradu prihvata prekidne signale
- Maskirajući IRQ se mogu
- ignorisati
- odložiti (deffer)
- IVT: Vektor tabela prekida
- Poziva odgovarajuće rutine za obradu prioritetnih prekida
- zasnovana na prioritetu
- izvršava neke nemaskirane prekide
- Prekidni mehanizam takođe se koristi za:
- izuzetke (exception)
- Software interrupts
- Prekid-Odvijanje I/O Ciklusa
- Vektor Tabela Događaja Kod Intel Pentium Procesora
- Direktan Pristup Memoriji (DMA)
- PIO=Programirani I/O
- Za svaki transfer podataka, PIO zahteva dve faze:
- čekanje u petlji da podaci budu spremni
- transfer podataka
- DMA:Koristi se da bi se izbegao
- programirani I/O
- za veće transfere podataka
- Zahteva DMA controller
- Oslobađa CPU
- od prenosa podataka
- DMA prenosi direktno podatke
- između I/O uređaja i memorije
- Šest Koraka Izvođenja DMA Transfera
- Aplikacijski I/O Interfejs
- I/O sistemski pozivi su:
- visokog nivoa, generalni
- Device-driver layer
- Karakteristike uređaja su sakrivene
- u specijalnim modulima kernela koji se nazivaju drajveri
- Podela uređaja:
- Po načinu transfera podataka - na blok i karakter uređaje
- Po metodi pristupa - sekvencijalni i uređaje sa direktnim ili slučajnim prisitupom
- Po deljivosti - na deljive i nedeljve
- Po brzini - brzi i spori
- Po mogućnosti upisa - read-write, read only, or write only
- Struktura I/O Kernela
- Karakteristike I/O Uređaja
- Blok i Karakter Uređaji
- Blok uređaji se odnose na diskove
- rade sa blokovima podataka
- koriste komande: read, write, seek
- koriste sirov(raw) I/O pristup sistemu ili pristup preko sistemske cache memorije
- memorija-moguć je mapirani pristup datotekama
- Karakter uređaji koriste tastaturu, miš, serijske portove
- rade u režimu bajt po bajt
- koriste komande: get, put
- biblioteke
- smeštene su na vrhu
- dozvoljavaju editovanje po liniji
- Mrežni Uređaji
- Razlikuju se od
- blok i karakter uređaja
- zato što poseduju sopstveni interfejs socket
- Unix i Windows NT/9i/2000 sadrže socket interfejs
- razdvajaju mrezni protokol
- od mrežnih operacija
- sadrže select funkcionalnost
- Mehanizmi za mrežne interfejse
- pipes
- FIFO
- streams
- redovi za poruke (message queue)
- mailboxes
- Časovnik i Tajmer
- Obezbeđuju:
- trenutno vreme
- proteklo vreme
- tajmerski okidač (trigger function)
- Programibilni intervalski tajmeri se koriste za:
- merenje proteklog vremena
- periodične prekide
- ioctl (na UNIX-u) pokriva
- sporedne aspekte I/O
- kao što su clock i tajmeri
- Blokirajuće i Ne-blokirajuće I/O Operacije
- Blokirajući:
- proces se blokira i čeka sve dok se ne kompletira I/O operacija
- Lako za korišćenje i razumevanje
- Nedovoljan za neke potrebe
- Neblokirajući:
- I/O poziv vraća onoliko bajtova koliko je dostupno
- korisnički interfejs, kopiranje podataka (buffered I/O)
- ostvareno preko višenitnih procesa (multi-threading)
- brzo odgovara sa brojem pročitanih ili upisanih bajtova
- Asinhroni:
- I/O pozivi vraćaju kontrolu procesu u istom trenutku
- Proces se odvija dok se I/O izvršava
- teško za korišćenje
- I/O podsistem označava procesu kada je I/O završen
- Kernelski I/O Podsistem
- 1. Raspoređivanje (Scheduling)
- poredak I/O zahteva prispelih u per-device reda čekanja
- operativni sistemi optimzuju red izvršenja
- 2. Baferisanje (Buffering) –
- smešta privremeno podatke u memoriju
- dok se obavlja
- njihov transfer između uređaja
- Baferisanje se koristi da bi se :
- prevazišle razlike u brzini uređaja
- prevazišle razlike u veličini transfera između uređaja
- održala semantika kopiranja “copy semantics”
- Sun Enterprise 6000 Device-Transfer Rates
- Kernelski I/O Podsistem
- 3. Keširanje:
- brza memorija koja čuva kopije podataka
- Uvek samo kopije
- Ključno je za performanse
- 4. Spool tehnika:
- bafer koji čuva izlazne podatke za uređaj
- ako uređaj može da pošalje samo jedan zahtev u tom trenutku
- npr. Štampač
- 5. Rezervacija uređaja –
- omogućava ekskluzivni pristup uređaju
- Sistemski pozivi za dodeljivanje i razdeljivanje
- Motrenje na zastoje
- Upravljanje greškama
- OS može da se oporavi od greške:
- čitanja diska
- nedostupnosti uređaja
- privremenog neuspelog upisa
- Uglavnom vraća:
- broj greške
- ili
- kod
- kada I/O zahtev neuspe
- System error logs
- čuvaju izveštaje o problemima (problem reports)
- Kernelske Strukture Podataka
- Kernel mora da čuva informacije o stanju I/O komponenti,
- kao što su:
- tabela otvorenih datoteka
- mrežne konekcije
- stanja kareakter uređaja
- Većina kompleksnih struktura podataka čuvaju informacije za:
- baferisanje
- dodeljivanje memorije
- “prljavi” blokovi
- neki OS koriste
- objektno orijentisane metode
- i
- Message-passing
- za implementaciju I/O
- UNIX I/O Struktura Kernela
- Transformisanje I/O Zahteva u Hardverske Operacije
- Abalizirajmo učitavanje datoteke sa diska:
- Određivanje uređaja koji čuva datoteku
- Prevođenje imena koje se prikazuje uređaju
- Fizičko učitavanje podataka sa diska u bafer
- Priprema podataka dostupnih za proces
- Vraćanje kontrole procesu
- Životni Ciklus I/O Zahteva
- STREAMS
- stream:
- full-duplex komunikacioni kanal
- Između:
- procesa na korisničkom nivou
- i
- uređaja
- (stream) se sastoji od:
- glave (stream head) koja komunicira sa korisničkim procesom
- drajvera i interfejsa sa uređaja
- proizvoljnog broja STREAM modula između njih
- Svaki modul sadrži
- red za čitanje
- red za pisanje
- Prosleđivanje poruka
- se koristi
- za komunikaciju
- između redova
- Struktura STREAM-ova
- Performanse
- I/O performanse jako utiču na opšte performanse sistema:
- Zahtev od CPU da izvrši drajverski i kernelski I/O kod
- prebacivanja konteksta i rukovanja prekidima
- kopiranje podataka
- Mrežni saobraćaj takođe izaziva veliki broj prekida
- Komunikacija Unutar Računara
- Poboljšanje Performansi
- Smanjenje broja prebacivanja sadržaja
- Smanjenje kopiranja podataka
- Smanjenje prekida
- korišćenjem
- velikih transfera
- pametnih kontrolera,
- tehnikom pozivanja polling
- Korišćenjem direktnog pristupa memoriji (DMA)
- Balansirano korišćenje:
- CPU, memorije, magistrale, I/O performansi
- za najveću propusnu moć
- Način Postizanja Najbolje Funkcionalnosti Uređaja
- Mass Storage Sistemi (Za Masovno Skladištenje)
- Struktura Diska
- Raspoređivanje Disk Zahteva (Disk Scheduling)
- Upravljanje Diskovima
- Upravljanje Swap Prostorom
- RAID Strukture
- Priključivanje Diskova
- Realizacija Stabilnih Sistema
- Tercijalna Memorija
- Zadaci Operativnog Sistema
- Zadaci Performansi
- Struktura Diska
- Diskovi se adresiraju
- kao široko jednodimenziono polje logičkih blokova ,
- gde je
- logički blok najmanja jedinica transfera
- Jednodimeziono polje logičkih blokova
- se mapira
- u sektore na disku sekvencijalno .
- logički blok 0
- se mapira u prvi sektor,
- prve staze,
- spoljašnjeg cilindra .
- Proces mapiranja se nastavlja na drugu stazu,
- pa se pređe na sledeću stazu tog cilindra,
- pa na sledeći cilindar
- od krajnjeg unutrašnjeg
- Raspoređivanje Disk Zahteva (Disk Scheduling)
- operativni sistem je odgovoran
- za efikasno korišćenje hardvera
- Za diskove, ovo znači:
- 1. brzo vreme pristupa (seek)
- 2. brze disk transfere (disk media bandwidth)
- Vreme Pristupa
- Vreme pristupa se sastoji iz dve osnovne komponente:
- Vreme pozicioniranja (seek time)
- je vreme za koje disk
- pomera glavu do cilindra
- koji sadrži željeni sektor
- Rotaciono kašnjenje (Rotational latency)
- je naknadno vreme
- čekanja da glava diska
- rotira na željeni sektor
- Smanjenje vremena pozicioniranja
- Vreme pozicioniranja udanjenost pozicije
- Brzina Disk Transfera
- Brzina disk transfera je:
- ukipan broj prebačenih bajtova
- u jedinici vremena
- ukupno vreme između
- prvog zahteva za servis
- završetka poslednjeg transfera
- Raspoređivanje Disk Zahteva
- Postoji nekoliko algoritama
- za raspoređivanje servisiranje disk I/O zahteva
- Ilustrovaćemo ih preko reda zahteva (disk 0-199)
- 98, 183, 37, 122, 14, 124, 65, 67
- Pokazivač na glavu (head pointer) 53
- FCFS
- SSTF
- Kriterijum: Biranje zahteva
- sa minimalnim vremenom pozicioniranja
- od trenutne pozicije glave
- SSTF raspoređivanje
- je forma SJF raspoređivanja;
- može da izazove zakucavanje nekih zahteva
- SSTF (Nastavak)
- SCAN
- Kriterijum:
- glava diska počinje sa jednog kraja diska,
- I kreće se prema drugom kraju diska,
- opslužuje zahteve
- dok ne dođe do drugog kraja diska,
- gde se kretanje glave obrće
- i opsluživanje se nastavlja
- Često se naziva i lift algoritam.
- SCAN (Nastavak)
- C-SCAN
- Obezbeđuje ravnomernije vreme čekanja od SCAN.
- Kriterijum:
- glava se kreće od jednog kraja diska do drugog.
- opslužuje zahteve po redu.
- kada dođe do kraja,
- međutim,
- on se odmah vraća na početak diska,
- bez ikakvog opsluživanja zahteva pri povratku.
- Opsluživanje cilindara
- kao kružne liste
- koja se vrti okolo
- od zadnjeg cilindra
- do prvog
- C-SCAN (Nastavak)
- C-LOOK
- Verzija C-SCAN:
- glava ide samo do poslednjeg zahteva u svakom pravcu,
- zatim odmah obrće pravac,
- i vraća na najbliži zahtev na početku diska
- i tako stalno do kraja diska
- C-LOOK (Nastavak)
- Izbor Algoritma za Disk Raspoređivanje
- SSTF je najbolji na prvi pogled
- SCAN i C-SCAN su bolji
- za sisteme
- koji smeštaju velike količine podataka na disk.
- Performanse zavise od broja i tipa zahteva
- Na zahteve za opsluživanje diska se može uticati preko metoda alokacije datoteka (allocation method).
- Algoritmi za raspoređivanje po disku
- trebaju biti napisani kao odvojeni moduli operativnog sistema,
- dozvoljavaju da budu zamenjeni sa drugim algoritmima ako je to neophodno.
- SSTF i LOOK su dobar izbor
- za default algoritam
- Upravljanje Diskovima
- Formatiranje niskog nivoa (low-level formatting) , ili fizičko formatiranje (physical formatting)
- Deljenje diska u sektore
- da bi disk kontroler
- mogao da čita i upisuje
- Korišćenje diska za čuvanje datoteka:
- Operativni sistem mora da snimi
- sopstvene strukture podataka na disk
- 1. Deljenje diska na jednu ili više grupa cilindara
- 2. logičko formatiranje ili pravljenje sistemskih datoteka
- Boot block podiže sistem (start a booting)
- Bootstrap program je smešten u ROM memoriji
- Bootstrap loader program
- Metode kao što je sector sparing
- se koriste
- da bi se otklonili loši blokovi (bad blocks).
- MS-DOS Disk Šema (FAT)
- Upravljanje Swap Prostorom
- Swap-prostor, Virtuelna memorija
- koristi prostor diska
- kao nastavak glavne memorije
- Swap-prostor može biti
- izdvojen od normalnog fajl sistema,
- može biti u zasebnoj particiji diska
- Upravljanje swap-prostorom
- 4.3BSD dodeljuje swap prostor
- kada se započne proces;
- zadržava segmente teksta (program) i segmente podataka
- Kernel koristi swap mape to da bi vodio evidenciju o korišćenju
- swap prostora
- Solaris 2 dodeljuje swap prostor
- samo kada se strana izbaci iz fizičke memorije,
- a ne kada je strana prvi put kreirana u virtuelnoj memoriji
- 4.3 BSD Text-Segment Swap Mapa
- 4.3 BSD Data-Segment Swap Mapa
- RAID
- Na početku
- N diskova = kao jedan veliki disk
- Ali…Bez velikih, previše skupih diskova
- ogroman kapacitet
- veoma visoke performanse
- veoma visoka pouzdanost
- RAID Struktura
- RAID
- 1. Povećanje performansi
- paralelizam operacija diska za velike zahteve
- više diskova radi paralelno za jedan zahtev
- konkurentni rad istovremeno za manje zahteve
- više zahteva na različitim diskovima
- 2. Povećanje pouzdanosti
- RAID obezbeđuju pouzdanost preko redundanse
- Dve osnovne šeme su:
- tehnika ogledala (mirroring)
- Informacije o parnosti (parity information)
- 3. RAID je realizovan u 7 različitih nivoa
- RAID (Nastavak)
- Nekoliko poboljšanja
- obuhvata korišćenje više diskova
- koji rade kooperativno
- Disk striping koristi grupu diskova kao jednu jedinicu
- RAID šeme
- poboljšavaju performanse
- poboljšavaju pouzdanost sistema za smeštanje
- čuvanjem redundantnih podataka
- Ogledala (mirroring) ili senčenje(shadowing) čuvaju duplikate svakog diska
- Parnost mnogo manje troši redundanse
- Konvencialno Postavljanje Podatakanaspram Stripinga
- Mirroring vs Parity
- Mirroring
- Parity
- Bez Redundanse (RAID Nivo 0)
- niska cena svake RAID organizacije
- uopšte ne koristi redundansu
- Najbolje write preformanse
- pošto uopšte ne mora da obnavlja(update) informacije o redundansi.
- Neočekivano, nema najbolje read performanse.
- Šeme redudansi koje dupliciraju podatke, kao što su mirroring, mogu bolje da izvode učitavanja(reads) preko
- selektivnog raspoređivanja zahteva na disku sa najkraćim očekivanim vremenom pozicioniranja i rotacionih kašnjenja
- Bez redundanse, svaki pojedini disk failure će rezultovati gubitkom podataka.
- RAID-0 se koriste:
- kod superkompjutera
- koji su više nego pouzdani
- gde su performanse i kapacitet
- osnovni zahtev
- Optimal Stripe Unit- RAID-0
- RAID-0
- Stripe unit- minimalna jedinica podataka=
- Gde je:
- P prosečno vreme pozicioniranja
- X prosečna brzina transfera
- L (concurrency)
- Z veličina zahteva
- N veličina reda na disku
- MTTF(RAID-0) = MTTF(disk) / N
- Mirrored - Ogledalo (RAID Level 1)
- Koristi duplo
- više diskova nego
- disk redovi bez redundanse
- svaki upis povlači 2 upisa
- najsporiji za upis (duplo =100%), ali ne uvek
- Kada se podatak čita,
- može biti pročitan sa diska
- sa kraćim pravljenjem redovima, vremenom pozicioniranja i rotacionim kašnjenjem
- Ako disk otkaže, druga kopija se koristi za opsluženje zahteva
- Mirroring se često koristi za baze podataka
- gde su raspoloživost i stopa transakcije
- mnogo važnije od efikasnosti skladištenja
- Stil Memorije ECC (RAID Level 2)
- Memorijski sistemi imaju predviđen oporavak
- izgubljenih komponenti
- sa mnogo manje štete od mirroring-a korišćenjem Hamming kodova.
- Hamming kodovi
- sadrže parnost
- za različita prekoračenja sadržaja komponenti.
- U jednoj verziji ove šeme,
- 4 diska podataka zahtevaju 3 pridodata diska,
- jedan manje od mirroring-a.
- Pošto je broj pridodatih diskova
- proporcionalan logaritmu ukupnog broja diskova u sistemu,
- efikasnost smeštanja se uvećava kada se uveća broj diskova podataka.
- Stil Memorije ECC (RAID Level 2)
- Ako se jedna komponenta otkaže,
- nekoliko komponenata parnosti će imati netačne vrednosti,
- i
- izgubljena komponenta
- važi kao zajednička za svaki netačan sadržaj.
- Izgubljen informacija se vraća
- Čitanjem drugih komponenti iz sadržaja,
- uključujući i komponentu parnosti,
- i setovanje bita koji nedostaje na 0 ili 1
- da bi se dobila odgovarajuća parnost za taj sadržaj.
- Prema tome,
- višestruki pridodati diskovi su za identifikaciju greške,
- ali
- samo jedan potreban za povratak izgubljene informacije.
- Bit-Isprepletana Parnost (RAID Level 3)Bit-Interleaved Parity
- Može da poboljša memory-style ECC raspored diskova
- zato što,
- za razliku od otkaza memorijskih komponenti,
- disk kontroleri mogu lako da otkriju
- koji disk je otkazao
- Prema tome,
- može da koristi samo jedan disk parnosti
- pre nego set diskova parnosti
- da bi povratio izgubljenu informaciju
- Stripe unit(minimalna jedinica podataka) < 512 bajtova (1bajt ili 1 bit)
- Svako čitanje zahteva pristup svim diskovima podataka
- svaki zahtev za upis pristupa svim diskovima podataka i diskovima parnosti.
- Prema tome samo jedan zahtev može biti opslužen u datom trenutku
- Bit-Isprepletana Parnost (RAID Level 3)Bit-Interleaved Parity
- Zato što disk parnosti sadrži samo parnost bez podataka,
- disk parnosti ne može učestvovati u čitanju,
- što dovodi do nešto slabijih performansi čitanja
- od
- redudansnih šema
- koje distribuiraju parnost i podatke preko celog diska (RAID5).
- RAID-3
- se često koristi kod aplikacija
- koje zahtevaju
- veliku brzinu disk transfera (bandwidth)
- a ne velike I/O brzine
- Block-Isprepletana Parnost (RAID Level 4)Block-Interleaved Parity
- N diskova podataka + 1 disk parnosti
- Sličan RAID3, ali striping unit = N disk blokova.
- Zahtevi za čitanje
- su manji od minimalne jedinice podataka (striping unit)
- pristupaju
- samo jednom disku podataka
- Zahtevi za upis
- mora da ažurira blokove podataka za zahteve
- takođe mora da proračuna i ažurira blokove parnosti
- Zato što RAID4, ima samo jedan disk parnosti,
- koji mora da se ažurira na svakoj upisnoj operaciji,
- disk parnosti može lako da postane usko grlo.
- Zbog ovog ograničenja,
- RAID-5, block-interleaved distributed-parity
- je u opštem slučaju bolji od RAID-4, block-interleaved parity
- Block-Interleaved Parity (RAID Level 4)
- Za velike upise
- koji dodiruju blokove na celom disku,
- parnost se lako proračunava
- preko ekskluzivne OR ili funkcije novog podatka za svaki disk.
- Za male zahteve upisa
- koji ažuriraju samo jedan disk podataka
- parnost se izračunava
- beleženjem
- kako se novi podatak razlikuje od starog i
- stavlja ove razlike u blok parnosti
- Mali upisni zahtevi zahtevaju 4 disk I/O-a:
- jedan za upis novog podatka
- dva za čitanje starog podatka i stare parnosti da bi proračunao novu parnost
- jedan za upis nove parnosti
- Ovo upućuje ka čitaj-promeni-upiši (read-modify-write) proceduri.
- Block-Interleaved Distributed-Parity (RAID Level 5)
- Distribuirani disk parnosti eliminiše usko grlo parnosti
- Podaci su na svim diskovima
- Bitovi parnosti na svim diskovima
- svi diskovi su jednako opterećeni pri operacijama čitanja
- RAID 5 je najbolji za:
- mala čitanja
- velika čitanja
- performanse velikih upisa bilo kog pridodatog reda diska
- Mali zahtevi upisa su i dalje neefikasni
- u poređenju sa šemama kao što je mirroring,
- zbog potrebe za izvođenjem read-modify-write operacija
- za ažuriranje parnosti
- Ova slabost u performansama
- RAID level 5 disk redova
- je bila tema intenzivnih ispitivanja.
- RAID-5
- stripe jedinica=
- 0.5K+1/4 * prosečno vreme pozicioniranja * brzine prenosa podataka * (konkurentnost-1))
- stripe jedinica=
- 0.5 * prosečno vreme pozicioniranja * brzina prenosa podataka
- MTTF(RAID-5) = MMTF2(disk) / MTTR(disk)xNx(G-1)
- N - ukupan broj diskova
- G – grupa parnosti
- MTTF(RAID-1) = MMTF2(disk) / 2xMMTR(disk)
- N = 2
- G = 2
- RAID5 Problem Performansi Malih Upisa
- Logovanje parnosti (Parity Log)
- RAID keširanje
- P+Q Redundansa (RAID Level 6)
- Parnost
- je kod redudanse
- sposoban za ispravku bilo koje greške
- Kod velikih RAID sistema se uzimaju u obzir,
- mogućnost višestrukih grešaka
- tu su potrebni jači kodovi
- Prema tome, aplikacije sa strožijim zahtevima
- zahtevaju
- jače kodove za ispravljanje grešaka.
- Jedna takva šema, nazvana P+Q redudansa
- koristi Reed-Solomon kodove
- za zaštitu
- od dva otkaza diska
- korišćenjem
- neophodan minimum od dva pridodata diska
- P+Q Redundancy (RAID Level 6)
- P+Q RAID su
- po strukturi veoma slični
- RAID sa block-interleaved distributedparnosti
- rade na sličan način
- U suštini, P+Q RAID takođe
- izvode male operacije upisa
- koristeći read-modify-write proceduru,
- očekivano je da umesto 4 pristupa disku za upis,
- P+Q RAID zahtevaju 6 pristupa disku
- usled
- potrebe za ažuriranjem obe ‘P’ i ‘Q’ informacije
- RAID (0 + 1) and (1 + 0)
- Priključivanje Diskova
- Disk može da se priključi na dva načina:
- Host attached (server) preko I/O porta
- Network attached (mrežni) preko mrežne konekcije
- Mrežni Način Priključivanja
- Storage-Area Network
- Realizavija Stabilnih Sistema
- Upis-ispred logaritamske šeme zahteva stabilni sistem
- Da bi se realizovao stabilni sistem potrebna je:
- kopija informacije
- o više nepromenljivih mediuma
- sa nezavisnim modovima otkaza
- Informacija o ažuriranju
- da bi se kontrolisano obezbedilo
- da možemo da povratimo
- stabilni podatak
- posle bilo kog otkaza za vreme transfera podataka
- Tercijalna memorija
- Osnovne karakteristike tercijalne memorije je niska cena
- Generalno, tercijalna memorija je napravljena
- korišćenjem
- izmenljivih mediuma
- Opšti primeri izmenljivih mediuma su
- floppy diskovi
- CD-ROM-ovi; DVD-ovi
- i neki drugi tipovi
- Izmenljivi Diskovi
- Floppy disk —
- tanak fleksibilan disk obložen sa magnetnim materijalom,
- upakovan u plastični omot.
- Većina je kapaciteta oko 1 MB
- slična tehnologija se koristi kod izmenjivih diskova
- čiji je kapacitet veći od 1 GB.
- Izmenljivi magnetni diskovi mogu biti
- približne brzine kao hard diskovi,
- ali se lakše oštećuju
- Izmenljivi Diskovi (Nastavak)
- Magnetno-optički diskovi
- upisuju podatke
- na čvrst disk
- obložen magnetnim materialom.
- Korišćenjem toplote lasera na disk se
- upisuju podaci
- Laser se takođe koristi za čitanje podataka.
- Magneto-optička glava
- datoteke su mnogo udaljenije
- od površine diska
- nego kod glave magnetnog diska, i
- magnetni materijal je prekriven zaštitnim (plastičnim ili staklenim) slojem.
- Optički diskovi ne koriste magnetizam;
- oni koriste specijalne materijale
- koji se menjaju laserskim svetlom.
- WORM Diskovi
- Podaci na R/W diskovima
- mogu da se menjaju iznova i iznova.
- WORM (“Upiši jednom čitaj mnogo puta”) diskovi
- Podaci mogu samo jednom da se upišu.
- Tanki aluminijumski film smešten
- između dva staklena
- ili plastična diska.
- Za upis bita,
- uređaj koristi lasersku svetlost
- za utiskivanje male rupe u aluminumu;
- Informacije mogu biti uništene ako se neprepravljaju
- Veoma su izdržljivi i pouzdani.
- Read Only diskovi, kao što su CD-ROM i DVD,
- Dolaze iz fabrike
- sa podacima koji su već upisani.
- Trake
- U poređenju sa diskom,
- trake su jeftinije i
- čuvaju više podataka,
- ali nasumičan pristup je mnogo sporiji.
- Traka je ekonomičan medium
- pod pretpostavkom da se ne zahteva brz nasumičan pristup,
- npr., backup disk podataka,
- smešta velike količine podataka.
- Instalacija velikih traka
- obično koristi robotiske menjače traka
- koji pomeraju trake izmežu uređaja i
- smeštaju slotove u biblioteku.
- stacker – biblioteka koja čuva nekoliko traka
- silo – Biblioteka koja čuva na hiljade traka
- datoteka koja se nalazi na disku može biti arhivirana na traci po niskoj ceni smeštanja; kompjuter može ponovo da ih vrati na disk za aktivnu upotrebu
- Proglemi Operativnog Sistema
- Osnovni zadaci Operativnog Sistema
- su da upravlja fizičkim uređajima i
- da predstavi abstrakciju virtuelne mašine
- Aplikacijama
- Za hard disk, OS sprovodi dve apstrakcije:
- Sirov uređaj –
- niz blokova podataka.
- Sistem fajlovi –
- Redovi čekanja OS i uređenja
- ispreplitanje zahteva nekoliko aplikacija.
- Aplikacioni Inteffejs
- Većina OS-a rukovodi izmenljivim diskovima skoro isto kao sa fiksnim diskovima
- novi kertridž je formatiran
- i prazan fajl sistem generisan na disku
- Trake se predstavljaju kao sirov medium
- aplikacija ne otvara fajl na traci
- već otvara ceo uređaj kao sirov uređaj
- Obično je uređaj za traku rezervisan samo za tu aplikaciju.
- Pošto OS ne sprovodi file sistem servis,
- aplikacija mora da odluči kako da koristi niz blokova.
- Pošto svaka aplikacija
- stvara sopstvena pravila
- kako da organizuje traku,
- traka puna podataka
- generalno može biti korišćena samo
- od strane programa koji je napravio te podatke
- Tape Drives
- Osnovne operacije uređaja za traku
- se razlikuju od
- onih na disk uređaju.
- lociranje
- pozicionira traku određen logički blok,
- (odgovara pozicionranju kod diska).
- operacija čitanja pozicije
- vraća broj logičkog bloka gde se nalazi glava
- space operacija
- omogućuje relativno kretanje
- Uređaji za trake su “append-only” uređaji;
- ažuriranje blokova u sredini
- briše sve iza tog bloka
- EOT znak se postavlja nakon bloka koji je upisan
- Imenovanje Fajlova
- Imenovanje fajlova na izmenljivim diskovima
- je naročito teško
- kada želimo da upišemo podatak na promenljivi kertridž
- na jednom kompjuteru,
- i
- kasnije koristimo taj kertridž na drugom kompjuteru
- Savremeni OS-i generalno
- ostavljaju problem imenovanja nerešen za izmenljive mediume,
- i
- u zavisnosti od aplikacije i korisnika
- shvata kako da pristupi i interpretira podatke
- Neke vrste izmenljivih mediuma (npr. CD-ovi)
- su tako dobro standardizovani
- tako da ih svi kompjuteri
- koriste na isti način
- Upravljanje Hierarhijom Skladištenja(HSM)
- Hierarhijski sistem memorije
- nastavlja
- memorijsku hijerarhiju
- iza primarne i sekundarne memorije
- za objedinjavanje tercijalne memorije —
- obično je implementirana kao jukebox traka ili izmenljivih diskova.
- obično objedinjuje tercijalnu memoriju proširivanjem sistema fajlova sa
- Malim i često korišćenim fajlovima koji su ostali na disku.
- Velikim, starim, ne aktivnim fajlovima koji su arhivirani u jukebox-u.
- HSM se obično nalazi
- u centrima sa superkompjuterima i
- drugim velikim ustanovama
- koje poseduju ogromnu količinu podataka.
- Brzina
- Dva aspekta brzine tercijalne memorije su
- Brzina disk transfera (bandwidth)
- and
- latentnost.
- Brzina disk transfera je izražena brojem bajtova po sekundi.
- Podržana brzina disk transfera –
- Prosečna brzina protoka podataka za vreme velikog transfera;
- # bajtovi/vreme transfera.
- To je brzina podataka kada tok podataka bukvalno protiče.
- Efektivna brzina disk transfera –
- Prosečna za ukupno I/O vreme,
- uključuje pozicioniranje ili lociranje, i menjanje kertridža.
- To je stvarna brzina protoka podataka.
- Brzina (Nastavak)
- Latentnost pristupa –predstavlja vreme potrebno da se locira podatak.
- Pristupno vreme za disk –
- Pomera ruku do izabranog cilindra
- i čeka za rotaciono kašnjenje; < 35 milisekundi
- Pristup traci zahteva
- namotavanje kotura trake
- dok izabrani blok ne dođe do glave;
- desetine ili stotine sekundi.
- Brzina (Nastavak)
- Generalno važi da je
- nasumičan pristup kod trake
- oko hiljadu puta sporiji od
- nasumičnog pristupa kod diska.
- Niska cena tercijalne memorije
- daje za rezultat mnogo jeftinih kertridža
- koje dele
- nekoliko skupih uređaja.
- Prenosiva biblioteka je najzahvalnija za
- smeštanje podataka koji se ne koriste često,
- zato što biblikoteka može da zadovolji
- relativno male brojeve I/O zahteva po satu.
- Pouzdanost
- Fiksni disk uređaj je
- pouzdaniji
- od izmenljivog disk uređaja ili trake.
- Optički disk je
- pouzdaniji
- od magnetnog diska ili trake.
- Kvar glave
- kod fiksnih hard diskova uništava sve podatke,
- dok kod trake ili optičkog uređaja
- najčešće
- neoštećuje podatke unutar kertridža.
- Cena
- Gavna memorija
- je mnogo skuplja
- od sekundarne (disk memorije)
- cena po megabajtu kod hard diska
- može da se poredi sa
- magnetnom trakom
- samo kada se koristi jedna traka po uređaju
- Najjeftiniji uređaji za trake i
- najjeftiniji disk uređaji
- godinama imaju iste kapacitete.
- Tercijalna memorija pruža
- smanjenje troškova
- samo kad je broj broj kertridža srazmerno veći
- od broja uređaja
- Cena po Megabajtu DRAM, od 1981 do 2000
- Cena po Megabajtu Magnetnog Hard Diska, od 1981 do 2000
- Cena po Megabajtu Uređaja za Traku, od 1984 do 2000
- Mrežne Strukture
- Pozadina
- Topologija
- Tipovi mreže
- Komunikacija
- Komunikacioni protokoli
- Robusnost
- Strategija dizajniranja
- Distribuirani Sistem
- Motivacija (4 beneficije)
- 1. Deljenje resursa
- deljenje i štampanje datoteka
- procesiranje informacija u distribuiranoj bazi
- korišćenje udaljenog specijalizovanog hardvera
- 2. Ubrzavanje Izračunavanja (computation speedup)
- 3. Pouzdanost:
- detektovanje i oporavak neispravnog sajta
- oporavak neispravnog sajta
- 3. Komunikacije: prenošenje poruka
- Mrežni Operativni Sistemi
- Korisnici su upoznati sa različitim računarima na mreži
- Pristup resursima različitih mašina se radi preko:
- Daljinskog logovanja na odgovarajuću daljinsku mašinu
- FTP: Prenošenje podataka sa daljinskih na lokalne mašine, preko File Transfer Protocol (FTP) mehanizma
- Distribuirani Operativni sistemi
- Korisnici nisu upoznati sa različitim računarima, sve se vidi kao jedan. Pristup daljinskim resursima sličan je pristupu lokalnim resursima
- 1. Migracija podataka (data migration):
- prenos podataka kao prenos cele datoteke (AFS),
- ili
- prenos samo onih delova podataka neophodnih za sledeći zadatak (NFS)
- 2. Migracija Izračunavanja (compute migration):
- transfer izračunavanja, umesto prenos podataka, kroz sistem
- 3. Migracija procesa (process migration)
- Distribuirani Operativni Sistemi (Nastavak)
- Migracija procesa: izvršava ceo proces, ili samo deo, na različitim sajtovima
- Beneficije:
- Load balancing: distribuira procese preko mreže
- Computation speedup: podprocesi se mogu izvršavati konkurentno na različitim sajtovima
- Hardware preference: izvršavanje procesa može da zahteva specijalizovani sajt
- Sotfware preference: zahtevani softver može biti samo na posebnim sajtovima
- Data access: pokreće proces daljinski, umesto prebacivanja svih podataka lokalno
- Topologija
- Računari u sistemu mogu biti fizički povezana na različite načine; ona se porede poštovanjem sledećih kriterijuma:
- Osnovna cena. Kolika je cena povezivanja različitih mesta u sistemu?
- Cena komunikacije. Koliko vremena treba da se prenese poruka od mesta A do mesta B?
- Pouzdanost. Ako je veza ili mesto u sistemu otkazalo, da li ostatak može da komunicira međusobno?
- Različite topologije su prikazane kao grafovi čiji čvorovi odgovaraju mestima gde su. Ivica čvora A do čvora B odgovara direktnoj konekciji između dva mesta.
- Sledećih 6 slika prikazuju različite topologije mreža.
- Topologija Mreže
- Tipovi Mreže
- Local-Area Network (LAN): dizajnirana da pokrije malo geografsko područje.
- Višepristupna magistrala, prsten ili zvezda.
- Brzina 10 megabita/sekudi, ili više
- Broadcast: brzo i jeftino
- Čvorovi:
- Obično stanice i/ili personalni računari
- Nekoliko(obično jedan ili dva) glavna računara-mainfrafes
- Tipovi Mreže (nastavak)
- Prikaz tipične LAN mreže:
- Tipovi Mreže (nastavak)
- Wide-Area Network (WAN): povezuje geografski šire područje.
- Veza tačka do tačke preko dugačkih linija (često iznajmljena iz telefonske kompanije)
- Brzina 100 kilobita/sekundi
- Broadcast obično zahteva više poruka
- Čvorovi:
- Obično veliki procenat glavnih računara
- Komunikacioni Procesori u Wide-Area Network-u
- Komunikacija
- Naming and name resolution : Kako procesi nalaze jedan drugog da bi komunicirali?
- Routing strategies. Kako se poruke šalju kroz mrežu?
- Connection strategies. Kako dva procesa šalju više poruka?
- Contention. Mreža je izvor koji se deli, pa kako rešiti konfliktne zahteve za njenu upotrebu?
- Odlučivanje o Imenima
- Sistemi za imenovanje u mreži
- Adresne poruke sa ID-om procesa
- Identifikacija procesa na daljinskom sistemu preko:
- <host-name, identifier> pair
- Domain name service (DNS):
- određuje strukturu imenovanja host-a,
- kao i način adresne rezolucije (Internet)
- Strategije Rutiranja
- Fixed routing: Ruta od A do B je određena unapred; putanja se menja samo ako je hardverski otkaz obustavi
- Pošto se obično bira najkraća staza, cene komunikacija su svedene na minimum
- Fiksne rute se ne mogu prilagoditi promenama
- Osiguravaju da poruke budu dostavljene u redu po kome su slate
- Virtual circuit: Putanja od A do B je određena u trajanju od jedne sesije. Različite sesije koje uključuju poruke od A do B mogu imati različite rute.
- prilagođenje mrežnim opterćenjima
- osiguravaju da poruke budu dostavljene u redu po kome su slate.
- Strategije rutiranja (nastavak)
- Dinamično rutiranje. Ruta koja se koristi za prenošenje poruke od sajta A do sajta B se bira samo kada se poruka pošalje
- Obično site šalje poruku na drugo mesto na bazi prethodne rute
- Prilagođava se opterećenjima, izbegavajući rute koje su opterećene
- Poruke mogu stići bez reda. Ovaj problem može biti ispravljen dodeljivanjem određenog broja svakoj poruci
- Strategije Konekcije
- Circuit switching: Stalni fizički link se uspostavlja u trajanju komunikacije (npr.telefonski sistem).
- Message switching: Privremeni link se uspostavlja za vreme transfera jedne poruke (npr.poštanski sistem).
- Packet switching: Poruke različitih dužina su podeljene u pakete fiksne dužine koji se šalju na određenu destinaciju. Svaki paket može imati različitu putanju kroz mrežu. Paketi moraju biti ponovo sastavljeni u poruke kada stignu.
- Circuit switching requires setup time, but incurs less overhead for shipping each message, and may waste network bandwidth.
- Message and packet switching require less setup time, but incur more overhead per message.
- Sudari
- Neka mesta mogu zahtevati istovremeni prenos informacija preko linka:
- 1. CSMA/CD
- Carrier sense with multiple access (CSMA);
- collision detection (CD)
- 2. Token passing
- 3. Message slots
- Sudari-CSMA/CD
- CSMA/CD. Carrier sense with multiple access (CSMA); collision detection (CD)
- Sajt određuje da li se još neka poruka trenutno prenosi preko linka.
- Ako dva ili više mesta počnu prenos u istom trenutku, oni će detektovati sudar i prekinuti prenos
- Kada je mreža optrećena, mogu se pojaviti mnogi sudari i zbog toga opadaju preformanse
- SCMA/CD
- se uspešno koristi u Ethernet sistemu,
- najčešćem mrežnom sistemu
- Sudari (Nastavak)
- Token passing. A unique message type, known as a token, continuously circulates in the system (usually a ring structure)
- A site that wants to transmit information must wait until the token arrives
- When the site completes its round of message passing, it retransmits the token
- A token-passing scheme is used by the IBM and Apollo systems
- Message slots. A number of fixed-length message slots continuously circulate in the system (usually a ring structure).
- Since a slot can contain only fixed-sized messages, a single logical message may have to be broken down into a number of smaller packets, each of which is sent in a separate slot.
- This scheme has been adopted in the experimental Cambridge Digital Communication Ring
- Komunikacioni Protokoli
- Fizički sloj: rukuje mehaničkim i električnim detaljima prenosa bitova
- Data-link sloj: rukuje okvirima ili delovima paketa fiksne dužine, koji uključuje svaku detekciju greške i oporavlja svaku koja se dogodila u tom sloju
- Mrežni sloj: Omogućava vezu i rutiranje paketa u mrežnim komunikacijama, uključujući rukovanje adresama odlazećih paketa, dekodiranje adresa dolazećih paketa, i održavanje puteva informacija i odgovor na promene opterećenja
- Komunikacioni Protokoli (Nastavak)
- Transportni sloj: odgovoran za low-level mrežni pristup i za transfer poruka između klijenata, uključuje deljenje poruka u pakete, održavanje redosleda paketa, kontrolu protoka i generisanje fizičkih adresa
- Sesioni sloj: implementira sesiju, ili process-to-process komunikacioni protokol
- Prezentacioni sloj: Rešava razlike u formatima između raznih mesta u mreži uključujući promenu karaktera i half duplex/full duplex (echoing)
- Aplikacioni sloj: u direktnom je dodiru sa korisnikom, radi sa prenosom datoteka, remote-login protokoli i elektronska pošta, kao i šeme za distribuirane baze podataka
- Komunikacija Preko ISO Mrežnog Modela
- ISO Sloj Protokola
- ISO Mrežne Poruke
- TCP/IP Skup Protokola
- Robustnost
- Detektovanje greške
- Rekonfiguracija
- Detekcija Greške
- Detektovanje hardverske greške je teško
- Detektovati prekid veze, handshaking protokol se koristi
- Predpostavimo da su mesto A i B uspostavili vezu
- u fiksnim intervalima,
- svako mesto će razmeniti <I-am-up> poruku
- to upućuje da su i dalje povezani
- Ako mesto A ne primi poruku fiksnom intervalu predpostavlja da :
- (a) drugo mesto nije u funkciji
- ili
- (b) je poruka izgubljena
- Mesto A može da pošalje <Are-you-up>? poruku za mesto B.
- Ako mesto A ne primi odgovor,
- može ponoviti poruku
- ili pokušati preko druge rute do mesta B
- Detekcija Greške (Nastavak)
- Ako mesto A ne primi odgovor od mesta B, ono zaključuje da je došlo do greške
- Tipovi greške:
- mesto B je u otkazu
- direktna veza od A do B je prekinuta
- alternativna veza od A do B je prekinuta
- poruka je izgubljena
- Mesto A ne može da odredi zašto je došlo do greške
- Rekonfiguracija
- Kada mesto A utvrdi da je došlo do kvara sistem se mora rekonfigurisati:
- 1. Ako je pao link-ruta od A do B, mora biti objavljeno (broadcast) za svako mesto u sistemu.
- 2. Ako je lokacija B pala, svako mesto mora biti obavešteno da usluge servisa više nisu dostupne
- Kada se veza ponovo uspostavi, informacija ponovo mora biti poslata svim lokacijama
- Problemi Dizajna
- Transparentnost: distribuirani sistemi treba da izgledaju kao centralizovani sistemi za korisnika.
- Tolerancija greške: distribuirani sistem treba da nastavi da funkcioniše posle pada bilo kog dela sistema
- Skalabilnost: Kako se zahtevi povećavaju, sistem bi trebalo lako da prihvati dodavanje novih resursa da bi zadovoljili povećanu tražnju
- Clusters:
- Kolekcija polu-autonomnih mašina
- koje se ponašaju kao jedinstven sistem.
- Primer Mreže
- Prenos mrežnog paketa između hostova u Ethernet mreži
- Svaki host ima jedinstvenu IP adresu i a odgovarajuću Ethernet (MAC) adresu.
- Komunikacija zahteva obe adrese.
- Domain Name Service (DNS) može biti upotrebljen da bi dobili sve IP adrese.
- Address Resolution Protocol (ARP) se koristi da mapira MAC adrese u IP adrese.
- Ako su hostovi na istoj mreži, ARP može biti upotrebljen.
- Ako su hostovi na različitim mrežama, izvorišni host će poslati paket ruteru koji rutira paket do odredišne mreže.
- Ethernet paket
- Distribuirani FS (Sistemi Datoteka)
- Pozadina
- Imenovanje i Transparentnost
- Udaljni Pristup datotekema
- Statefull v Stateless Services
- File Replikacije
- Primeri Sistema
- Pozadina
- Distribuirani FS (DFS):
- distribuirana implementacija
- klasičnog time-sharing modela FS (file system),
- gde više korisnika dele datoteke i memorijske resurse
- DFS upravlja skupom udaljenih memorijskih uređaja (diskova)
- Ukupan memorijski-disk prostor sa kojim upravlja DFS
- je sastavljen od različitih
- udaljenih
- manjih memorijskih prostora (diskova i mašina)
- Obično postoji korespodencija između:
- konzistetnog disk-memorijskog prostora i
- skupa datoteka.
- Struktura DFS-a
- Servis:
- softverska celina tj softver
- Koji se koristi na jednoj ili više mašina
- obavlja određene funkcije
- da obezbedi uslugu nepoznatim klijentima
- Server:
- softver koji se koristi za servis se nalazi na jednoj mašini.
- Client:
- proces koji može da pozove servis
- korišćenjem skupa operacija
- koje formulišu njegov klijentski interfejs.
- Klijentski interfejs za FS
- je formiran od
- seta primitivnih FS operacija (create, delete, read, write).
- Klijentski interfejs DFS-a
- treba da bude transparentan,
- ne sme da bude različit između lokalnih i udaljenih datoteka
- Imenovanje i Transparentnost
- Imenovanje: mapiranje između logičkih i fizičkih objekata
- Multilevel mapping:
- apstrakcija datoteke
- koja krije detalje o tome kako i i gde su
- na disku datoteke smeštene
- Transparentni DFS
- krije lokaciju
- gde unutar mreže je datoteka smeštena.
- Za datoteke koji su iskopirane na više sajtova,
- mapiranje vraća set lokacija kopija te datoteke;
- kopije i njihove lokacije
- su sakrivene.
- Imenovanje Struktura
- Transparentnost lokacija:
- ime datoteke ne pokazuje
- fizičku lokaciju te datoteke
- Karakteristike
- Ime datoteke i dalje označava specifičan, mada skriven,
- set fizičkih disk blokova
- Pogodan način za deljenje podataka
- Može da otkrije korespodentnost između
- komponenti i mašina.
- Nezavisnost lokacija:
- ime datoteke ne treba da se menja
- kada se promeni njena fizička lokacija.
- Karakteristike
- Bolje izdavajanje datoteka
- Unapređuje deljenje memorijskog prostora.
- Odvaja hierarhiju imenovanja
- od memorijske hijerarhije
- Šeme Imenovanja — Tri Osnovne Metode
- I Jedinstven system-wide name
- datoteke dobijaju imena
- kombinacijom njihovog host imena i lokalnog imena;
- Garantuje jedinstveno ime unutar sistema.
- II Dodaje udaljene direktorijume lokalnim direktorijumima
- daje izgled jedinstvenog stabla ditektorijuma;
- samo prethodno mount-ovanim udaljenim direktorijumima
- može transparentno da se pristupi
- III Sveobuhvatna integracija komponenti FS (sistema datoteka)
- Jedinstveno globalno ime strukture obuhvata sve datoteke u sistemu.
- ako server nije dostupan,
- neki proizvoljan set direktorijuma na različitim mašinama
- takođe postaje nedostupan
- Pristup udaljenim datotekema
- 1. remote access
- 2. using cache
- Pristup Udaljenim datotekema
- 1. Remote Service
- koristi rpc pozive
- za upis ili čitanje
- dela datoteke koji je klijent dobio preko mreže
- 2. Keširanje za globalno poboljšanje performansi (ali…)
- ako potrebni podatak već nije keširan
- kopija podatka se dobija od servera do korisnika
- uvek se pristupa keširanoj kopiji
- datoteke se indentifikuju sa jednom master kopijom
- MC je smeštena na jednom serveru,
- ali
- kopije(delovi) su rasuti po različitim mestima.
- Cache-consistency problem
- čuvanje keširanih kopija je koizistentno master datoteci.
- Lokacija Keša – Disk vs. Glavne Memorije
- Prednosti disk keša (DCD)
- Mnogo pouzdaniji
- Keširani podaci se čuvaju na disku
- su i dalje tu za vreme oporavka
- nije potrebno da se ponovo dovlače (fecth)
- Prednosti memorijskog keša:
- Dozvoljava da radne stanice budu bez diska
- Brži pristup podacima
- Veća memorija i može da se izvodi ubrzanje.
- Serverski keš (koji se koriste da ubrzaju disk I/O) je u glavnoj memoriji
- bez obzira gde je korisnički keš lociran;
- korišćenjem memorijskog keša na korisničkoj mašini se omogućava
- jedinstven keš mehanizam za servere i korisnike
- Cache Update Policy
- Write-through: upis kroz
- Upisivanje podataka kroz disk
- umesto u bilo koji keš.
- Pouzdano, ali slabijih performansi
- Delayed-write – odloženi upis
- modifikacije se upisuju u keš
- a zatim na server.
- Brži pristup za upis;
- neki podaci mogu biti prekucani pre nego što se upišu ponovo
- tako da oni uopšte ne treba da se upisuju.
- nepouzdan;
- neupisani podatak će se izgubiti kad god se mašina blokira.
- Variation – flushing
- keš se skenira u regularnim intervalima
- prazni blokove koji su bili modifikovani nakon poslednjeg skeniranja
- Variation – write-on-close,
- upisuje blokove podataka na server
- kada se datoteka zatvara.
- najbolje za podatke koji su otvoreni na duže vreme i često se menjaju
- Konzistencija
- Konzistencija
- Da li je lokalno keširana kopija
- podatka konzistentna master kopiji?
- Pristup iniciran od strane klijenta (Client-initiated approach)
- Klijent započinje proveru vrednosti
- Server proverava da li
- su lokalni podaci konzistentni
- master kopiji
- Pristup iniciran od strane servera (Server-initiated approach)
- Server vodi zapis,
- o svakom klijentu,
- o (delovima datoteka) datotekema koje dobije
- Kada server detektuje potencijalnu nekonzistenciju, mora da reaguje
- Poređenje Keširanja i Udaljenog Servisa
- Kod keširanja,
- lokalni keš efikasno rukovodi većinom udaljenih pristupa;
- većina udaljenih pristupa se opsluđuje istom brzinom kao i lokalni.
- Kod keširanja serverima se pristupa samo s vremena na vreme
- (pre nego za svaki upis).
- Smanjuju serverski i mrezni saobraćaj
- Povećava potencijal za scalability
- Metod udaljenog servera
- rukovodi svim udaljenim pristupima preko mreže;
- o obara performanse zbog mrežnog saobraćaju, čitanje/upis sa servera
- Total network overhead
- in transmitting big chunks of data (caching)
- is lower than
- a series of responses to specific requests (remote-service)
- Keširanje i Udaljeni Servisi (Nastavak)
- Keširanje je najbolje
- kod pristupa delovima sa ređim upisima (read dominant).
- kod čestih upisa,
- su bitni opšti troškovi
- da bi se prevazišao problem konzistencije keša.
- Keširanje je dobro za mašine sa:
- lokalnim diskovima
- velikim RAM memorijama.
- Udaljeni pristup je dobar za:
- mašine bez diska,
- sa malim memorijskim RAM kapacitetom
- Stateful File Services
- Mehanizam:
- Klijent otvara datoteku.
- Server fečuje informaciju o datoteci sa svog diska,
- smešta je na svoju memoriju
- daje klijentu identifikator konekcije
- jedinstven za klijenta i otvara datoteku.
- Identifikator se koristi za sledeće pristupe dok se ne sesija ne završi .
- Server mora da podesi informaciju u glavnoj memoriji
- koju je koristio klijent
- koji više nije aktivan
- Povećane performanse:
- Smanjeni pristup disku
- Stateful server zna:
- da li je datoteka bila otvorena za sekvencijalni pristup
- pa može da čita unapred sledeće blokove.
- Stateless File-Server
- Izbegava informacije o stanju
- pravljenjem
- nezavisnih zahteva
- Svaki zahtev
- identifikuje datoteku
- i
- poziciju u datoteci
- Nema potrebe za uspostavljanje i raskidanje veze
- operacijama open i close
- Razlika Između Stateful & Stateless Servisa
- Oporavak od otkaza:
- Stateful server gubi sve svoje memorijske informacije usled pada
- obnavlja stanje
- preko recovery protokola, zasnovanog na dialogu sa klijentom,
- i prekinute operacije
- koje su bile u toku kada se dogodio pad
- Server treba da bude svestan otkaza od strane klijenta
- zbog zahteva za popravljanje prostora
- dodeljenog za upis mesta oktazalih klijent procesa
- (detekcija i eliminacija siročića).
- Kod stateless servera,
- oporavak je skoro neprimetan.
- Oporavljeni server
- može da odgovori
- nezavisnim zahtevima bez ikakvih poteškoća
- Razlike (Nastavak)
- Nedostaci korišćenje snažnih stateless servisa:
- duže request poruke
- sporije procesiranje zahteva
- dodatna ograničenja nametnuta na dizajn DFS
- Neki okruženja zahtevaju stateful servise:
- Server koji koristi server-initiated cache validation
- Ne može da sprovodi stateless servis,
- pošto sadrži zapis
- koji datoteke su keširani od strane kog klijenta
- UNIX koristi fajl deskriptore i implicitne ofsete
- i to je stateful servis;
- serveri moraju da sadrže tabele
- za mapiranje fajl deskriptora za inode,
- i
- smeštanje konkretnog ofseta unutar datoteke
- Replikacija datoteka
- Replikacije iste datoteke
- smeštene na failure-independent mašinama
- Povećava korisnost i može da skrati vreme servisiranja.
- Šeme za imenovanje mapiraju replicirano ime datoteke za određenu repliku
- Postojenje replika bi trebalo da bude nevidljivo za više nivoe.
- Replikacije moraju da se odlikuju
- različitim imenima nižih nivoa
- Ažuriranje:
- replike datoteke označavaju isti logički smisao,
- i zbog toga
- ažuriranje bilo koje replike
- mora da se reflektuje na sve ostale replike.
- Demand replication:
- ažuriranje samo unutar primarne replike,
- onda obaveštavanje drugih replikcija o invalidaciji
- Distribuirana Sinhronizacija
- Distribuirana sinhronizacija procesa
- Međusobno Isključenje
- Atomatske Transakcije
- Konkurentne Atomske Transakcije
- Upravljanje Zastojima
- Election Algoritmi
- Distribuirana Sinhronizacija Procesa
- Happened-before relacija ( označena kao )
- Ako su A i B
- događaji istog procesa,
- i
- A je izvršen pre B,
- onda A B
- Ako je A:događaj slanje poruke jednog procesa
- B je događaj primanja poruke od strane drugog procesa,
- onda A B
- Ako A B i B C onda A C
- Povezano Vreme za Tri Konkurentna Procesa
- Imlpementacija
- Dodeljivanje vremenske oznake (timestamp) svakom sistemskom događaju
- Zahteva da svaki par događaja A i B,
- ako A B,
- onda
- vremenska oznaka za A je manja od vremenske oznake za B.
- Unutar svakog procesa Pi
- se dodeljuje logički časovnik, LC
- Logički časovnik može biti implementiran:
- kao jednostavan brojač
- koji se inkrementira
- između
- bilo koja dva uspela događaja
- izvršena unutar procesa
- (na završetak prvog)
- Implementacija
- Proces pokreće svoj logički sat
- kada primi poruku
- čija vremenska oznaka TS je veća
- od trenutne vrednosti njegovog logičkog sata
- Ako su vremenske oznake dva događaja A i B iste,
- onda su događaji konkurentni
- Možemo da koristimo identifikacione brojeve procesa
- da prekinemo veze
- i
- da stvorimo totalno uređenje (total ordering)
- Distributed Mutual Exclusion (DME)
- Pretpostavke:
- Sistem se sastoji od n procesa;
- svaki proces Pi se izvršava
- na različitom procesoru
- Svaki proces ima kritičnu sekciju
- koji zahteva međusobno isključenje
- Uslov
- Ako Pi , izvršava svoj kritičnu sekciju
- onda
- ni jedan proces Pj nemože da izvršava svoju kritičnu sekciju
- dva algoritma za DME
- Centralizovano rešenje (centralized approach)
- Distribuirano rešenje (distributed approach)
- DME: Centralizovano rešenje
- Jedan od procesa unutar sistema
- je izabran
- da koordinira pristup kritičnim sekcijama
- 1. Proces
- koji želi da uđe u svoj kritični deo
- šalje request poruku koordinatoru.
- 2. Koordinator odlučuje
- koji proces može da uđe u kritičnu sekciju,
- šalje poruku tom procesu reply poruku.
- 3. Kada proces primi
- reply poruku od koordinatora,
- on ulazi u svouj kritičnu sekciju.
- 4. Nakon izlaska iz kritičnog dela,
- proces šalje
- release poruku koordinatoru
- nastavlja sa izvršavanjm
- Ova šema zahteva tri poruke po ulasku u kritičan deo:
- request
- reply
- release
- DME: Centralizovano rešenje
- DME: Puno Distribuirano Rešenje
- Kada proces Pi želi da uđe u svoju kritičnu sekciju,
- on stvara new vremensku oznaku, TS
- šalje poruku request (Pi, TS)
- svim drugim procesima u sistemu.
- Kada proces Pj primi request poruku,
- može odmah da odgovori
- ili
- može da odloži slanje odgovora.
- Kada proces Pi primi reply poruku
- od svih ostalih procesa u sistemu,
- može da uđe u svoju kritičnu sekciju
- Nakon izlaska iz kritične sekcije,
- proces šalje reply poruku
- DME: Puno Distribuirano Rešenje
- DME: Puno Distribuirano Rešenje(Odluka)
- Odluka da li proces Pj
- odgovara istog trenutka na request(Pi, TS) poruku
- ili
- da odloži svoj odgovor se zasniva na tri faktora:
- 1. Out of CS, do not want-in
- Ako Pj ne želi da uđe u svoju kritičnu sekciju,
- on šalje odgovor odmah ka Pi
- 2. In-CS
- Ako se Pj nalazi u svojoj kritičnoj sekciji,
- onda on odlaže odgovor ka Pi.
- 3. Out of CS, want-in
- Ako Pj želi da uđe u svoju kritičnu sekciju
- ali još nije ušao,
- onda poredi svoju vremensku oznaku sa vremenskom oznakom TS.
- ako je njegova vremenska oznaka veća od TS,
- onda šalje odgovor istog trenutka ka Pi (Pi je prvi tražio)
- U suprotnom, odgovor se odlaže
- Poželjno Ponašanje Punog Distribuiranog Rešenja
- Oslobođeno od zastoja (Deadlock)
- Oslobođeno od zakucavanja (starvation)
- nakon ulaska u kritičnu sekciju
- se raspoređuje
- prema rasporedu vremenskih oznaka
- Raspored vremenskih oznaka osigurava
- ti procesi se opslužuju FIFO način:
- prvi ušao, prvi opslužen (FIFO)
- broj poruka po ulasku u kritičnu sekciju je 2 x (n – 1).Ovo je minimalan broj
- zahtevanih poruka za ulazak u kritičnu sekciju
- kad se proces ponaša nezavisno i konkurentno
- Tri Neželjene Posledice
- 1. Proces mora da zna
- identitet svih ostalih procesa u sistemu,
- što čini
- dinamičko dodavanje i uklanjanje procesa
- još komplikovanijim
- 2. Ako jedan proces otkaže,
- onda cela šema propada.
- Ovo može da bude prevaziđeno
- konstantnim monitoring-om
- stanja svih procesa u sistemu.
- 3. Procesi koji nisu ušli u svoje kritične delove
- moraju se često pauzirati (zbog slanja poruka)
- da bi osigurali ostale procese
- one koji nameravaju da uđu u kritičan deo.
- Ovaj protokol je dakle zadovoljavajući
- za male,
- stabilne setove kooperativnih procesa.
- Atomske Transakcije
- Transakcija =
- Kolekcija instrukcija
- koja čini jednu logičku funkciju
- U sistemima baza podataka
- beleže čitanje
- beleže upisivanje
- Kraj transakcije = status
- izvršeno - commit (uspešna transakcija)
- prekinuto - abort
- Atomska transakcija
- u slučaju greške =>T treba da se vrati na početak (roll-back)
- log implementacija
- log zapis za T sadrži:
- ime T
- ime zapisa za upis (R)
- stare vrednosti R (pre upisivanja)
- nove vrednosti R (nakon upisivanja)
- Atomske Transakcije-Log
- Nakon pada sistema => Atomska transakcija
- undo(T) if not exist <commit T>
- vraća na stanje R pre Ti (roll-back)
- redo (T) if exist <commit T>
- upisuje poslednje vrednosti R preko T da bi zapisao R
- Atomske Transakcije - Checkpoint
- Checkpoint = sve uspele transakcije
- nakon pada -> traži checkpoint
- za sve Tk sa <Tcommit>
- radi redo(Tk)
- za sve Tk bez <Tcommit>
- radi undo(Tk)
- Konkurentne Atomske Transakcije
- Conflict mode transakcija
- minimum dve transakcije Ti, Tj
- za isto R,
- bar jedna od njih = upis T
- Dve šeme:
- lock - protocoli za zaključavanje
- TS redosled izvršavanja
- Lock Protokol
- T će da zaključa (lock) R pre korišćenja
- zahtev za lock
- koristi R
- nakon što je odobren lock
- Otključavanje R (release a lock)
- Shared lock (samo za čitanje)
- posle odobrenog zaključavanja,
- Ti će da koristi R, samo za čitanje
- nekoliko deljenih zaključavanja istovremeno
- Exclusive lock (za upisivanje)
- posle odobrenog zakljčavanja,
- Ti može da upisuje u R
- samo jedno ekskluzivno zaključavanje istovremeno
- TS ordering
- log based + TS
- TS (timestamp protokol obezbeđuje)
- da konfliktno čitanje i upis obave u TS poretku,
- koja isključuje preklapanje konflikta
- TS funkcioniše na sledeći način:
- Svakoj transakciji dodeljujemo vremensku oznaku TS,
- a to je vreme kada počinje se izvršava.
- Takođe svakom zapisu dodeljujemo dva vremenska parametra:
- W-timestamp(Q)
- predstavlja vreme poslednje transakcije
- koja je uspešno obavila upis u Q
- R-timestamp(Q)
- prestavlja vreme poslednje transakcije
- koja je uspešno obavila čitanje iz Q
- Ova dva parametra se stalno ažuziraju
- TS protocol-reading case
- transakcija Ti pošalje zahtev read(Q).
- Moguće su dve situacije:
- 1. TS(Ti) >= W-TS(Q)
- tada je zahtev korektan
- čitanje se obavlja iz Q
- a posle toga se ažurira R-timestamp(Q)
- 2. TS(Ti)< W-TS(Q),
- T traži vrednost Q iz nekog prošlog vremena,
- a vrednost je prepisana
- čitanje iz Q odbaci
- cita se iz log zapisa
- Ili roll-back za sve koje su pogresne
- TS protocol-writing case
- transakcija Ti pošalje zahtev write(Q).
- Moguće su 3 situacije:
- 1. TS(Ti) < R-TS(Q)
- pokušava da se upiše nešto
- što je već trebalo da bude pročitano.
- rool-back za onu Tk koja je procitala pogresno, restart za Tk
- 2. TS(Ti)< W-TS(Q),
- tada transakcija pokušava da upiše
- staru vrednost za Q
- upis ide u log
- ili roll-back za pogresne, restart
- 3. U svim ostalim slučajevima
- TS(Ti) > R-TS(Q) i TS(Ti) > W-TS(Q)
- upis u Q se obavlja
- Timestamping
- Stvara jedinstvenu vremensku oznaku u distribuiranoj šemi:
- Svaki sajt generiše
- jedinstvenu lokalnu vremensku oznaku.
- globalna jedinstvena vremenska oznaka se koristi
- vezivanjem
- the unique local timestamp
- with the unique site identifier
- Use a logical clock defined within each site
- to ensure
- the fair generation of timestamps.
- Generation of Unique Timestamps
- Vremanska Oznaka – Šema Rasporeda
- Ova šema kombinuje
- centralizovanu timestamp metodu
- sa 2PC protokolom
- da obezbedi poredak
- bez velikog broja kaskadnih roll-back operacije.
- Baferuju (log) se različiti zahtevi za čitanje i upis
- a onda se izvršavaju preko timestamp poretka, koji glasi:
- reading:
- record x Ti {read(x)}
- tada read(x) mora biti odloženo
- ako postoji transakcija Tj {write(x)} i ako je TS(Tj) < TS(Ti)
- writing:
- record x Ti {write(x)}
- tada write(x) mora biti odloženo
- ako postoji transakcija Tj {read(x)} i ako je TS(Tj) < TS(Ti)
- Atomičnost Distribuiranih Sistema
- Osiguravanje atomičnosti u distribuiranim sistemima
- zahteva koordinatora transakcije
- koji je odgovoran za sledeće:
- startovanje izvršenja transakcije
- deljenje transakcije na više podtransakcija
- distribucija tih podtransakcija
- na odgovarajuća mesta za izvršenje
- Koordiniranje završetkom transakcije
- čiji rezultat može da bude:
- transakcija izvršena na svim mestima
- ili
- prekinuta na svim mestima
- Two-Phase Commit Protocol (2PC)
- Preuzima fail-stop model
- Izvršenje protokola se inicijalizuje
- od strane koordinatora
- Kada je protokol inicijalizovan,
- transakcija može da se izvršava
- na nekim lokalnim mestima
- Protokol obuhvata
- sva lokalna mesta
- na kojima se izvršava transakcija
- Primer:
- Neka T bude transakcija
- inicijalizovana na mestu Si i
- neka koordinator transakcije na Si bude Ci
- Two-Phase Commit Protocol (2PC)
- Faza 1: Dodavanje Odluka
- Ci dodaje <prepare T> zapis
- za log
- Ci šalje <prepare T> poruku
- Svim mestima.
- Mesto K:
- Kada sajt primi <prepare T> poruku,
- upravljač(menager) transakcije odlučuje
- da li može da izvrši transakciju.
- Ako ne može (neće da radi):
- dodaje <no T> zapis u log
- odgovara Ci sa <abort T> porukom.
- Ako može (hoće da radi):
- dodaje <ready T> zapis u log.
- izbacuje sve log zapise za T u stabilnu memoriju-log
- šalje <ready T>poruku do Ci
- Faza 1 (Nastavak)
- Koordinator sakuplja odgovore
- 1. Ako su svi odgovori “ready”, => odluka je commit (izvrši)
- 2. Bar jedan odgovor “abort”, => odluka je prekini
- 3. Bar jedan učesnik neuspe da odgovori
- unutar time out perioda, => odluka je prekini
- Faza 2: Zapisivanje Odluke u Bazu
- Koordinator dodaje zapis o odluci
- <abort T>
- ili
- <commit T>
- u svoj log
- izbacuje zapis u stabilnu memoriju-log
- Kada zapis stigne do stabilne memorije
- on je neopoziv
- (čak i ako se desi neuspeh prilikom upisa)
- Koordinator šalje poruku
- svakom učesniku
- obaveštavajući ga
- o odluci (commit ili abort).
- Učesnici izvode određenu radnju, lokalno.
- Faza 2: Zapisivanje Odluke u Bazu
- abort T
- koordinator šalje poruku
- svakom učesniku
- obaveštavajući ga o odluci (abort)
- commit T
- koordinator šalje poruku
- svakom učesniku
- obaveštavajući ga o odluci (commit)
- Učesnici izvode određenu radnju lokalno
- nakon završetka,
- učesnik šalje poruku
- <acknowledge T> koordinatoru Ci
- Nakon svega, Ci dodaje zapis <complete T>
- Manipulisanje Neuspesima u 2PC – Site Failure
- Site failed and recover, look at the log
- Log sadrži <commit T> zapis.
- U ovom slučaju, sajt izvršava redo(T).
- Log sadrži <abort T> zapis.
- U ovom slučaju, sajte izvršava undo(T).
- Log sadrži <ready T> zapis; konsultuje Ci
- Ako je Ci pao-otkazao,
- sajt šalje <query-status T> poruku drugim sajtovima
- Log ne sadrži kontrolne zapise koji se tiču T
- U ovom slučaju,
- sajt izvršava undo(T)
- Manipulisanje Neuspesima u 2PC – Koordinator failed Ci
- Koordinator failed Ci
- Čekanje na oporavak Ci
- Ako aktivno mesto (sajt)
- sadrži <commit T> zapis u svom logu
- T mora da se izvrši
- Svi aktivni sajtovi
- imaju <ready T> zapis u svojim logovima,
- ali bez dodatnih kontrolnih zapisa.
- u ovom slučaju moramo da sačekamo koordinatora da se oporavi.
- Blocking problem:
- T je blokiran do oporavka sajta Si
- Ako nema oporavka Ci
- sve transakcije izvršavaju undo()
- Locking Protokoli
- mogu da koriste
- 2PC locking protokol
- u distribuiranom okruženju
- menjanjem načina na koji je lock menadžer implementiran
- Šema bez replikacije
- samo jedna replika
- svaki sajt održava lokalni lock menadžer
- LM upravlja lock i unlock zahtevima
- za one stavke podataka
- koje su smeštene na tom sajtu
- Jednostavna implementacija obuhvata
- dva transfera poruka za manipulisanje lock zahtevima,
- lock request, lock acknowledge
- jedan transfer poruka za manipulisanje unlock zahtevima.
- Manipulisanje zastojima je još komplikovanije.
- Locking Protokoli - Šeme sa Replikacijama
- Metod sa jednim koordinatorom
- Metod sa više koordinatora
- Metod sa Jednim Koordinatorom
- Centralizovani lock menadžer
- Jedan lock menadžer je smešten na jedan izabrani sajt,
- svi lock i unlock zahtevi
- čine taj sajt.
- Jednostavna implementacija
- Jednostavna manipulacija zastojima
- mogućnost uskog grla
- Podložan gubitku sinhronizacije procesa
- ako jedan sajt otkaže
- Moguć pad sistema
- Metod sa Više Koordinatora
- distribuira lock meadžer funkciju
- preko
- više sajtova.
- Majority protocol – Protokol većine
- Biased protocol – Pristrasni protokol
- Primary copy – Primarna kopija
- Majority Protocol
- LM na svakom sajtu
- koji kontroliše svoje lokalne podatke i njihove replike
- kada transakcija trazi lock(Q)
- koji repliciran na n različitih sajtova
- transakcija mora da pošaje lock zahtev
- za više od n/2 sajtova
- Svaki sajt odlučuje
- hoće li da ispuni lock zahtev
- a transakcija je dobiti dozvolu
- ako većina dozvoljava
- Dobra osobina ove šeme je
- što se poštuje većina
- izbegava centralizovanu kontrola
- Međutim postoje 2 loše osobine:
- komplikovanija je za realizaciju
- zastoji se mnogo teže kontorlišu
- Biased Protocol
- .
- Ovaj metod je sličan većinskom protokolu
- ovde postoji LM za svaki sajt,
- ali deljivi i eksluzivni lock se opslužiju drugačije
- lock zahtevi za deljivi lock, favorizuju
- u odnosu na zahteve za ekskluzivni lock.
- Deljivi lock zahtevi (svaki zahtev za čitanje) su takvi
- da kada transakcija traži lock Q zapisa,
- on se upućuje samo jednom sajtu koji sadrži repliku od Q
- Ekskluzivni lock zahtevi (svaki zahtev za upis) su takvi
- da kada transakcija traži lock Q zapisa,
- on se upućuje svim sajtovima koji sadrži repliku od Q
- Šema ima prednosti u odnosu na većinski protokol
- ima manje kašnjenje (overhead) na operacije čitanja
- u odnosu na većinski protokol, jer su lock zathevi deljivi
- ali za ciklus upisa je lošiji
- jer mora da se obrati svakom sajtu koji sadrži repliku
- Primarna Kopija
- U slučaju replika,
- jedan od sajtova koji sadrzi repliku datoteke
- ce se proglasiti za njegovu primarnu repliku (primary site).
- Uvek se lock zahtev prosleđuje
- samo za primarnu repliku (tom sajtu),
- čiji će sajt obezbediti konkurentnu lock kontrolu
- Slično jednoj LM metodi
- Ali ako primarni sajt otkaže,
- tada će Q zapis da budu neraspoloživ,
- bez obzira što postoji ostale replike na različitim računarima.
- Sprečavanje Zastoja
- Raspoređivanje resursa - sprečavanje zastoja:
- definisanje globalnog raspoređivanja resursa sistema
- Zadavanje jedinstvenog broja svim resursima sistema
- Proces može da zahteva resurs sa jedinstvenim brojem
- samo ako već ne poseduje resurs sa jedinstvenim brojem većim od trazenog
- Jednostavno za implementaciju; zahteva male troškove
- Banker’s algoritam:
- označava jedan proces u sistemu
- kao proces koji sadrži informaciju
- neophodnu za sprovođenje Banker’s algoritma
- takođe se lako implementira
- ali može da zahteva mnogo više troškova
- Timestamped Deadlock-Šema Prevencije
- Svaki proces Pi je označen
- jedinstvenim brojem prioriteta
- Brojevi prioriteta se koriste za odlučivanje da li
- proces Pi treba da sačeka proces Pj;
- inače za Pi se obavi roll-back
- Šema sprečava deadlock ako:
- Za svaku ivicu Pi Pj
- u wait for grafiku,
- Pi ima veći prioritet od Pj.
- U tom slučaju krug je nemoguć
- Wait-Die Šema
- Zasnovana na non-preemptive tehnici
- Ako Pi zahteva resurs
- koji trenutno drži Pj,
- Pi je dozvoljeno da čeka samo
- ako ima manju vremensku oznaku nego Pj
- (Pi je stariji od Pj)
- Inače, za Pi se obavi roll-back (umire)
- Primer: Pretpostavimo da procesi P1, P2, i P3
- imaju vremenske oznake 5, 10, i 15 redom.
- ako P1 zahteva resurs koji drži P2, onda će P1 da čeka.
- akoP3 zahteva resurs koji drži P2, onda će P3 biti roll-backed
- Would-Wait Šema
- Zasnovana na preemptive tehnici; kopija wait-die sistema
- Ako Pi zahteva resurs
- koji drži Pj,
- Pi je dozvoljeno da čeka samo
- ako ima veću vremensku oznaku nego Pj
- (Pi je mlađi od Pj)
- Inače za Pj se obavlja roll-back (Pj je preempt od strane Pi).
- Primer: Pretpostavimo da procesi P1, P2, i P3
- imaju vremenske oznake 5, 10, i 15 redom.
- ako P1 zahteva resurs koji drži P2,
- onda će resurs biti oduzet od P2
- P2 će biti roll-back
- ako P3 zahteva resurs koji drži P2, onda će P3 čekati
- Detekcija zastoja
- wait for graf
- Centralizovano rešenje
- Puno distribuirano rešenje
- Dva Lokalna Wait-For Grafika
- Globalni Wait-For Grafik
- Detekcija Zakočenja – Centralizovano Rešenje
- Svaki sajt čuva lokalni wait-for graf
- čvorovi grafa odgovaraju
- svim procesima
- od kojih bilo ko može da drži ili zahteva
- bilo koji resurs koji je lociran na tom sajtu
- Globalni wait-for graf je onaj koji se kreira
- u jednom procesu koordinacije;
- ovaj grafik je unija svih lokalnih wait-for grafika
- Detekcija zastoja – Centralizovano Rešenje
- Postoje tri različite opcije (tačke u vremenu)
- kada wait-for graf može stvori:
- Kad god se ubaci ili izbaci nova ivica
- u neki od lokalnih wait-for grafa
- Periodično, kada se neki broj promena dogodio u wait-for graph
- Kad god koordinator treba da pozove cycle-detection algoritam..
- Mogu da se dogode nepotrebni rollback-ovi
- kao rezultat false cycles
- Lokalni i Globalni Wait-For Grafici
- Potpuno Distribuirano Rešenje
- Svi kontroleri dele podjednako
- odgovornost detektovanje zakočenja
- Svaki sajt obrazuje wait-for graph
- koji predstavlja deo ukupnog grafika.
- Uvodimo dodatni čvor Pex
- za svaki lokalni wait-for graf
- Ako lokalni wait-for grafik sadrži krug
- koji ne sadrži čvor Pex,
- onda je sistem u stanju zakočenja
- Ako ciklus sadrži cvor Pex to podrazmeva
- mogućnost zakočenja
- Da bi se saznalo da li postoji zakočenje,
- distributed deadlock-detection algoritam
- mora da se pozove
- Uvećani Lokalni Wait-For Grafovi
- Election Algoritmi
- Determine
- Gde nova kopija koordinatora
- treba da bude restart
- Preuzma jedinstveni broj prioriteta
- koji je vezan za svaki aktivni proces u sistemu,
- broj prioriteta od procesa Pi , je i.
- Preuzima jedan-na-jedan korespodenciju
- između procesa i sajtova.
- Koordinator je uvek proces
- sa najvećim brojem prioriteta.
- Kada koordinator neuspe,
- algoritam mora da izabere
- onaj aktivni proces sa najvećim brojem prioriteta.
- Dva algoritma,
- bully algorithm i ring algorithm,
- mogu da se koriste pri izboru novog koordinatora u slučaju neuspeha.
- Bully Algoritam
- Primenljiv kod sistema
- gde svaki proces može da pošalje poruku
- svakom drugom procesu u sistemu.
- Ako proces Pi šalje zahtev
- na koji koordinator nije odgovorio
- unutar vremenskog intervala T,
- pretpostavlja da je koordinator pao;
- Pi pokušava da izabere samog sebe
- kao novog koordinatora.
- Pi šalje election (biranje) poruku
- svakom procesu sa većim brojem prioriteta,
- Pi zatim čeka sa bilo koji od ovih procesa
- odgovori unutar intervala T.
- Bully Algoritam (Nastavak)
- Ako nema odgovora unutar T,
- pretpostavlja da su svi procesi
- sa brojevima većim od i pali;
- Pi postavlja sebe kao novog koordinatora.
- Ako primi odgovor,
- Pi započine vremenski interval T´,
- čeka da primi poruku
- da je proces
- sa većim brojem prioritata izabran.
- Ako nije poslata poruka unutar T´,
- pretpostavlja da proces
- sa višim brojem nije uspeo;
- Pi će da restartuje algoritam
- Bully Algoritam (Nastavak)
- Ako Pi nije koordinator,
- onda, bilo kad za vreme izvršenja,
- Pi može da primi jednu od sledeće dve poruke
- od procesa Pj.
- 1. Pj je novi koordinator (j > i).
- 2. Pj započeo biranje (j > i).
- Pi, sends a response to Pj and
- započinje sopstveni election algoritam,
- ako taj Pi nije već inicijalizovao takav izbor.
- Nakon što se neuspeli proces povrati,
- odmah počinje izvršenje istog algoritma.
- ako nema aktivnog procesa sa većim brojevima,
- povraćeni proces izbacuje sve procese
- sa manjim brojebvima
- da bi postao koordinator procesa,
- čak i ako već postoji koordinator sa manjim brojem.
- Ring Algoritam
- Primenjiv na sistemima koji su organizovani
- kao prsten (ring)
- (logički ili fizički).
- Pretpostavlja da su linkovi sjedinjeni,
- i
- da procesi šalju svoje poruke
- svom desnom susedu.
- Svaki proces sadrži aktivnu listu,
- u kojoj se nalaze svi brojevi prioriteta
- svih aktivnih procesa u sistemu
- kada se algoritam završi.
- Ako proces Pi detektuje neuspeh koordinatora,
- Stvara novu aktivnu listu koja je na početku prazna.
- zatim šalje poruku elect(i) svom desnom susedu,
- i
- dodaje broj i svojoj aktivnoj listi.
- Ring Algoritam (Nastavak)
- Ako Pi primi poruku elect(j)
- od procesa sa leve strane,
- mora da odgovori na jedan od tri načina:
- Ako je ovo prva elect koja je viđena ili poslata,
- Pi stvara novu aktivnu listu sa brojevima i i j.
- zatim šalje poruku elect(i),
- a posle nje poruku elect(j).
- 2. Ako i j,
- onda aktivna lista za Pi sada sadrži brojeve
- svih aktivnih procesa u sistemu.
- Pi može sada da determinira najveći broj
- u aktivnu listu
- da bi identifikovao novi koordinator proces.
- 3. Ako i = j,
- onda Pi proma poruku elect(i).
- Aktivna lista za Pi sadrži sve aktivne procese u sistemu.
- Pi može sada da determinira novi koordinator proces.
Add Comment
Please, Sign In to add comment