920 likes | 1.32k Views
OPERACIJSKI SUSTAVI. Predavanja: 15 x 2 sata = 30*0.75 = 22.5 sati ( 0.75 ECTS) Vježbe: 15 x 2 sata = 30*0.75 = 22.5 sati ( 0.75 ECTS) Samostalno učenje: 45 sati ( 1 ECTS) Literatura: 30 sati ( 1 ECTS ) Vježba na računalu: 30 sati ( 1 ECTS ) Ukupno: 150 sati = 5 ECTS.
E N D
OPERACIJSKI SUSTAVI Predavanja: 15 x 2 sata = 30*0.75 = 22.5 sati ( 0.75 ECTS) Vježbe: 15 x 2 sata = 30*0.75 = 22.5 sati ( 0.75 ECTS) Samostalno učenje: 45 sati ( 1 ECTS) Literatura: 30 sati ( 1 ECTS ) Vježba na računalu: 30 sati ( 1 ECTS ) Ukupno: 150 sati = 5 ECTS
Uvod: što je operacijski sustav i povijesni razvoj Računalni sustav Upravljanje procesima Upravljanje memorijom Sustav I/O Distribuirani sustavi Zaštita i sigurnost Često korišteni operacijski sustavi: UNIX, LINUX, WINDOWS NT Sadržaj predavanja
1. UVOD • Što je operacijski sustav • Jednostavni “Batch sustavi” • Višeprogramski sustavi • Sustavi s podjelom vremena • Sustavi osobnih računala • Paralelni sustavi • Distribuirani sustavi • Sustavi u realnom vremenu
1.1 Što je operacijski sustav ? • Operacijski sustav je računalni program koji posreduje između korisnika i računalnog sklopovlja (hardware). • Namjena: osigurati radno okruženje u kojem korisnik može izvoditi svoje korisničke programe (aplikacije) na pogodan i učinkovit način. • Prateći razvoj operacijskih sustava od prvih “priručnih” do suvremenih, stjećemo uvid u to što i kako operacijski sustav radi. • Operacijski sustav • Jamči korektan rad računalnog sustava • Sprečava međudjelovanje (interferiranje) korisničkih programa • Osigurava određene servise korisničkim programima, kako bi programiranje ( izrada programa) bilo što jednostavnije i brže.
Komponente računalnog sustava User 1 User 2 User 1 User 2 kompajler asembler tekst editor Baza podataka Sistemski i aplikacijski programi Operacijski sustav Računalno sklopovlje
Korisnici, sklopovlje, korisnički program[users, hardware, application software] • Korisnici: ljudi, strojevi i drug aračunala koji nastoje uporabom računalnog hardvera riješiti svoje različite orobleme • Računalno sklopovlje ( hardver): univerzalna elektronička naprava koja nije pripremljena rješavati konkretan korisnikov problem. Zbog svoje univerzalnosti omogućava visokoserijsku proizvodnju -> niske cijene • Korisnički program: instruira računalno sklopovlje kako će rješavati konkretan korisnički problem. • Operacijski sustav: upravlja i usklađuje uporabu računalnog hardvera od strane različitih korisničkih programa i različitih korisnika. OS je poput vlade jedne države – ne radi ništa “korisno”, ali ostvaruje okruženje i preduvjete za normalno i nesmetano odvijanje drugih “proizvodnih procesa” (od kojih su neki korisni).
OS upravlja • Strojnim resursima: I/O, memorijom, CPU, strojnim vremenom • Procesima: “istovremeno” izvođenje više procesa • Podacima: smještanje u radnoj memoriji i jedinicama za masovnu pohranu podataka
Korisnički program Buffer Tipkovnica Tiskalnik Primjer 1: Tipkovnica Primjer 2: Tiskalnik Korisnički program Buffer
Primjer 2: Memorija Korisnički Program I I II Korisnički Program II Memorija
Upravljanje procesima • Program: skup instrukcija koje definiraju ponašanje računalnog sklopovlja (hardware-a) f Izlazi Y Ulazi X Y = f( X ) Program preslikava programske ulaze u programske izlaze Proces: program u izvođenju. Posjeduje vremensku komponentu. Promatra se kao niz instrukcija, te stanjem ulaza i izlaza prije, te poslije izvođenja.
S0 = skup svih memorijskih lokacija pridruženih procesu prije izvođenja: početno stanje Sn = skup svih memorijskih lokacija pridruženih procesu poslije izvođenja: konačno stanje S0 -> S1 -> S2 -> ... Sn S1 ... Sn-1: međustanja procesa
Operacije nad procesima • Stvori • Izvodi • Čekaj • Signaliziraj • Suspendiraj
Upravljanje podacima • Memorijske strukture podataka • Datoteke ( files): zapis podataka na medijima za masovnu pohranu ( diskovi, diskete, CD/DVD, trake Povezuje strukture podataka opisane imenom, tipom, vremenom stvaranje, vremenom zadnje promjene, pravima pristupa itd s fizičkim zapisom na mediju. Direktorij ( folder): posebna datoteka koja evidentira druge datoteke Stablo direktorija: definiran odnos roditelj - dijete
Operacije nad datotekama • Stvori ( kreiraj) • Piši • Čitaj • Izvodi • Uništi ( briši)
Povijesni razvoj OS • Jednostavni “batch” sustav • Spooling • Višeprogramski batch sustav • Sustav s podjelom vremena • Sustavi osobnih računala • Paralelni sustavi • Raspodijeljeni (distribuirani) sustavi • Sustavi u realnom vremenu
1. Jednostavni “batch” sustavi • Razdoblje: 1945 – 1950 • Računalna konfiguracija: CPU, radna memorija s magnetskim jezgricama • ULAZ: čitač kartica • IZLAZ: linijski tiskalnik, bušač kartica
X X X Kartice Kartice Kartice Tiskalnik Rezidentni OS Posao • Predaja bušenih kartica • “Poslovi” ( jobs) čekaju na stolu • Svrstavanje poslova prema srodnosti, tj. I/O operacijama i resursima koji se za njih montiraju • Postavljanje posla u čitač kartica • Čitanje kartica: 300-1200 u minuti ( 20 u sekundi ) • Obavljanje posla: 20.000 instrukcija u sekundi ( 1000 puta brže nego priprema čitanjem kartica) • Tiskanje rezultata: 120 linija u minuti ( 2 linije x 132 znaka u sekundi ) • Poruka o grešci na papiru
X Kartice Tiskalnik 2. Spooling • S – Simultaneous • P – Peripheral • O – Operation • On – On • L - Line Disk CPU
ALGORITAM UČITAVANJA KARTICA Kartica = 0 DOK postoji kartica u čitaču ČINI Učitaj karticu u memoriju AKO JE @RUN kartica TADA ZA SVAKU Oprema U potrebna oprema DOK NIJE montirana ČINI Traži montiranje Čekaj znak za nastavak Pozovi Izvođenje posla Kartica = Kartica +1 Slijedeća kartica
3. Višeprogramski batch sustav RezidentniOS Job 1 Job 2 Job 3 Job 4 Memorija
Posao =0: Kartica = 1 DOK u čitaču postoji kartica ČINI učitaj karticu u memoriju Kartica = Kartica +1 AKO JE @RUN kartica TADA Spremi posao na disk Posao = Posao + 1 Kartica = 0 Broj poslova = Posao Posao = 0 DOK JE Posao < Broj poslova ČINI Učitaj POSAO u memoriju ZA i = 0 DO Potrebna oprema AKO NIJE Montirana TADA Traži montiranje opreme Čekaj znak za nastavak Posao = Posao + 1
Rezidentni OS Disk buffer Printer buffer Posao 1 Posao 2 Posao 3 Tiskalnik Disk Brzina CPU = 1000 x brzina diska Koristi se mehanizam DMA za pristup I/O jedinicama: disku, tiskalniku DMA CPU IRQ
CPU izvodi posao 1000 puta brže, nego čitaj/piši operacije prema vanjskim jedinicama • Primjer izračuna pristupnog vremena disku ( Disk Access Time ): ~ 8 ms • Želi se izbjeći čekanje poslova zbog sporih I/O operacija • Posao čita / piše u radnu memoriju “buffer” i time su s aspekta posla I/O operacije završene • Asinkrono se izvodi prijenos podataka iz buffera prema disku / tiskalniku • Ako je buffer pun kod piši, ili prazan kod čitaj, proces mora čekati dobavljanje podataka • Za to vrijeme se može izvoditi drugi posao IRQ: sporiji, jer se na stek sprema stanje registara, kako bi bio osiguran povratak nakon obavljene prekidne usluge DMA: odvija se “krađom ciklusa”. Izvođenje glavnog procesora se zaledi, i za to vrijeme memoriji pristupa DMA procesor
Svaki korisnik ima na raspolaganju sustav jedan vremenski odsječak, npr. 10 ms • Kada istekne vrijeme od 10 ms, timer prekida ( nemaskirani IRQ ) glavni procesor • Stanje CPU registara se sprema u Tablicu procesa • U CPU registre se učitavaju vrijednosti procesa koji je na redu izvođenja • Mogući problemi: interferencija procesa • Memoriji dodijeljenoj procesu ne mogu pristupati drugi procesi • Mogući problemi: interferencija ( međuutjecaj ) procesa • Primjer: Dva procesa čitaju disk i ispisuju na tiskalniku • Svaki proces ima isključivo pravo korištenja tiskalnika • Koristi tiskalnik sve dok ne završi • Mogući problem: A dobije disk i čeka tiskalnik, B dobije tiskalnik i čeka disk
5. Sustavi osobnih računala • Jednokorisnički • Jednoprogramski • Jednostavni procesi koji ne rade u privilegiranom modu • Program može neograničeno pristupati cijeloj memoriji • Korisnik ima neograničena prava pristupa datotekama
6. Paralelni sustavi • Usklađuje rad više procesora • Procesori dijele: memoriju, sabirnicu, takt • Svaki proces -> vlatiti procesor • Jedan program može izvoditi više procesora • Bitno usklađivanje izvođenja ( npr. Kvadratna jednadžba ) • Redudantnost procesora: u slučaju kvara jednog procesora, sustav radi, samo sporije • N – procesora ne ubrzava sustav N puta, nego nešto manje, jer se dio vremena troši na usklađivanje rada. • UNIX podržava 64, a Windows 8 CPU
7. Distribuirani sustavi • Više mrežno povezanih računala • Svaki CPU ima vlastitu memoriju • Komunikacija putem mreže 1 Gbit/sec • Klaster / node • Dijeljenje resursa • Osigurana redudantnost sklopovlja • Uravnoteženje (balans) opterećenja • Upravljač (kontroler) domene • Pristup datotekama na različitim sustavima pod kontrolom upravljača domene • Sustav aktivnih direktorija • Repliciranje datoteka • Primjer: “web farme”
8. Sustavi u realnom vremenu • Vremenska usklađenost izvođenja • Podražaji stižu od vanjskih procesa • Akcija prema procesu • OS osigurava interakciju vanjskog procesa i računala u zajamčenim vremenskim intervalima • Definira se vremensko ograničenje “time constraint” unutar kojeg moraju biti generirani programski izlazi • Program je korektan, ako generira definirane / očekivane izlaze za sve ulaze, te ako ih generira unutar vremenskog ograničenja
2. Računalni sustav • Operacije računalnog sustava • I/O ( Ulaz / Izlaz ) • Spremanje podataka • Memorijska hijerarhija • Hardverska zaštita
2.1 Operacije računalnog sustava CPU disk controller printer controller tape kontroler memory Controller memory Suvremeni računalni sustav
1. Von Neumanov model računala: programi i podaci dijele zajedničku memoriju 2. CPU : centralna procesna jedinica obavlja: a) Dohvat strojne instrukcije ( kod operacije i operandi ) b) Dekodiranje strojne instrukcije c) Dobavljanje opeanada d) Izvršavanje operacije • Suvremeni računalni sustavi su organizirani oko prekidnog sustava “interrupt driven”. • Ako: • niti jedan korisnik nije aktivan, pa mu ne treba “odgovarati” • nema I/O opreme za opsluživanje • nema procesa za izvođenje • Računalni sustav miruje, čekajući događaj na koji mora odgovoriti.
2.2 Struktura I/O 2.2.1 Prekidni prijenos • Računalo obavlja “glavni” posao P1 • Dobija zahtjev za opsluživanje vanjske jedinice, tzv. “I/O” transfer • Završava tekuću strojnu instrukciju • Sprema procesorske registre na složaj ( stack ) • Uzima u programsko brojilo početnu adresu prekidnog programa • Ako više uređaja može aktivirati istu IRQ liniju, nalazi koji je uređaj zatražio prekid • Izvršava potprogram za posluživanje prekida • Obnovi procesorske registre, vraćajući ih sa složaja • Vraća se na izvšavanje glavnog “prekinutog” programa Glavni posao IRQ I/O prijenos Glavni posao
2.2.2 DMA prijenos DMA = Direct memory access • Postojanje posebnog specijaliziranog procesora za prijenos podataka • Glavni i specijalizirani procesor moraju izmjenjivati podatka preko buffera • Glavni procesor upiše podatke u buffer i inicira ( probudi ) DMA procesor • Definira: adresu i veličinu buffera u memoriji, smjer prijenosa podataka ( na disk ili sa diska ), koordinate bloka podataka na vanjskoj jedinici • Kako glavni i DMA procesor ne mogu istovremeno pristupati istoj memoriji, jer bi došlo do interferencije signala, pristup je usklađen podjelom / krađom ciklusa
2.3 Spremanje podataka 2.3.1 Glavna memorija Glavna memorija i procesorski registri su jedine lokacije za spremanje podataka kojima CPU može direktno pristupati. Podaci na vanjskim jedinicama, moraju se stoga “dobaviti” u glavnu memoriju Prednost: velika brzina pristupa podatku, reda veličine nanosekunde Nedostatci: • Cijena • Ovisnost podataka o el. napajanju ( tzv. Ishlapivost podataka )
2.3.2 Magnetski disk • Vanjska jedinica • Sekundarana jedinica za masovnu pohranu podataka • Radi na principu magnetizacije fragmenata meko-mekomagnetskog materijala Sastoji se od: • Magnetske ploče ( plate ) • Osovina • Elektromotor • Aktuator ( pozicioner magnetskig glava ) • Magnetski rukavac • Magnetska glava • Princip rada: magneticacija elementarnog magnetića na magnetskoj ploći • Logička organizacija: “glava” ( ploča), traka, sektor
Prednost: neovisnost podataka o napajanju Relativno visok kapacitet i niska cijene Nedostatak: • Brzina pristupa ( milisekund, dakle milion puta sporije nego podacima u primarnoj memoriji • Gubitak podataka za slučaj kvara jedinice
Hijerarhija jedinica za pohranu podataka procesorski registri cache glavna memorija elektronički disk magnetski disk optički disk magnetska traka
2.4.1 Keširanje • Važno u računalnim sustavima • Brži pritup • Podatak se najprije traži u kešu • Ako nije u kešu, traži se njegovo dobavljanje ( primjer sekvencijalne datoteke) 2.4.2 Koherencija i konzistencija Ista “varijable” postoji u istom momentu na više različitih lokacija s, moguće različitim vrijedostima. • Diks • Glavna memorija • Cach • Procesorski registri Problem u više-procesnim sustavima, gdje treba tražiti varijablu prema memorijskoj hijerarhiju
2.5 Hardverska zaštita • Višekorisnički sustav omogućava izvođenje programa više “nepoznatih” korisnika. • Ekonomska nužda podjele strojnih resursa • Svaki korisnik ima jamstvo pune privatnosti • Njegovim podacima mogu pristupati drugi korisnici samo u onoj mjeri u kojima im on to dozvoli • Njegovi programi neće čekati na izvršenje duže, nego li programi ostalih korisnika • Dakle, korisnik ima dojam da radi sam na nešto sporijem hardveru
Rad u dvojnom / privilegiranom modu • Obični korisnički program • Supervisor ( operacijski sustav ) • Zaštita I/O operacija: obavlja ih isključivo OS • Zaštita pristupa memoriji: pod kontrolom MMU Korisnik dobije memorijski segment definiran početnom apsolutnom adresom i veličinom segmenta MMU prevodi relativnu adresu korisnikova programa u apsolutnu adresu, provjeravajući kod svake instrukcije da je u korisnikovom memorijskom području. Pokušaj pristupa memoriji izvan dodijeljenog opsega dovodi do prekida ( sistemska greška: “pristup zaštićenoj memoriji” ) • Zaštita vremena: timerski prekid kojeg korisnik ne može maskirati
3 Struktura operacijskog sustava • Upravljanje procesima • Upravljanje glavnom memorijom • Upravljanje datotečnim sustavom (file system) • I/O sustav • Upravljanje virtualnom memorijom(“secondary storage”)
3.1 Upravljanje procesima • Kreiranje korisničkog i sistemskog procesa • Uništavanje procesa • Suspendiranje i oporavak procesa • Sinkronizacija dva ili više procesa • Komunikacija – izmjena podataka između dva ili više procesa • Rješavanje problema potpunog zastoja
3.2 Upravljanje glavnom memorijom • Ažuriranje informacije: koji su dijelovi memorije zauzeti i od strane kojih procesa • Koje procese, te koje njihove “dijelove” učitati u memoriju kada je memorija slobodna • Alociranje ( dodjela ) i dealociranje memorije procesima prema potrebi
3.3 Upravljanje datotekama(file system) • Kreiranje datoteke • Uništavanje ( brisanje ) datoteke • Kreiranje i uništavanje imenika (direktorija) • Primitive za manipulaciju datotekama i imenicima • Mapiranje datoteka i vanjskih spremnika • Back-up datoteka
4 I/O sustav • Upravljanje memorijom uključivo:- buffering- kešing ( cache )- spooling • Opći “device driver” interfejsi • Driveri za specifične uređaje
5 Upravljanje virtualnom memorijom • Upravljanje slobodnim prostorom • Alociranje segmenata • Raspoređivanje diska
Hardware Opća struktura OS • Dixtra 1967. Korisnički program Ljuska ( shell) OS OS razine Sklopovlje
Princip: Razina R(n) temelji svoje operacije na pozivima funkcija i procedure iz razine R(n-1) U pravilu nema preskakanja razina, dakle R(n) ne poziva funkcije iz R(n-2) direktno, nego samo preko razine R(n-1) Time se osigurava izmjenjivost pojedinih razina, a da se pri tome izbjegnu bugovi ( usporediti tzv. “DLL HELL”
Struktura DOS sustava Korisnički program Rezidentni sistemski program MS-DOS device drivers ROM BIOS device drivers