Pređi na sadržaj

Нацрт:Arhitektura operativnih sistema

S Vikipedije, slobodne enciklopedije

U zavisnosti kako i gde su smeštene komponente operativnog sistema razlikuju se različite arhitekture operativnog sistema. Razlike se najčešće ogledaju u skupu funkcija koje će se nalaziti u jezgru i njihovoj organizaciji(strukturi).

U odnosu na tip jezgra postoje:

  1. monolitna arhitektura
  2. slojevita arhitektura
  3. arhitektura koja se zasniva na mikrojezgru
  4. hibridna arhitektura
  5. arhitektura zasnovana na egzojezgru

Monolitna arhitektura[uredi | uredi izvor]

Za arhitekturu operativnog sistema kaže se da je monolitna, tj. da ima monolitno jezgro (monolithic kernel), ukoliko se u jezgru nalaze svi servisi operativnog sistema zajedno sa drajverima integrisani u jedan program. Pri tome, svi delovi se pokreću u istom trenutku, izvršavaju u sistemskom režimu i u istom delu memorije. Prilikom pokretanja ovakvog operativnog sistema jezgro se u memoriju učitava u celosti kao jedan izvršni program. Funkcije jezgra mogu jedna drugu pozivati bez ograničenja. Iako se čini da su ovakvi sistemi jednostavni, oni mogu biti vrlo složeni.

Jedna od najvećih mana monolitnih jezgara je loša otpornost na greške. U slučaju da dođe do greške u nekom od podsistema, dolazi do problema koji mogu uticati na ceo sistem i najčešće je jedino rešenje njegovo ponovno podizanje. Neki od najpoznatijih sistema koji imaju monolitna jezgra su: MS-DOS, BSD, AIX, Windows 98 i GNU/Linux.

Slojevita arhitektura[uredi | uredi izvor]

Slojevita arhitektura podrazumeva da je operativni sistem izgrađen od zasebnih slojeva (celina) koji se nadograđuju jedan na drugi. Pri tome, svaki sloj ima određene funkcije koje su opisane kroz njegov interfejs ka višem sloju. Slojevi se implementiraju tako da mogu da koriste isključivo usluge prvog sloja ispod sebe. Iz tog razloga projektovanje slojeva je veoma zahtevan posao jer se mora voditi računa o raspodeli funkcija.

Najveći problem ovakvih sistema je neefikasnost. Naime, sistemski poziv prolazi kroz više slojeva a pri svakom prolazu se prosleđuju podaci, menjaju parametri itd. što dovodi do usporenja.

Pri tome, slojevi ne moraju biti u jezgru operativnog sistema već, zavisno od implementacije, određeni slojevi mogu funkcionisati u korisničkom režimu.

Najniži sloj čini hardver ili njegova apstrakcija, na najvišem sloju je podrška za aplikativne programe a između može biti proizvoljan broj slojeva. U najpoznatije operativne sisteme sa slojevitom arhitekturom spadaju: THE, Multics itd.

Arhitektura koja se zasniva na mikrojezgru[uredi | uredi izvor]

Arhitektura koja se zasniva na mikrojezgru (microkernel) podrazumeva minimalno jezgro u kojem se nalaze samo najosnovnije funkcije. Deo funkcija koje bi u prethodnim slučajevima bile deo jezgra se izmeštaju u korisnički prostor i to u zasebne prostore u memoriji tako da sa bezbednijeg nivoa pristupaju jezgru. Na ovaj način se rešavaju problemi koji nastaju kada dođe do greške pri primeni neke od ovih funkcija, tako da se to ne odražava na funkcionisanje jezgra. Usluge operativnog sistema koje su izmeštene iz jezgra se njemu obraćaju kako bi ostvarile svoje ciljeve (prvenstveno pristup hardveru), a preko njega i komuniciraju sa drugim uslugama. Usluge koje obavljaju slične zadatke u okviru operativnih sistema se grupišu u procese koji se nazivaju serverski procesi, a često i samo serveri. Drajveri se često ne nalaze u mikrojezgru, već pripadaju odgovarajućim serverima. Takođe, server za upravljanje memorijom, server procesa, server za upravljanje mrežama, server za upravljanje ulazno-izlaznim uređajima itd. neki su od najvažnijih servera koji se mogu implementirati pri ovakvom pristupu.

Arhitekturu mikrojezgra odlikuje veći stepen sigurnosti u odnosu na monolitne sisteme, ali su oni obično sporiji. Naime, promene memorijskog prostora dovode do kašnjenja i manje propusnosti u poređenju sa sistemima sa monolitnim jezgrom. One su neophodne jer se serveri i jezgro ne nalaze u istom adresnom prostoru i ne izvršavaju u istom režimu. Često prosleđivanje poruka između malog jezgra i servera takođe dovodi do kašnjenja. Imajući u vidu navedene razloge, može se zaključiti da arhitektura zasnovana na mikrojezgru pruža veći stepen sigurnosti i u odnosu na slojevite sisteme, ali da brzina nije odlika ni jednog ni drugog pristupa

Primeri sistema koji su dizajnirani na principima mikrojezgra su: Mach, Minix, QNX i L4.

Hibridna arhitektura[uredi | uredi izvor]

Hibridna arhitektura sistema, odnosno hibridna jezgra (hybrid kernel) predstavljaju kompromis između monolitne i arhitekture koja se zasniva na mikrojezgru. Neke veoma bitne, kao i funkcije koje se često izvršavaju, spuštaju se u jezgro kako bi se povećala brzina i efikasnost, ali se dobar deo funkcija zadržava u nivoima iznad jezgra. Kod ovakvog pristupa najvažnije je precizno odrediti koje funkcije treba spustiti u jezgro, a koje ostaviti van, jer će u suprotnom hibridni pristup ličiti na sistem sa monolitnim (u slučaju da se previše funkcija implementira u jezgro) ili mikrojezgrom (ako dosta važnih funkcija ostane van jezgra).

Hibridna jezgra se koriste u većini komercijalnih operativnih sistema: Apple Mac OS X, Microsoft Windows NT 3.1, NT 3.5, NT 3.51, NT 4.0, 2000, XP, Vista, 7, 8, 10 i sl.

Arhitektura zasnovana na egzojezgru[uredi | uredi izvor]

Tradicionalni pristup pri dizajniranju operativnih sistema podrazumeva da hardverske komponente ne budu vidljive korisničkim aplikacijama, odnosno da programi komuniciraju sa hardverom isključivo preko jezgra operativnog sistema. Na ovaj način olakšava se programiranje, ali se, sa druge strane, ograničavaju performanse. Suprotni pristup bi podrazumevao da se dozvoli da aplikacije direktno pristupaju hardveru, tj. da se jezgro potpuno zaobiđe. U tom slučaju bi funkcionisanje sistema zavisilo od aplikacija koje pišu programeri i aplikacije bi zavisile jedne od drugih.

Koncept egzojezgra (exokernel) predstavlja kompromis između ova dva suprotna pristupa. Ideja je da jezgro obezbedi osnovne resurse i da aplikacijama prepusti rad sa njima. Ovo se postiže premeštanjem apstrakcije iznad hardvera u posebne biblioteke koje obezbeđuju minimalne apstrakcije uređaja. Na taj način se programeri mogu osloniti na odgovarajuću biblioteku ali im se ostavlja i mogućnost da implementiraju svoje biblioteke. Drugim rečima, programeri imaju slobodu u izboru nivoa apstrakcije kada je pristup hardveru u pitanju. Ovakav način rada može da doprinese znatnom ubrzanju i poboljšanju performansi. Sa druge strane, dodatna fleksibilnost za korisničke aplikacije može da dovede do smanjenja konzistentnosti i neurednosti koda.

Pošto je veći deo funkcija izmešten iz egzojezgra, ono je obično manje od prethodno pomenutih tipova jezgara. Primeri sistema koji imaju arhitekturu zasnovanu na egzojezgru su: XOK, ExOS itd.

Literatura[uredi | uredi izvor]

kao materijal za pripremu ovog teksta korišćena je: knjiga „Operativni sistemi“ autora Miroslava Marića, https://racunariprogramiranje.wordpress.com/2019/09/10/%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B5-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%B8%D1%85-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0/ https://imi.pmf.kg.ac.rs/index-old.php?option=com_docman&task=doc_view&gid=330 https://srednjaskolabrus.edu.rs/2020/10/26/arhitekture_op_sistema77356/