Professional Documents
Culture Documents
OS Operativni Sistemi Prezentacija 1
OS Operativni Sistemi Prezentacija 1
ng.
sinisaminic@yahoo.com
Operativni sistemi
1
Sadraj
1 Uvod o predmetu
2 Primer operativnog sistema: Linux
3 Primer operativnog sistema: Windows API
2
Sadraj, ciljevi
Sadraj:
Primeri konstrukcije dva najpopularnija sistema: Linux i
Windows
Ciljevi:
Upoznati se sa irim spektrom koncepata i principa
konstrukcije operativnih sistema
Stei potpuno znanje primenjivo na operativne sisteme
uopte, nevezano ni za jedan konkretan sistem
Upoznati se sa principima konstrukcije konkretnih,
realnih operativnih sistema
3/249
Sadraj, ciljevi
4/249
Literatura
Referentne knjige:
Silberschatz, A., Galvin, P., Gagne, G.: Operating
System Concepts, 7th ed., John Wiley and Sons
www.os-book.com
www.wiley.com/college/silberschatz
B. orevi, D. Pleskonji, N. Maek, Operativni sistemi
koncepti, VE Beograd, 2004.
Univerzitetski kursevi:
Stanford University: www.stanford.edu/class/cs140/
University of Washington:
www.cs.washington.edu/education/courses/451/
5/249
Glava 2: Primer operativnog sistema
Linux
Istorijat
Principi dizajna
Moduli jezgra
Upravljanje procesima
Rasporeivanje
Upravljanje memorijom
Fajl sistemi
Ulaz i izlaz
Meuprocesna komunikacija
. . . . . .. .
........
2016. Copyright (C) 2016 by Sinia Mini 42/249
Fajl sistemi - Journaling
Jedna popularna funkcionalnost mnogih Linux fajl sistema -
beleenje (journaling):
modifikacije (akcije) nad fajl sistemom koje se vre u okviru jedne
nedeljive celine transakcije (transaction) ne vre se sinhrono, ve
se najpre upisuju u zapisnik (journal)
write() zavri (commit) i cela upie u
kada se transakcija (npr. write())
zapisnik, kontrola se vraa korisnikom procesu
u meuvremenu, zapisane akcije se asinhrono redom obavljaju nad
fajl sistemom; zapisnik je zapravo kruni bafer koji ima pokaziva
(kurzor) koje zapisane akcije su zaista izvrene u fajl sistemu
kada su sve akcije jedne transakcije zavrene, one se briu iz
zapisnika
zapisnik se uva kao posebna sekcija fajl sistema
ako sistem padne, cele transakcije koje su potvrene (committed)
a nisu izvedene u celini u fajl sistemu se naknadno izvravaju;
delimino izvrene transakcije se ponitavaju (razmotavaju, undo,
rollback), kako bi sistem ostao u konzistentnom stanju
2016. Copyright (C) 2016 by Sinia Mini 43/249
Fajl sistemi Process File System
UNIX/Linux process file system (/proc):
virtuelni fajl sistem koji se ne odnosi na perzistentne podatke, ve
koristi VFS da bi vratio informaciju na svaki zahtev za itanjem
svaki poddirektorijum unutar /proc odnosi se na jedan tekui
proces sa imenom koje predstavlja ASCII reprezentaciju PID-a
PID
fajlovi unutar ovih poddirektorijuma nude razne reijske i debug
informacije o pokrenutim procesima
ovaj sistem nudi drugim procesima mogunost da ovim
informacijama pristupaju kao obinim tekstualnim fajlovima; npr.
UNIX komanda ps (lista stanja procesa) je na Linuxu
implementirana kao najobiniji neprivilegovani program koji ita i
ispisuje ove fajlove
posebni globalni fajlovi u ovom sistemu nude informacije i
statistiku o celom sistemu i kernelu
/proc/sys sadri fajlove koji se odnose na parametre kernela i
koji dozvoljavaju i upis (promena parametara); na ovaj nain
administrator utie na sistem prostim upisom u ove fajlove
2016. Copyright (C) 2016 by Sinia Mini 44/249
Ulaz i izlaz
Kao i u UNIXu, drajveri ureaja se spolja koriste kao fajlovi
oni su objekti u fajl-sistemu:
sistemu:
da bi pristupao ureaju, proces treba da otvori kanal ka ureaju kao
i svaki drugi fajl
administrator moe da kreira poseban fajl u sistemu koji referie
odreeni drajver, tako da se ulaz/izlaz s tim fajlom usmerava na
drajver
prava pristupa do ureaja definiu se i kontroliu kao za fajlove
Blokovski orijentisani ureaji (svi diskovi i fle memorije):
za svaki ureaj se vodi posebna lista zahteva
lista zahteva je sortirana po redosledu poetnog sektora koji se trai
rasporeivanje zahteva je po C-SCAN
C algoritmu
tek kada se zahtev opslui i operacija zavri, izbacuje se iz liste i
prelazi na sledei, dok su u meuvremenu stizali novi zahtevi, u cilju
poboljanja performansi; problem: mogue izgladnjivanje!
Istorijat
Komponente sistema
Programski interfejs Win32
Win32
subsystem
User mode
Executive
Security Plug &
reference play
I/O manager monitor manager
File system Virtual Window
Object Process memory
Cache manager manager monitor manager
manager
Device drivers
Kernel Graphic
Network drivers device
Hardware Abstraction Layer (HAL) drivers
Hardware
2016. Copyright (C) 2016 by Sinia Mini 54/249
Programski interfejs Win32
Pristup kernel objektima:
CreateXXX():: kreira/zauzima kernel objekat tipa XXX i vraa
ruku (handle) tipa HANDLE;; ako ne uspe, vraa 0 ili
INVALID_HADLE_VALUE
CloseHandle():: oslobaa kernel objekat na koji ukazuje data
ruka (handle); ako objekat vie niko ne koristi, sistem ga brie
Tri naina da procesi dele kernel objekte:
1. proces-dete
dete nasleuje objekat (ruku) roditelja:
kada kreira objekat sa CreateXXX(),
CreateXXX() roditelj prosleuje strukturu
SECURITY_ATTRIBUTES kao argument sa poljem bInheritHandle
postavljenim na true
kada kreira proces-dete sa CreateProcess(),
CreateProcess() roditelj prosleuje
true kao argument bInheritHandle da bi se ruke nasledile
proces-dete
dete mora da zna koje se ruke dele i kako do njih da pristupi
(npr. preko komandne linije)
proces-dete
dete trai pristup do deljenog objekta
dalje procesi mogu da komuniciraju preko deljenog objekta