1. Predavanje
Download
Report
Transcript 1. Predavanje
I Glava: Istorijat i vrste OS
1.1
1.2
1.3
1.4
1.5
Istorijat razvoja računara
Istorijat razvoja operativnih sistema
Definicija i funkcija OS
Karakteristike OS
Opšti pregled strukture operativnih sistema
1
1.1 Istorijat razvoja računara
Računari prve generacije su nastali od 1945-1955, ogromnih dimenzija
(20.000 cevi) i veoma skupi. Koristila ih je uglavnom vojska. Bili su jako
spori, programirlo se mašinskim jezikom, dok su simbolički jezici i
operativni sistem u to vreme bili nepoznati.
Drugu generaciju činili su tranzistori (1955-1965), pa su računari postali
manji, pouzdaniji i jeftiniji. Osim vojske, kupovale su ih velike
kompanije i univerziteti. Programiralo se u Fortranu, na bušenim
karticama, a operativni sistem nije postojao
Računari treće generacije (1965-1980) se prave od intergrisanih kola.
Početkom 60-tih prave se dve vrste računara, jedna brža verzija (kao
IBM 7094) i jedna slabija (kao IBM 1401), a operativni sistem je UNIX
U četvrtoj generaciji računara (1980-1990), prvi put se pojavljuju
personalni računari. Razvoj personalnih računara započinje pojavom
LSI čipova, to jest čipova visokog stepena integracije (eng!. Large Scale
Integration). Računari su bili dovoljno jeftini, tako da su ih mogli
priuštiti i više odseka iste firme ili univerziteta, dok su personalni
računari postali dovoljno jeftini da ih mogu imati i pojedinci. Operativni
sistemi u tom trenutku su UNIX i MS DOS
2
1.2 Istorijat razvoja operativnih sistema
Računari prve i druge generacije nisu imali operativne sisteme.
Računari treće generacije koriste UNIX i MULTICS, od kojih u opticaju
do današnjih dana ostaje UNIX, dok je MULTICS za to vreme bio isuvise
napredan i računarske konfiguracije nisu mogle da ga isprate.
Sa pojavom personalnih računara, razvija se i operativni sistem MS
DOS (Microsoft Disk Operating System ), koji se ujedno smatra kao prvi
operativni sistem personalnih računara.
Potom slede operativni sistemi razvijeni od strane Microsofta: MS-DOS,
Xenix,
Windows 1.0, 2.0, 3.0 i 3.1,
Windows for Workgroups 3.11,
Windows NT,
Windows 95, 98,
Windows Millennium Edition (ME), Windows 2000,
Windows XP, Windows Server 2003,
Windows CE, Windows PPC, Windows Vista,
Windows 7
3
1.2 Istorijat razvoja operativnih sistema UNIX i Linux
UNIX je sada zaštićeno ime u vlasništvu organizacije Open Group
(www. apengraup. arg), koja je definisala standard POSIX (Portable
Operating System Inteiface) u cilju povećanja kompatibilnosti raznih
vrsta UNIX sistema. Svaki proizvođač svoju UNIX distribuciju naziva
jedinstvenim imenom: Solaris (Sun Microsystems), AT&T UNIX, AIX
(IBM), HP-UX (Hewlett-Packard), Tru64UNIX (Compaq). Iako je većina
UNIX sistema osmišljena da radi uglavnom na određenoj arhitekturi sa
određenom klasom procesora (najčešće su to procesori matične
kompanije)
Jedna od poslednjih varijanti operativnih sistema UNIX, čiji je razvoj
započeo Linus Torvalds 1991. godine, na Univerzitetu u Helsinkiju, jeste
Linux.
Linux je zbog svoje koncepcije stabilnog ajeftinog operativnog sistema
doživeo veliku ekspanziju i popularnost.
Može se konstatovati da današnji Linux podržava širi spektar procesora
i računarskih arhitektura od svih drugih operativnih sistema.
4
1.3 Definicija i funkcija
OS
Operativni sistem objedinjuje razonodne delove računara
u skladnu celinu i sakriva od korisnika detalje
funkcionisanja ovih delova koji nisu bitni za korišćenje
računara. Operativni sistem radi sledeće:
- upravlja programima, podacima i delovima od kojih se
računar sastoji (procesor, kontroleri, radna memorija), s
ciljem da oni budu što celishodnije upotrebljeni;
- obezbeđuje pristupačno radno okruženje za krajnjeg
korisnika računara, tako što računar kao mašinu koja
rukuje bitovima, bajtovima i blokovima pretvara u
mašinu koja rukuje datotekama i procesima.
Operativni sistem je skup sistemskih programa koji
posreduje između korisnika računara i računarskog
hardvera, a cilj mu je da:
- izvršava korisničke programe i olakša rešavanje
korisničkih problema;
- korišćenje računarskog sistema učini podesnijim za
korisnika;
- omogući što efikasnije iskorišćenje računarskog
hardvera.
5
Šematski prikaz uloge operativnog sistema
User 1
User n
User 2
Compiler Text processor
Database system
System and Application Programs
Operating System
Hardware
OS je program koji služi kao posrednik između
korisnika, odnosno njegovih programa, i računarskog
hardvera
6/285
Osnovne funkcije OS
Osnovne funkcije OS:
Automatsko funkcionisanje računarskog sistema
Upravljanje resursima: CPU, OM, I/O, ... – konačno
učiniti (skoro) beskonačnim i poslovima
Multiprogramiranje
Eliminisanje zavisnosti U/I operacija zbog sporosti
Zaštita računarskih resursa od nepravilne upotrebe ili
zloupotrebe
7/285
Šta sve obuhvata OS?
Različita shvatanja opsega operativnih sistema:
Tradicionalno shvatanje:
kernel (jezgro) – program koji obavlja osnovne funkcije OS i
uvek se nalazi u memoriji
skup uslužnih sistemskih programa
shell (školjka) – komandni ili grafički korisnički interfejs (GUI)
prema funkcijama OS
Moderno shvatanje: sve ovo i još:
luksuzan GUI
skup uslužnih aplikativnih programa
programi za Internet usluge
...
“Sve što proizvođač isporuči pod tim nazivom”. Primer:
Microsoft Windows
8/285
1.3 Karakteristike OS
Konkurentnost (postojanje više simultanih, paralelnih aktivnosti)
Deoba resursa (obezbeđivanje dovoljnih resursa za svakog korisnika)
Postojanje dugotrajne memorije (implicira potrebu za trajnim
skladištenjem podataka s mogućnošću brzog pristupa)
Nedeterminizam (mora biti deterministički orijentisan – kad izvršava
isti program sa istim podacima, mora da daje isti rezultat, bez obzira da li
će se to raditi danas, sutra ili za mesec dana)
Poželjne osobine operativnog sistema
1) Visok nivo efikasnosti (može se predstaviti pomoću više
kriterijuma, pri čemu značaj svakog kriterijuma zavisi od vrste i namene
operativnog sistema)
2) Visok nivo pouzdanosti (merilo pouzdanosti je broj grešaka, tj.
srednje vreme između dve greške ili dva otkaza)
3) Jednostavnost održavanja (treba omogućiti da sistem održava što
manje ljudi)
4) Prihvatljiva veličina (operativni sistem treba da zauzme što manje
prostora u memoriji, mada sa povećanjem kapaciteta savremenih
memorijskih sistema, to gubi važnost)
9
1.4 Vrste OS-Klasifikacija OS prema broju korisnika
Na osnovu kombinovanog kriterijuma mogu se izdvojiti tri vrste
operativnih sistema:
jednokorisnički jednoprocesni (single-user, singletasking), kao što je
MS-DOS;
jednokorisnički višeprocesni (single-user, multitasking), kao što su
OS/2 i MS Windows 3.1/ 9x/ME;
višekorisnički višeprocesni (engl. multiuser, multitasking), kao što
je UNIX, ali uslovno se mogu prihvatiti i MS Windows 2000/Xp/2003
ukoliko obezbeđuju terminalske usluge (engl. terminal services).
10
1.5 Opšti pregled strukture operativnim sistema
Upravljanje osnovnim resursima računarskog sistema obezbeđuje više
funkcionalnih grupa programa namenjenih za:
- upravljanje procesorom;
- upravljanje memorijom;
- upravljanje ulazom i izlazom;
- upravljanje podacima;
- upravljanje sekundarnom memorijom;
- umrežavanje;
- zaštitu;
- korisnički interfejs.
11/285
Virtuelna mašina
Struktura virtuelne mašine: na najnižem nivou se nalazi hardver, a
iznad hardvera monitor virtuelnih mašina (virtual machine monitor),
to jest poseban sistem koji obezbeđuje niz virtuelnih mašina (tačnih
kopija hardvera).
Zatim se na te virtuelne mašine mogu instalirati različiti operativni
sistemi.
Odgovarajući operativni sistemi primaju sistemske pozive
korisničkih programa, a hardverske operacije koje ti operativni
sistemi šalju prema svojim virtuelnim mašinama prihvata monitor
virtuelnih mašina i realizuje ih u skladu s hardverom ispod sebe.
Virtuelna mašina je zasnovana na slojevitoj organizaciji i tretira
realni hardver i realno jezgro kao da su hardver za operativni sistem
koji predstavljaju. Virtuelna mašina obezbeđuje identičan interfejs
kao da je realni hardver ispod virtuelne mašine, a ne čitav niz slojeva
softvera.
Na taj način sistem se ne može oštetiti jer je moguć samo otkaz
virtuelne mašine a ne celog sistema.
12/285
NAPREDNI KURS
Klasifikacija prema nameni i načinu obrade poslova
Paketni sistemi (batch system):
prvi računari 1960-ih i 70-ih
ulazni uređaji: čitač kartica i magnetne trake
izlazni uređaj: linijski štampač, bušač kartica i magnetne trake
nema interakcije sa korisnikom – korisnik pripremi posao (job)
za obradu (program+podaci), operater to postavi na sistem,
pokrene izvršavanje i vrati korisniku rezultat (izlazni podaci ili
izveštaj o grešci)
OS je sasvim jednostavan:
jedini zadatak je preći sa jednog posla na drugi
stalno pristuan u memoriji
OS
User
Job
Operater pravi paket (batch) srodnih poslova i pokreće
ih kao grupu
13/285
Sistemski Pozivi
Aplikacioni programi komuniciraju sa operativnim sistemom
pomoću sistemskih poziva (engl. system cals), tj. preko operacija
(funkcija) koje definiše operativni sistem.
Sistemski pozivi obezbeđuju interfejs između programa koji se
izvršava i operativnog sistema. Generalno, realizuju se na
asemblerskom jeziku, ali noviji viši programski jezici, poput jezika
C i C++, takođe omogućavaju realizaciju sistemskog poziva.
Program koji se izvršava može proslediti parametre operativnom
sistema na tri načina:
- prosleđivanjem parametara u registrima procesora;
- postavljanjem parametara u memorijskoj tabeli, pri čemu se adresa
tabele prosleđuje u registru procesora;
- postavljanjem parametara na vrh steka (push), koje operativni
sistem "skida“ (pop ).
14/285
Paketni sistemi
Problem: CPU je često neiskorišćen čekajući na I/O
operaciju:
CPU ciklusi: mikrosekunde ili nanosekunde
Odziv I/O uređaja: milisekunde ili sekunde
CPU execution
I/O operation
time
Uvođenje diskova omogućilo je direktan pristup
pojedinačnom poslu, bez potrebe njihove sekvencijalizacije
Raspoređivanje poslova (job scheduling): iz skupa
raspoloživih poslova (pool), izabrati onaj ili one koji će se
učitati u memoriju i izvršavati
Multiprogramiranje (multiprogramming): izvršavati više
poslova upredo; dok jedan čeka na završetak I/O
operacije, CPU izvršava drugi posao
15/285
Multiprogramiranje
Generički oblik posla:
begin
compute;
I/O;
compute;
I/O;
...
end.
OS
Job 1
Job 2
Job 3
time
Job 1
Job 2
Job 3
CPU
I/O
1
2 3
1
1
2
2
3
1
1
2
3
CPU execution
I/O operation
16/285
Multiprogramiranje
Otvorena pitanja:
kako iz skupa svih poslova izabrati one koji će se učitati u memoriju
i izvršavati – job scheduling
kako smestiti poslove različite veličine u memoriju – memory
management
kada posao koga CPU trenutno izvršava zatraži I/O operaciju, kako
izabrati sledeći koga će CPU izvršavati – CPU scheduling
kako preći sa izvršavanja jednog posla na izvršavanje drugog –
context switch
kako opsluživati zahteve za I/O operacijom na deljenom uređaju –
I/O device scheduling
kako sprečiti da jedan posao slučajno ili namerno ugrozi memorijski
sadržaj drugog – protection
kako se izbaviti iz cituacije kada jedan program krene u
beskonačnu petlju - preemption
17/285
Sistemi sa raspodelom vremena
Paketni sistemi omogućuju efikasno deljenje resursa, ali
nisu interaktivni (ne interaguju sa korisnikom tokom rada)
Posao sada, osim na završetak I/O operacije sa uređajem,
može da čeka i na (re)akciju korisnika preko tastature ili
miša
Vreme ljudske reakcije je reda ~1/2 do najmanje ~1/7
sekunde. Vreme reakcije računara na akciju korisnika je
tipično kratko (reda nekoliko desetina ili stotina ms)
Važno za interaktivne sisteme je vreme odziva (response
time) sistema na akciju korisnika – treba da bude reda
sličnog kao i vreme ljudske reakcije, tj. do ~1s
18/285
Sistemi sa raspodelom vremena
Uopštenje principa multiprogramiranja na interaktivne
višekorisničke sisteme – raspodela vremena (time-sharing,
multitasking)
Ideja: osim kada sam zatraži I/O operaciju, posao (task)
može da izgubi procesor i kada mu istekne dodeljeno CPU
vreme
OS dodeljuje CPU vreme svakom poslu i relativno često
preuzima procesor
Rezultat: svaki korisnik ima utisak da računar radi samo za
njega sa dovoljno dobrim vremenom odziva, a računar
opslužuje više korisnika
Program koji je učitan u memoriju i izvršava se uporedo sa
drugim programima naziva se proces (process)
19/285
Sistemi sa raspodelom vremena
Generički oblik interaktivnog procesa:
loop
wait for user input;
compute reaction;
display result;
end.
CPU execution
User action
time
Proc 1
Proc 2
Proc 3
User 1
User 2
User 3
Response time
20/285
Sistemi sa raspodelom vremena
Otvorena pitanja: ista kao i kod multiprogramiranja, i još:
Da bi se posao izvršavao sa razumnim vremenom odziva, potrebno
je ponekad izbacivati delove posla iz memorije i ubacivati delove
drugog posla, pošto ne mogu svi celi da stanu. Posao nije uvek ceo
u memoriji.
Tehnika koja ovo omogućava – virtuelna memorija (virtual
memory).
Očigledna posledica: fizička memorija računara može biti manja ili
veća od adresnog prostora programa (virtuelne memorije)
Fajl sistem
Upravljanje diskovima
Početak 1960-ih. Šira upotreba 70-ih. Danas su svi
višekorisnički interaktivni sistemi opšte namene ovakvi!
21/285
Sistemi sa raspodelom vremena
Razlikovati pojam programa od procesa: proces predstavlja izvršavanje
nekog programa nad datim skupom podataka. Više procesa može biti
aktivirano nad istim programom
Primeri kombinacija:
monoprogramski, monoprocesni: specijalizovani ili ugrađeni (embedded)
sistem za upravljanje nekim HW sistemom, Nintendo igrice, automobil
multiprogramski, monoprocesni: personalni računar starije generacije koji
može imati u memoriji i izvršavati samo jedan program u jednom trenutku;
stariji paketni sistemi
monoprogramski, multiprocesni: specijalizovani sistem posebne namene sa
više korisnika, serverski sistem, npr. Web pretraživač, DBMS, rezervacija
avio-karata itd.
multiprogramski, multiprocesni: sistemi sa raspodelom vremena, svi
moderni OS opšte namene
Višekorisnički sistem:
samo jedan korisnik u datom trenutku (npr. personalni sistem)
više korisnika u jednom trenutku; implicitno multiprocesni
22/285
Multiprocesorski sistemi
CPU
CPU
...
CPU
OM
Više procesora sa deljenom memorijom
Ciljevi:
povećati propusnu moć (throughput) – količina urađenog posla u
jedinici vremena; pažnja: povećanje nije linearno!
ušteda zbog deobe periferijskih uređaja
povećanje pouzdanosti tolerancijom otkaza (fault tolerance)
Simetrični i asimetrični sistemi
Asimetrični sistemi:
specijalizovani I/O mikroprocesori (npr. za disk, tastaturu)
master/slave sistemi
23/285
Distribuirani sistemi
Skup procesora bez zajedničke memorije,
povezanih komunikacionom mrežom:
specijalizovani homogeni distribuirani sistemi
lokalne mreže (Local Area Network, LAN)
mreže šireg područja (Wide Area Network, WAN)
Internet
Svi moderni OS podržavaju umrežavanje:
moduli za komunikacione protokole (TCP/IP, PPP)
Internet usluge
pristup fajlovima preko mreže
Distribuirani OS: OS koji na distribuiranom sistemu
stvara utisak jedinstvenog OS
24/285
Sistemi za rad u realnom vremenu
Sistem za rad u realnom vremenu (real-time
system, RTS): sistem za koga nije samo važno da
rezultat bude logički ispravan, već i da je
proizveden na vreme
Hard RTS: definisani vremenski rokovi moraju da
budu ispoštovani, inače će doći do tragičnih
posledica po živote ljudi, materijalna sredstva ili
životnu sredinu
Soft RTS: definisane vremenske rokove treba
poštovati, ali je dopustivo da se oni ponekad i
prekorače, sve dok su performanse sistema u
okvirima zadovoljavajućeg
25/285
Sistemi za rad u realnom vremenu
Karakteristike Hard RTS OS:
ne postoje HW i SW komponente koje bi unosile neodređenost u
vremenske karakteristike (kašnjenja, vreme odziva): diskovi,
virtuelna memorija
nema raspodele vremena
procesi su periodični ili sporadični
raspoređivanje je veoma strogo i karakteristično (po prioritetima ili
po vremenskom roku)
nijedan OS opšte namene nema karakteristike potrebne za hard
RTS
Karakteristike Soft RTS OS:
mora postojati podrška za raspoređivanje po prioritetima i kontrolu
vremenskih rokova
mnogi moderni OS imaju ovakvu podršku
26/285