Dobra prezentacija kao osnova za dobro predavanje za inf14
Os ideo
1.
2. Aplikativni
program je
namenjen rešavanju
konkretnih
problema korisnika
i izradjuje ih sam
korisnik
(programer)
Sistemski softver je opšti naziv za svaki računarski program koji je
namenjen da omogući računaru samo pokretanje i izvršavanje osnovnih
funkcija.
Sistemski softver je zadužan za upravljanje pojedinačnim hardverskim
delovima. Sistemski softver izvršava zadatke kao što je prijenos podataka
sa memorije na disk, ispisivanja teksta na ekranu i tako dalje.
Sistemski softveri su:
• Operativni sistemi
• Drajveri
• Programski alati
• Kompajleri
• Asembleri
3. Pod pojmom računarski resursi podrazumevamo
SVE ŠTO JE PROGRAMU POTREBNO ZA RAD.
HARDVERSKI resursi
procesori, operativna memorija, ulazno/izlazni uređaji, ...
SOFTVERSKI resursi
programi, podaci (fajlovi),...
4. User 1 User 2 User n
Compile Text processor Database system
System and Application Programs
Operating System
Hardware
OS (operativni sistem) je skup sistemskih
programa koji služi za upravljanje računarskim
resursima i obezbeđuju interfejs ka korisniku.
5. Operativni sistem je obezbeđuje korišćenje HARDVERA.
Hardver računara predstavlja “sirovu” računarsku snagu, a
zadatak OS je da hardverske mogućnosti učini dostupnim i
udobnim za korisnika.
Dizajn i izrada OS je usko povezana sa hardverom kao
osnovom na kojoj se operativni sistem izgrađuje, pa zato
proizvođači hardvera često i proizvode operativne sisteme.
Korisnik vidi OS preko jezika OS (komandni jezik, kontrolno-
upravljački jezik), a većina poslova koje obavlja OS za korisnika je
nevidljiva, tj. on o njima ne mora voditi računa niti ih poznavati.
6. Operativni sistem čine :
o KERNEL (jezgro) – program koji obavlja osnovne funkcije OS i
uvek se nalazi u memoriji.
o Skup uslužnih sistemskih programa.
o SHELL (školjka) – komandni ili grafički korisnički interfejs (GUI)
prema funkcijama OS.
Prema današnjim shvatanjima operativni sistem obuhvata sve ovo i još:
• luksuzan GUI
• skup uslužnih aplikativnih programa
• programi za Internet usluge
• ...
Dakle sve ono što proizvođač isporuči pod tim nazivom,...
7. Najniži nivo svakog operativnog sistema je kernel (jezgro)
Kernel je prvi sloj softvera koji se učitava u računarsku
memoriju pri pokretanju.
Kao prvi softverski sloj, on obezbeđuje svom ostalom
softveru koji se potom učita u operativnu memoriju,
zajedničke usluge jezgra.
Osnovne zajedničke usluge koje pruža jezgro su:
pristup diskovima,
upravljanje memorijom,
upravljanje procesima
pristup ostalim računarskim uređajima.
8. Programi međusobno komuniciraju kroz aplikativni
programski interfejs (API), slično kao što ljudi sa
računarom komuniciraju kroz korisnički interfejs.
Ovo posebno važi u komunikaciji između korisničkih
programa i operativnog sistema.
Zajedničkim uslugama jezgra operativnog sistema
korisnički programi pristupaju kroz API. Time
operativni sistem omogućuje komunikaciju
između softvera i hardvera, to jest, programa i
uređaja.
9. Karakteristike OS su osobine koje OS ispoljava pri
upotrebi.
Neke od osnovnih osobina su:
o Paralelizam – istovremenost (Concurrency)
o Deljenje resursa (Sharing).
o Pouzdanost (Reliability)
o Sigurnost (Security)
o Upotrebljivost (Usability)
o Modularnost (Modularity)
10. o Paralelizam
Paralelizam u radu podrazumeva uporedno odvijanje
više procesa u računarskom sistemu. Ovu karakteristiku
poseduju oni OS koji su u stanju da odjednom započnu
rešavanje više zadataka i omoguće njihovo istovremeno
odvijanje.
Sa strane korisnika, izvršava se više programa
istovremeno, ali sa interne strane računarskog sistema
(procesora) u datom trenutku izvršava se tačno jedan
proces.
(proces je programa u stanju izvršavanja)
11. Deljenje resursa (Sharing).
Deljenje resursa posledica je paralelizma koji postoji u
računarskom sistemu. Razume se, deliti se mogu samo
resursi kojima to njihova konstrukcija dopušta.
Uređaji mogu biti:
- deljivi (sharable) kao npr. operativna memorija jer može više procesa
istovremeno da bude smešteno u njoj;
- nedeljivi (nonsharable) kao npr. disk jer ne može više procesa da
istovremeno pristupa disku (ali nijedan proces ne “drži” disk sve vreme
izvršavanja nego između dva uzastopna pristupa istog procesa može biti
proizvoljan broj pristupa drugih procesa) i
- monopolski (dedicated) su takođe nedeljivi, ali kod njih između
uzastopnih pristupa jednog procesa ne sme biti pristupa drugih procesa (npr.
Štampač, Skener, ...), tj. oni se ne oslobađaju dok proces sa njima ne završi.
12. Pouzdanost (Reliability)
Pouzdanost je karakteristika OS koja govori o učestalosti
grešaka ili zastoja. Pouzdanost sistema zavisi ne samo od
operativnog sistema, već i od spoljašnjih događaja i zahteva
poput: režima korišćenja, konfiguracije sistema, zahteva
korisnika i slično.
Nprimer kod nekih real time sistema neophodno je obezbediti
neprekidno pouzdano funkcionisanje bez havarijskih situacija ili
prekidanje kontrole pri otkazu pojedinih uređaja.
13. Sigurnost (Security)
Sigurnost sistema je osobina koja omogućava OS
da zaštiti od neovlašćenog pristupa one delove u
računarskom sistemu koje korisnik želi da zaštiti.
Najčešće se radi o zaštiti podataka i programa.
Operativni sistem mora da zaštiti i samog sebe od
ostalih programa u sistemu.
14. Upotrebljivost (Usability)
Upotrebljivost je karakteristika koja podrazumeva da se
funkcije operativnog sistema moraju što jednostavnije
koristiti.To se pre svega odnosi na komunikaciju između
OS i korisnika, odnosno na kontrolno upravljački jezik.
Međutim, pod upotrebljivošću OS podrazumevamo i druge
aspekte korišćenja kao što su: podržavanje raznih režima
rada, mogućnost izvršenja više programa, različite
mogućnosti pristupa i slično.
15. Modularnost (Modularity)
Modularnost je karakteristika koja ukazuje na
modularan pristup izgradnji samog operativnog sistema.
OS je NAPRAVLJEN (programiran) od delova – MODULA
Ova karakteristika omogućava proizvođaču da ga
modifikuje u delovima koje treba ili želi da promeni, a da
se pri tom ne menja čitav sistem, a takođe i samom
korisniku da ga nadograđuje.
16. Funkcije sistema su zadaci koje sistem mora da
realizuje.
OS su napravljeni (programirani) tako da predstavljaju skup modula.
Modul je posebna programska celina koja realizuje
jednu funkciju OS.
Pojedini moduli mogu funkcionisati nezavisno jedan
od drugog, ali i pozivati jedan drugog.
Funkcije modula se nadovezuju jedna na
drugu, a obično postoji modul koji
koordinira akcije svih ostalih.
17. Osnovne funkcije koje moraju biti rešene u svakom OS su
funkcije upravljanja resursima:
• Upravljanje procesorima
• Upravljanje operativnom memorijom
• Upravljanje perifernim uređajima
• Upravljanje podacima
18. Upravljanje procesorima
Radi sledeće:
• odlučuje kojem procesu će dodeliti procesor za
izvršavanje
• koliko dugo sme proces držati procesor,
• koliko procesa može konkurisati za procesor i sl.
19. Upravljanje operativnom memorijom
Je vežano za efikasno korišćenje operativne memorije.
Ono je neraskidivo vezano sa dodelom procesora i
upravljanjem perifernim uređajima.
20. Upravljanje perifernim uređajima
odnosi se na celokupan rad oko ulaznih, odnosno izlaznih
uređaja od njihovog dodeljivanja do izvršavanja zahteva
sa pojedinim ulazno/izlaznim operacijama.
Upravljanje podacima
odnosi se na rukovanje podacima na spoljašnjim memorijama :
način smeštanja na eksterne memorije,
pristup podacima,
upisivanje i čitanje podataka iz datoteka,
kreiranje, održavanje i brisanje datoteka,
upravljanje eksternim memorijama i drugo.
21. Zajedničko za module koji realizuju navedene
funkcije OS je:
• vođenje evidencije o resursu
• donošenje odluke o dodeli resursa
• alokaciju (zauzimanje) resursa i
• dealokaciju (oslobađanje) resursa
22. Da bi realizovao upravljanje računarskim resursima OS
koristi razne hardverske komponente računarskog sistema.
Najvažnije od njih su:
kontroleri ulazno/izlaznih uređaja
sistem prekida
časovnik realnog vremena
privilegovan način rada.
23. Kontroleri ulazno/izlaznih uređaja :
OS koristi kontrolere ulazno/izlaznih uređaja da bi realizovao I/O
operacije za korisnika. Kontroleri mogu biti:
- obični ( prenos podataka sa memorijom se obavlja preko procesora)
- sa direktnim pristupom memoriji – DMA (prenos podataka sa
memorijom zaobilazi procesor i vrši se preko DMA sklopa i njenog
izdvojenog kanala za prenos.
Kanal (channel) ima mogućnost direktnog pristupa memoriji sa jedne strane, a sa
druge je priključen na kontrolnu jedinicu (DMA) na koju može biti priključeno
više I/O uređaja.
Kanala, naravno, može biti više u sistemu, a dele se na dve vrste: selektorski (rade
sa brzim jedinicama, tj. eksternim memorijama, i selektuju jednu od jedinica koju
zatim poslužuju u određenom vremenskom intervalu) i multiplekserski (rade sa
sporim jedinicama, npr. štampačima, ali mogu simultano da poslužuju više
jedinica).
24. Prekidi:
OS reaguje na prekide (interrupts).
Obrada prekida su sastavni deo OS, tj. jezgra (potrebni
su samo delovi u jezgru jer deo prekida može obraditi
proces ili čak korisnički program; međutim, neki delovi se i
neophodno nalaze u jezgru jer mora neko da "aktivira"
proces).
25. Časovnik:
(čekanje)
To je zapravo jedan običan programabilan brojač u koji se
upisuje vrednost, a zatim (nezavisno od CPU)
dekrementira i pri dolasku na nulu izazove prekid.
Postoji i rešenje da časovnik bude sastavni deo CPU.
26. Privilegovani režim rada:
OS radi u sistemskom - privilegovanom režimu rada (sve
naredbe izvršive), a
korisnički procesi se izvršavaju u korisničkom
(neprivilegovanom) režimu rada. Tu se neke naredbe ne
izvršavaju (npr. za promenu režima rada, za rad sa
privilegovanim registrima, za I/O...) jer bi inače OS mogao
ostati bez "kontrole".
27. Postoje brojne podele operativnih sistema na osnovu različitih kriterijuma:
prema broju korisnika i/ili procesa, prema načinu obrade poslova, prema
distribuciji procesorske snage i ostalih resursa, prema nameni i funkcionalnim
osobinama.
Monokorisnički (single user):
Čine najjednostavniju klasu OS, to su OS za računare sa
samo jednim korisnikom na kojima se u datom trenutku
izvršava samo jedan program (npr. MS-DOS)
Multikorisnički monoprogramski:
U takvim OS više korisnika koristi usluge istog programa
(npr. bankarski sistemi, rezervacija avionskih karata...).
28. Multikorisnički multiprogramski:
To je najopštija klasa OS. U takvim OS različiti korisnici
izvršavaju različite programe. Izvršavanje je konkurentno
(kvaziparalelno). Znači, više programa je istovremeno
prisutno u memoriji. Multiprogramski OS je uvek
multiprocesni jer se za svaki program koji učestvuje u
multiprogramskom režimu rada formira bar jedan proces.
Nasuprot tome, monoprogramski sistem ne mora biti
monoprocesni jer se program može razbiti na delove i za
svaki od tih delova formirati proces. Zbog toga se
pojavljuju i
Monokorisnički multiprocesni OS.
29. Multiprogramiranje
je uvedeno da bi se povećala iskorišćenost resursa, a time i
celog računarskog sistema.
Suština multiprogramskog rada obuhvata paraleni rad
periferijskih uređaja i procesora (centralnog, tj. CPU). Ideja je
da se CPU dodeli drugom programu (procesu) dok
periferijska jedinica radi za neki program (proces), tj. dok on
čeka na I/O. Time možemo jedan program da paralelizujemo
u više procesa i izvršavanje će se ubrzati (ukupno vreme će
biti manje) jer dok jedan proces (deo programa) čeka, drugi
proces se izvršava. Npr. dok korisnik unosi znake sa tastature
(prilično sporo u odnosu na operacije sa diskom), može se,
pri čekanju da znak bude pritisnut, CPU koristiti za, recimo,
čitanje ili pisanje u cilju keširanja diska.
30. Savremeni OS su u velikom broju slučajeva sistemi sa
raspodeljenim vremenom (time-sharing).
To se odnosi prvenstveno na multiprogramske sisteme. Da
jedan program (odnosno jedan korisnik), ne bi uzurpirali
procesor predviđeno je kvantovanje, tj. raspodela vremena:
svakom programu, tj. procesu se dodeljuje kvant vremena.
Kada on istekne procesor se dodeljuje drugom procesu.
Ovo se realizuje korišćenjem posebnog intervalnog časovnika
u koji se upisuje kvant vremena kada proces dobije CPU. Dok
se proces izvršava, časovnik se autonomno dekrementira dok
ne dođe na nulu. Tada se generiše prekid. OS zatim dodeljuje
CPU drugom procesu. Savremeni sistemi raspodeljenog
vremena su po pravilu multiprogramski, odnosno
multiprocesni.
31. OS u realnom vremenu
Kod ovih sistema zahteva se reakcija u nekom fiksiranom
vremenskom intervalu. U suprotnom slučaju mogu biti
izgubljeni neki vitalni podaci i nastati katastrofalne posledice.
To su uglavnom sistemi koji upravljaju procesima ili
mašinama, pa je vremenski interval odgovora određen
karakteristikama procesa, odnosno mašine. Dakle, zahteva se
reakcija u zadatom intervalu koji ne mora uvek biti tako mali.
Većinom su to namenski (dedicated) sistemi. Dešava se često
da nemaju diskove nego podatke uzimaju sa mernih
uređaja. Npr. upravljanje raketama je jedan takav sistem.
32. Mrežni operativn isistemi
Mrežne operativne sisteme karakterišu računari povezani u
mrežu. Ovi računari zadržavaju relativno visok stepen
autonomije – svaki računar ima svoj operativni sistem – a u
mogućnosti su da međusobno razmenjuju podatke pomoću
odgovarajućih protokola. Operativni sistemi mogu biti
različiti, potreban je samo zajednički protokol, tj. zajednički
jezik za komunikaciju. Korisnik jednog računara može se
prijaviti na drugi, preuzeti neke datoteke itd. Korisnik zna da
nije sam u mreži, tj. svestan je različitih računara s kojima
komunicira preko mreže.
.
33. Distributivni operativn isistemi
su mnogo ozbiljnija varijanta u mrežnom okruženju, zato što osim
deljenja i migracije datoteka i štampača omogućavaju i deljenje
procesa, tj. programa. Korisnici ovaj sistem vide kao
jednoprocesorski sistem, ali se, u stvari, radi o operativnom
sistemu namenjenom za rad s više procesora koji su fleksibilno
povezani preko mreže. To znači da postoji više računara povezanih
u mrežu, ali samo jedan operativni sistem, upravlja svim resursima
u mreži. U pravom distribuiranom sistemu, korisnik ne treba da
vodi računa o tome gde su smeštene njegove datoteke ili gde se
izvršava njegov program – to je posao distribuiranog operativnog
sistema. Distribuirani operativni sistem se, dakle, ponaša kao
jedinstvena celina. Korisnik ne mora znati da je umrežen s drugim
računarima – on ceo sistem vidi kao jedan računar.
34. Da bi se upravljalo složenošću operativnih sistema i da bi se omogućilo
njihovo brže projektovanje, lakše modifikovanje i nadogradnja, bilo je
neophodno dobro osmisliti strukturu softvera. Korišćenje modularnog
pristupa kod OS čiji kodovi imaju više miliona instrukcija nije bilo dovoljno,
pa su moduli grupisani u hijerarhijske nivoe. Generalno, možemo reći da
jednostavni operativni sistemi mogu imati monolitnu strukturu, a veći
slojevitu hijerarhijsku realizaciju.
Monolitni sistemi
Jednostavni mali OS imaju monolitnu strukturu, tj.
predstavljaju skup programa koje poziva korisnički program
i koji se međusobno pozivaju, bez ikakvih ograničenja.
Korisnički programi upotrebljavaju servise operativnog sistema na sledeći način: parametri
sistemskog poziva se smeštaju na određena mesta, kao što su registri procesora ili stek, nakon čega
sledi pozivanje jezgra operativnog sistema. Ova operacija prebacuje procesor iz korisničkog režima
rada u sistemski režim rada i kontrolu predaje operativnom sistemu. U sistemskom režimu rada
dostupne su privilegovane komande kojima se ne može pristupiti iz korisničkog režima. Posle
pozivanja jezgra, operativni sistem preuzima kontrolu i na osnovu parametara poziva određuje
koju sistemsku proceduru treba pozvati. Nakon izvršenja procedure, kontrola se vraća
korisničkom programu.
35. Slojevita (hijerarhijska) realizacija
Za veće OS takva struktura je nepogodna, pa se preporučuje
slojevita struktura. Programi su grupisani u slojeve i
numerisani 0, 1, 2... Pritom, moduli sa sloja n pozivaju samo
module sa sloja n-1 (postoje i odstupanja, ali se trudi da ih
bude malo).
Primer 1: 5-fajl sistem, 4-upravljanje I/O uređajima, 3-gornji nivo upravljanja
procesima, 2-upravljanje operativnom memorijom, 1-donji nivo upravljanja
procesima, 0-hardver. Iznad vrha ovoga su korisnički programi. Sve se ovo zove
jezgro OS (kernel).
Primer 2: 4-file system, 3-upravljanje I/O uređajima, 2-upravljanje memorijom, 1-
kernel (upravljanje procesima), 0-hardver. U najjednostavnijoj varijanti jezgro OS
sadrži samo module koji upravljaju procesima. Nije svejedno šta je u jezgru jer, po
pravilu, programi jezgra rade u privilegovanom dok svi ostali programi rade u
korisničkom (neprivilegovanom) režimu.
36. Klijent-server struktura
Treći, najnoviji, pristup je klijent-server koncepcija. Funkcije OS realizuju
se pomoću procesa koji se nazivaju serveri, a korisnički programi su
klijenti (pozivaju te funkcije i dobijaju rezultate). Jezgro pritom služi samo
za organizaciju komunikacija između klijenata i servera. Dakle, OS se deli
u celine od kojih svaka servisira neku funkciju sistema kao npr. fajl
servisi, terminal servisi ili memorijski servisi
Prednosti: ovakvog pristupa su: modularnost (npr, greška u fajl serveru
onemogućava samo funkcije fajl servera, a ostatak operativnog sistema
radi normalno), prilagodljivost distribuiranim sistemima (servisi mogu
da budu obezbeđeni na udaljenim računarima) i mogućnost da se koriste
podsistemi okruženja (tako npr. Windows 2000 može da izvršava
aplikacije napisane za druge OS).
.