You are on page 1of 43

Sistemski softver (operativni sistemi)

Predavanje 1

Šta je operativni sistem?

Prof. Boris Damjanović

Boris Damjanović P 1.1


Programiranje
Ko sam ja?
• Profesor Boris Damjanović
– Background u programiranju
» Od ‘80-tih do danas
» Veliki broj programskih jezika

Kriptografija
» I danas intenzivno programiram
• Veoma ponosan na to
» Open srouce projekti, kriptogr. algoritmi,
ERP sistemi
– Background u operativnim sistemima
» Virtuelni kriptografski fajl sistem
» Adaptibilna primjena AES algoritma kod

OS
savremenih operativnih sistema
– Kriptografija
» Proširenja AES algoritma
» Proširenja kriptografskih načina rada

Kriptovalute
(modes of operation)
» Primjena paralelnog programiranja u kriptografiji
– Blockchain tehnologija i kriptovalute
» Cool, ali najmanje važno za ovaj kurs
Boris Damjanović P 1.2
Ciljevi današnjeg predavanja

• Šta je operativni sistem?


– Ali i – šta nije operativni sistem?
• Primjeri dizajna operativnih sistema
• Zašto je dobro proučavati Operativne sisteme?

Interaktivnost je važna!
Postavljajte pitanja!
Primjedba: Slike i slajdovi su adaptacija
1. Knjige Simić i Batavljević, Organizacija računara i operativni
sistemi
2.Knjige Anderson and Dahlin, Operating systems principles and
pracitce
3.Knjige Silberschatz (Zilberšac, njemačko prezime), Galvin, and
Gagne, Operating systems concepts
4.Kursa „Operating Systems and Systems Programming“ koji je na
Univerzitetu Berkeley izvodio profesor John Kubiatowicz
Boris Damjanović P 1.3
Trendovi u tehnologiji: Murov zakon (Moore’s Law)

Moore’s Law

2X transistor/Čip svakih 1.5 godina


zove se “Murov zakon /
Gordon Moore (jedan od
osnivača kompanije Intel) Moore’s Law”
predvidio je 1965 . da će se Mikroprocesori postaju
gustina tranzistora na čipu manji, gušći i moćniji.
udvostručiti okvirno svakih 18
mjeseci.
Boris Damjanović P 1.4
Društvena skala Informacionih sistema
• Svijet je veliki paralelni sistem
– Mikroprocesori su svugdje Massive Cluster

– Ogromna infrastruktura iza njih Gigabit Ethernet Clusters

Internet Skalabilne, Pouzdane,


Connectivity Sigurne usluge

Baze podataka
Skupljanje informacija
Remote Storage
Online Igre
Trgovina

MEMS (Micro-Electro-Mechanical
Systems) za Senzorske mreže

Boris Damjanović P 1.5


Odnos ljudi prema kompjuterima kroz vrijeme

Prema Dejvidu Kaleru / David Culler

• Danas: Mnogo procesora (CPU) / osobi!


– Blizu 100?
Boris Damjanović P 1.6
Izazov: Usporenje u Džojevom zakonu (Joy’s law)
•Ljudi obično misle na ovaj zakon kada govore o Murovom.

10000 3X
Iz knjige Hennessy and Patterson, Computer Architecture:
A Quantitative Approach, 4th edition, Sept. 15, 2006
??%/godišnje

1000
Performance (vs. VAX-11/780)

52%/godišnje

100

 Promjena u dizajnu čipa:


10
25%/godišnje više jezgara (“cores”) ili
procesora po čipu
1
1978 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 2006

• VAX : 25% / godini 1978 do 1986


• RISC + x86: 52% / godini 1986 do 2002
• RISC + x86: ??% / godini 2002 do danas
Boris Damjanović P 1.7
Mnogo jezgreni (ManyCore) čipovi: Budućnost je ovdje
• Intel 80-jezgreni čip (Feb. 2007)
– 80 jednostavnih jezgara
– Po dvije float.point jedinice
po jezgru
– Mreža slična Mesh (direkt.)
topologiji mreže
– 100 miliona tranzistora
– 65nm tehnologija
• Intel Single-Chip Cloud
Computer (Avg. 2010)
– 24 “pločice” sa po dva
jezgra/pločici
– 24-rutera za mesh mrežu
– 4 DDR3 memorijska kontrolera
– Hardverska podrška za message-passing
(interproc. komunikacija)
• 2018 godine predstavljena i9 serija 7980XE sa do 18 jezgara i 4.5
GHz te XEON W-3175X sa 28 jezgara i 4.3 GHz

• Mnogo-jezgreni (manycore) različit od više-jezgreni (multycore)


• “ManyCore” se odnosi na mnogo procesora/čipu
– 64? 128? Teško je reći egzaktno
• Kako da programiramo ovoliki broj procesora?
– Da iskoristimo 2 CPUs za video i audio
– Da iskoristimo 1 za obradu teksta, 1 za pretraživač web-a
– A preostalih 76 provjeravaju viruse??? 
• Paralelizam mora biti iskorišćen na svim nivoima
– Npr. Google na visokom nivou
» Operativni sistem ili samostalni programer na niskom nivou
Boris Damjanović P 1.8
Novi izazov: Gustina snage (Power Density)

• Ekstrapolacija Murovog (Moore’s) zakona


– Potencijalna gustina snage (power density) dostiže
ogromne nivoe!
• Nuspojava: Kapaciteti baterija postaju važni!
– Murov zakon može da postigne bolje rezultate uz
ekvivalentnu potrošnju energije
Boris Damjanović P 1.9
Denardova razmjera (Dennard scaling)

• Robert H. Dennard je još 1974. godine primjetio


– da neće biti moguće uvećavati frekvenciju (brzinu
clock-a)
– iako će se tranzistori i dalje smanjivati

• Dennard je uočio da se se
– napon i struja koju koristi jedan transistor
– ne umanjuju tolikom brzinom kolikom se brzinom
smanjuju dimenzije tranzistora

Boris Damjanović P 1.10


Denardova razmjera (Dennard scaling)

• Pojednostavljeno, Denardova razmjera (Dennard


scaling) se može predstaviti formulom
– P = alpha * CFV2

• Gdje je:
– Alpha –proteklo vrijeme
– C – kapasitansa (capacitance), pojam vezan za
površinu koja se posmatra
– F – frekvencija
– V – napon.

Boris Damjanović P 1.11


Denardova razmjera (Dennard scaling)

• Ponavljamo:
• P = alpha * CFV2

• U mjeri u kojoj proizvođači uspiju da


– smanje radni napon V,
– moći će da povećavaju frekvenciju F.

• Smanjenje napona ne uspijeva da prati moguće


uvećanje frekvencije
– Sa smanjenjem tranzistora se povećava gustina
energije po jedinici površine.

Boris Damjanović P 1.12


Denardova razmjera (Dennard scaling)

• Na slijedećoj slici ponovo je prikazan


– trend porasta frekvencija procesora sa vremenom i
– zaustavljanje ovog trenda nakon 2000. godine
• Paralelizam postaje sve važniji!

Boris Damjanović P 1.13


Organizacija računarskog sistema

• Kurs Sistemskog softvera i operativnih sistema – neraaskidivo vezan


za arhitekturu računara
• Neko vrijeme proučavamo računarske sisteme
• Računarski sistem
– Jedan ili više procesora (CPU), kontroleri uređaja koji su pomoću
sabirnice povezani sa operativnom memorijom
– Konkurentno izvršenje na CPU i uređaji koji se takmiče da dobiju
pristup memoriji

Boris Damjanović P 1.14


Funkcionalnost dolazi uz veliku kompleksnost!

Čipset Pentium IV
CPU računara
Keš
Sabirnice

Adapteri
Memorija

Kontroleri

Diskovi
U/I uređaji:
Displeji Mreže
Tastature

Boris Damjanović P 1.15


Primjer nekih tema iz Arhitekture računara

Ulaz/Izlaz i skladištenje
Diskovi,trake RAID

Nove tehnologije
DRAM Isprepleteni
Protokoli sabirnice

Koherencija,
Hijerarhija L2 Keš (Cache) Propust.moć (Bandwidth),
memorija

Drugi procesori
Latencija
Mrežna
komunikacija
L1 Keš (Cache) Adresiranje,
VLSI Protekcija,
Instruction Set Architecture
Upravljanje greškama

Pipelining, Hazard Resolution, Cjevovodi i paralelizam


Superscalar, Reordering, na nivou instrukcije
Prediction, Speculation, Pipelining and Instruction
Vector, Dynamic Compilation
Level Parallelism
Boris Damjanović P 1.16
Uvećana kompleksnost softvera

Izvor: MIT’s 6.033


course

Boris Damjanović P 1.17


Primjer: Mars Rover (“Pathfinder”) - zahtjevi
• Pathfinder hadverska ograničenja i kompleksnost:
– 20Mhz processor, 128MB DRAM, VxWorks OS
– Kamere, instrumenti, baterije,
sloarni paneli i oprema za kretanje
– Mnogo različitih procesa koji funkcionišu zajedno
• Nije lako pritinuti reset dugme (Rover je na Marsu)!
– Mora se samostalno resetovati (po potrebi)
– Mora uvijek biti u stanju da prima komande sa Zemlje
• Pojedini programi ne smiju da utiču na druge
– Ako bi jedan modul bio loše napisan (buggy)
– Ne bi smio da obori softver za pozicioniranje antene!
• Ipak, postoji mogućnost da bilo koji program padne
– Automatski restart i slanje dijagnost.informacija
– Periodična provjera (checkpoint) rezultata?
• Neke funkcije su vremenski kritične:
– Mora se zaustaviti prije nego što udari u nešto
– Mora održavati komunikaciju sa Zemljom
Boris Damjanović P 1.18
Primjer: Mars Rover (“Pathfinder”) - zahtjevi

• Mnogi od nas su vjerovatno imali sledeće iskustvo:

• Kada slušate audio ili gledate video snimak i


– istovremeno pokrenete neki drugi program
– u audio (ili video) snimku se pojavi prekid.

• Reprodukcija Audija na današnjim računarima nije


zahtjevan proces.
– Dovoljna je veoma mala količina snage za obavljanje
ovakvog zadatka.
• Ipak, loše napisan program za dodjelu procesorskog
vremena (scheduler)
– može oduzeti audio player-u i ono malo procesorske snage
koja mu je potrebna

Boris Damjanović P 1.19


Primjer: Mars Rover (“Pathfinder”) - zahtjevi

• To predstavlja svojevrsnu grešku ili bug,


– jer sistem ne dodeljuje procesorsku snagu i vrijeme
programima
» na pravi način.

• NASA-ino vozilo koje su poslali na Mars mora mnogo


bolje upravlja real-time zahtjevima.

• Kod njega se ne smije (i neće) desiti prekid


• koji može dovesti do oštećenja vozila zbog npr.
– sudara sa stijenom ili zbog pada u provaliju.

Boris Damjanović P 1.20


Kako ukrotiti kompleksnost?

• U toku dizajniranja nekog sistema dizajnerski tim


– mora voditi računa o
– zahtevima koje taj sistem mora da zadovolji.

• Oni također moraju da vode računa o tome


– kako dijelovi sistema međusobno stupaju u
interakciju i
– kako da zaobiđu negativne konsekvence interakcije.

Boris Damjanović P 1.21


Kako ukrotiti kompleksnost?

• Svaki dio hardvera je različit


– Različit CPU
» Pentium, PowerPC, ColdFire, ARM, MIPS
– Različite veličine memorije, diska, …
– Različiti tipovi uređaja
» Miš, tastatura, senzori, kamere, čitači otiska prsta
– Različita mrežna oprema
» Cable, DSL, Wireless, Firewalls,…
• Pitanja:
– Da li pogramer treba da piše jedna program koji
izvodi mnogo pomenutih aktivnosti?
» Ne. Ako bi objedinili program koji prati senzor za
očitavanje vlažnosti i program koji upravlja kretanjem, pad
u prvom bi zaustavio Rover.

Boris Damjanović P 1.22


Kako ukrotiti kompleksnost?

• Pitanja:
– Da li svaki program treba da bude napisan za svaki sklop?
» Ne, to je ogroman posao i poduplavamo resurse.

– Da li svaki program treba da ima pristup svim hardverskim


komponentama?
» Odgovor je NE, jer loše napisan program i u ovom slučaju može ozbiljno
oštetiti sistem.
» Moraju postojati jasna pravila koji program ima pravo pristupa kojoj
hardverskoj komponenti,
• a taj pristup mora da bude nadziran.
» Ako bi program imao pravo pristupa npr. hard disku na niskom nivou, on
bi mogao da očita ili izmjeni tuđe podatke, što se mora zabraniti.
» Takođe, program koji ne treba uopšte da pristupa nekom uređaju, mogao
bi greškom da ošteti taj uređaj.

– Da li pogrešno napisan program smije dovesti do rušenja kompletnog


sistema?
» Odgovor je naravno ponovo NE.

– Rješenje za sve pomenute probleme bi trebao da pruži operativni


sistem.
Boris Damjanović P 1.23
Rješenje – OS kao posrednik

• Ponavljamo: Rješenje za sve pomenute probleme bi trebao


da pruži operativni sistem.

• Za većinu sistema najbolji pristup je


– da se aplikacije obraćaju operativnom sistemu
– koji služi kao posrednik za pristup hardveru.

• Zbog toga, aplikacije se izvršavaju u virtuelnom okruženju


koje je [1]:
– mnogo ograničenije od stvarnog, da bi se spriječila šteta,
– mnogo moćnije, da bi se sakrila herdverska ograničenja i
– mnogo korisnije od stvarnog okruženja, zahvaljujući
postojanju zajedničkog skupa usluga.

Boris Damjanović P 1.24


OS kao virtuelno okruženje - uloge

• Operativni sistem kao virtuelno okruženje ima


slijedeće uloge:

• Sudija.

– Operativni sistem upravlja zajedničkim resursima


koji se nalaze na nekoj mašini.

– On može odlučiti da zaustavi jednu aplikaciju da bi


pokrenuo neku drugu.

Boris Damjanović P 1.25


OS kao virtuelno okruženje - uloge

• Iluzionista.

• Operativni sistemi pružaju nam jedan apstraktan


sloj iznad hardvera koji olakšava pisanje
aplikacija.

– Na primjer, da bi napisao program koji ispisuje


“Zdravo svijete!”, programer ne mora da zna
» koliko operativne memorije sistem ima,
» kakve su karakteristike procesora i
» koji skup asemblerskih instrukcija on poznaje,
» kakve su karakteristike pojedinih uređaja isl.

Boris Damjanović P 1.26


OS kao virtuelno okruženje - uloge

• Lijepak.

• Operativni sistem pruža skup zajedničkih usluga koje olakšavaju


dijeljenje sadržaja između aplikacija.
– Npr. neki sadržaj možemo kopirati u jednoj a nalijepiti u drugoj aplikaciji,
– dok datoteku napravljenu u jednoj aplikaciji možemo očitati u drugoj itd.

• Operativni sistemi pružaju identičan izgled (“look and feel”), kao što
su
– prozori ili dijaloški okviri, te
– olakšavaju pisanje aplikacija koje ih koriste.

• Možda najvažnija činjenica je da operativni sistemi


• dodaju apstraktan sloj iznad ulazno-izlaznih uređaja,
– tako da programeri koji pišu aplikacije
– ne moraju da pišu poseban kod za pristup tastaturi, mišu ili disku.

Boris Damjanović P 1.27


OS kao vitruelna mašina (apstrakcija)

Aplikacija
Interfejs vitruelne mašine
Operativni Sistem
Interfejs fizičke mašine
Hardver
• Na dnu se nalazi hardware (memorija, procesori, disk,
U/I…).
• Iznad njega leži operativni sistem,
• a iznad operativnog sistema nalaze se aplikacije.

Boris Damjanović P 1.28


OS kao vitruelna mašina (apstrakcija)

Aplikacija
Interfejs vitruelne mašine
Operativni Sistem
Interfejs fizičke mašine
Hardver
• Pošto operativni sistem funkcioniše direktno iznad hardvera imamo
interfejs koji se naziva interfejs fizičke mašine.

• Operativni sistem pruža novi interfejs aplikacijama. Ovaj novi


interfejs je virtuelizovan.

• On olakšava kontrolisni pristup hardveru jer pruža


– mogućnost korišćenja procedura i funkcija
– sa uniformom imenima i argumentima
» (da je prikaz hardvera kroz ružičaste naočare).

Boris Damjanović P 1.29


OS kao vitruelna mašina (apstrakcija)

Aplikacija
Interfejs vitruelne mašine
Operativni Sistem
Interfejs fizičke mašine
Hardver
• Ovaj interfejs predstavlja zaštitnu barijeru koja štiti
hardver od neovlašćenog ili slučajnog oštećenja.

• Na ovaj način smo oko aplikacija izgradili zaštitni zid


(firewall).

Boris Damjanović P 1.30


OS u funkciji prevazilaženja hardverskih
ograničenja
• Sa druge strane, hardver je ponekad limitiran.

• Dobar primjer limita je povezivanje pomoću mreže, kada se


koristi Ethernet protokol.
– Ethernet protokol koristi pakete koji mogu da budu izgubljeni.

Boris Damjanović P 1.31


OS u funkciji prevazilaženja hardverskih
ograničenja
• U toku procesa enkapsuacije, iznad ovog sloja se dodaje
mnogo bolji interfejs pod nazivom TCP/IP koji nam omogućava
– da imamo apstrakciju toka podataka (stream) i koji nam
omogućava
– da otvorimo mrežni soket (Par IP adresa – broj porta) na nekoj
drugoj mašini (npr. u Kini) i da tamo pošaljemo bajte podataka i da
svi oni stignu na odredište.

Boris Damjanović P 1.32


OS u funkciji prevazilaženja hardverskih
ograničenja
• Kada je u pitanju razvoj aplikacija, na ovaj način
– savladavamo hardversko-softverske zamke i probleme te
– dajemo programerima ono što im je potrebno.

• Takođe, možemo poboljšati


– upotrebljivost,
– uslužnost,
– sigurnost,
– pouzdanost programa itd.

• Prethodno navedeno vrijedi za svaku oblast unutar operativnih


sistema
– npr. virtuelna memorija, fajl-sistem, mreža itd.

Boris Damjanović P 1.33


Hardverski i aplikacioni interfejs

software

instruction set

hardware

• Možemo postaviti sebi dva pitanja


– Kakav je hardverski interfejs (fizička realnost)?
– Kakav je aplikacioni interfejs (uljepšana apstrakcija)?

Boris Damjanović P 1.34


Hardverski i aplikacioni interfejs

software

instruction set

hardware

• Možemo postaviti sebi dva pitanja


– Kakav je hardverski interfejs (fizička realnost)?
– Kakav je aplikacioni interfejs (uljepšana apstrakcija)?
• Profesor Peterson sa Univerziteta Berkeley koristi šaljivu sliku
koja
– prikazuje skup instrukcija koji je stabilan na period od oko 20 godina.
– U šali se kaže kako kompanija Microsoft pleše na kompaniji Intel.

Boris Damjanović P 1.35


Hardverski i aplikacioni interfejs

software

instruction set

hardware

• Treba primijetiti da se
– skup instrukcija i
– hardverski interfejs
• veoma malo mijenjaju u toku poslednjih 20 godina i na taj način
• omogućavaju da se razvoj softvera može osloniti na njih.

• Dok je hadrver bio stabilan, softver je doživljavao intenzivne


promjene.

Boris Damjanović P 1.36


Virtuelne mašine
• Karakteristike virtuelnih mašina su takve da one
– predstavljaju softversku emulaciju neke apstraktne
mašine.

• One omogućavaju da izgleda


– kao da hardver ima svojstva koja želimo ili
– kao da programi sa jedne hardverske platforme ili sa
jednog operativnog sistema
– funkcionišu na nekoj drugoj platformi ili drugom
operativnom sistemu.

Boris Damjanović P 1.37


Virtuelne mašine
• Primjeri poznatih virtuelnih mašina su VmWare i Oracle VM.

• Ponašanje OS-a kao virtuelne mašine omogućava pojednostavljenje


programiranja, na slijedeći način:
– Svaki proces se ponaša kao da ima na raspolaganju svu
operativnu memoriju u sistemu i svo vrijeme mikroprocesora na
raspolaganju.
» Međutim, virtuelna mašina služi kao medijator koji zaista
dodjeljuje resurse.

– Svaki proces se ponaša kao da ima pristup svim uređajima;

– Različitim uređajima sada je moguće pristupati pomoću istog


interfejsa;

– Interfejsi su sada mnogo moćniji.


» Na primjer umjesto da sam iscrtava prozore, korisnik ima na
raspolaganju gotov API za njihovo kreiranje.
Boris Damjanović P 1.38
Virtuelne mašine
• Ako se vratimo na primjer audio player-a
– koji sadržaj preuzima sa interneta i
– neke druge aplikacije takođe preuzima sadržaj sa interneta,

• postojanje virtuelnih interfejsa omogućava nam da


• ograničimo drugoj aplikaciji količinu mrežnog saobraćaja protok da
bi omogućili stabilno izvršavanje audio player

• Virtuelne mašine omogućavaju postojanje virtuelnog hardvera.


– Postojanje virtuelnog hardvera omogućava izolaciju greške,
» jer je mnogo bolje kada do greške dođe unutar virtuelne mašine.

• Zbog ovoga procesi ne mogu uticati na druge procese,


• a greške ne mogu da obore kompletnu stvarnu mašinu.

Boris Damjanović P 1.39


Virtuelne mašine
• Dobar primjer virtuelizacije je programski jezik Java.
– Zahvaljujući konceptu virtuelizacije Java je siguran i stabilan
programski jezik na mnogim platformama.
– Java program se prvo
» izvršava u izolovanom okruženju (sandbox)
» pa tek onda na pravom hardveru.

• Koncept virtuelizacije je veoma koristan u toku izučavanja


operativnih sistema.
• U okviru VmWare ili Oracle virtuelne mašine možemo
– na Linux operativnom sistemu
– pokrenuti Windows XP, BSD Unix ili npr. Windows 10 u svom
kontejneru,
– pri čemu svaki od njih “misli” da ima na raspolaganju kompletnu mašinu.

Boris Damjanović P 1.40


Virtual Machines (con’t): Layers of OSs
• Korisno i za razvoj OS-a
– Ako se OS sruši, to je ograničeno na jednu VM
– Pomaže pri testiranju programa na drugom OSu

Boris Damjanović P 1.41


Istraživanja na univerzitetu Berkeley

Pažnja

20 min. Pauza 25 min. Pauza 25 min. “U zaključku, ...”


Vrijeme
• 1- minuta ponavlljanje
• 20-minuta lekcija
• 5- minuta pauza
• 25- minuta lekcija
• 5- minuta pauza
• 25- minuta lekcija
• ...

Boris Damjanović P 1.42


Cilj

Interaktivnost!!!

Boris Damjanović P 1.43

You might also like