p-arhitektura operativnih sistema 2005 06

8
Fakultet informacijskih tehnologija [email protected] UOS::Predavanja Copyright © by: FIT 1 Datum: 09.06.2006 Predavanje Uvod u Operativne Sisteme Sadržaj Arhitektura operativnih sistema

Upload: goran-petrovic

Post on 17-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

  • Fakultet informacijskih tehnologija

    [email protected]

    UOS::Predavanja Copyright by: FIT

    1

    Datum: 09.06.2006

    Predavanje

    Uvod u Operativne Sisteme

    Sadraj

    Arhitektura operativnih sistema

  • Fakultet informacijskih tehnologija

    [email protected]

    UOS::Predavanja Copyright by: FIT

    2

    Historijski posmatrano, operativne sisteme po njihovoj strukturi moemo podijeliti na sljedee:

    Jednostavna/monolitna struktura Slojevita (layered) struktura Struktura zasnovana na mikrokernelu (microkernel)

    Moderni operativni sistemi, veliki i kompleksni kao to jesu (novije verzije Windows-a iznose po oko 40 miliona linija code-a), moraju biti veoma paljivo dizajnirani kako bi mogli da funkcioniu ispravno i efikasno. Radi toga se posao dizaniranja particira u vie manjih komponenti. Ove komponente se nazivaju moduli. Svaki od modula je jedna logika cjelina OS-a sa paljivo definiranim inputima, outputima i funkcijama.

    Jednostavna / Monolitna struktura Mnogi komercijalni sistemi nemaju dobro definiranu strukturu. Veina ovakvih sistema su poeli kao maleni, jednostavni, limitirani sistemi, koji su kasnije izrasli preko limita za koje su prvobitno bili dizajnirani. Iako se struktura ovih sistema u mnogim knjigama naziva jednostavna strukturom, vie prikladan naziv bi moda bio Big mess struktura, jer se zapravo radi o strukturi koja gotovo i da nije struktuirana:). Ono to karakterie ovu strukturu je to da je operativni sistem napisan kao kolekcija procedura, svaka od kojih moe da poziva druge procedure kada ima potrebu. Kada se koristi ova tehnika, svaka procedura u sistemu ima jasno-definiran interfejs, t.j. parametre i rezultate, koji mogu da prue korisne informacije procedurama koje ih pozivaju. MS-DOS je primjer ovakve strukture. Razvijen je od nekolicine ljudi koji prilikom dizajniranja nisu predvidjeli da e sistem postati popularan, te ga nisu paljivo podijelili u module. Napisan je sa ciljem da prui to vie funkcionalnosti a da pri tom zauzme to manje prostora. Na slici br. 1 moemo vidjeti strukturu ovog operativnog sistema. Iako je MS-DOS neto struktuiran, njegovi interfejsi i nivoi funkcionaliteta nisu dovoljno dobro odvojeni. Aplikacijski programi, na primjer mogu direktno pisati na display i disk drajvove. Ovakve i sline stvari su dovodile do estog sistem crash-iranja prilikom greaka kod korisnikih programa. Prve verzije UNIX OS-a su takoer imale jednostavnu (monolitnu) strukturu.

  • Fakultet informacijskih tehnologija

    [email protected]

    UOS::Predavanja Copyright by: FIT

    3

    Slika 1: MS-DOS slojevita (layered) struktura (lit. br. 2)

    Slojevita Struktura Modularnost sistema se moe postii na vie naina, jedan od kojih je slojeviti pristup. Kod ovog pristupa OS je podijeljen u hijerarhijsku strukturu sainjenu od vie slojeva (layers), svaki od kojih se nadograuje na sloj ispod njega. Najnii sloj je hardver; najvii je korisniki interfejs. Glavna prednost slojevite strukture je upravo modularnost: slojevi su izabrani tako da svaki koristi samo funkcije (operacije) i servise niih slojeva. Ovaj pristup pojednostavljuje implementaciju operativnog sistema, t.j. debug-ovanje i verifikaciju sistema. Na primjer, prvi sloj moe biti debug-ovan ne uzimajui u obzir ostale slojeve jer prvi sloj koristi samo hardver. Nakon to je zavreno debug-ovanje prvog sloja nije potrebno uzimati isti u obzir prilikom debug-ovanja drugog sloja, obzirom da drugi sloj koristi samo prvi sloj (koji je ve debug-ovan), itd. Ukoliko se pronae greka prilikom debug-ovanja odreenog sloja to e onda podrazumijevati da se greka nalazi u tom sloju, jer su slojevi ispod njega ve debug-ovani. Kao to vidimo, dizajn i implementacija se pojednostavljuje kada je sistem podijeljen u slojeve (layers). Slojevita struktura sadri i nekoliko problema. Jedan od njih je to da svaki sloj moe koristiti samo funkcije niih slojeva, to podrazumijeva veoma paljivu organizaciju slojeva. Primjera radi, drajver ureaja za backing-store (dio diska koriten za virtualnu memoriju) mora biti u niom sloju od rutina za menadment memorije, jer menadment memorije zahtijeva servise backing store-a. Dodatni nedostatak slojevite strukture je to da je ona obino manje efikasna od ostalih struktura. Na primjer, kada korisniki program pozove I/O operaciju moglo bi doi do sljedeeg: Sistemski poziv je uhvaen (trapped) u I/O sloju

    I/O sloj poziva sloj menadmenta memorije Sloj menadmenta memorije poziva CPU-scheduling sloj CPU-scheduling sloj proslijeuje poziv hardveru

  • Fakultet informacijskih tehnologija

    [email protected]

    UOS::Predavanja Copyright by: FIT

    4

    Na svakom od ovih slojeva parametri se modifikuju, neki od podataka se po potrebi transferiu, itd. Svaki od slojeva dodaje dodatni posao sistemskom pozivu, te kao rezultat toga izvravanje sistemskih poziva uzima vie vremena nego kod struktura koje nisu slojevite. Kao odgovor na ove nedostake, poelo se sa dizajnom slojevitih OS-a sa manjim brojem slojeva, kako bi se izbjegli gore navedeni problemi. Kao primjer moemo uzeti OS/2 operativni sistem, koji predstavlja potomak MS-DOS OS-a i ija je arhitektura prikazana na slici br. 2.

    Slika 2: OS/2 arhitektura (lit. br. 2) Tipini sloj (layer) operativnog sistema, nazovimo ga slojem M, prikazan je na slici br. 3. Sastavljen je od podatkovnih struktura i operacija koje mogu operisati nad tim strukturama, a koje se mogu pozivati od strane viih slojeva. Sloj M, sa druge strane moe pozivati operacije na slojevima koji se nalaze ispod njega, kao to je to sloj M-1.

  • Fakultet informacijskih tehnologija

    [email protected]

    UOS::Predavanja Copyright by: FIT

    5

    Slika 3: Sloj operativnog sistema (lit. br. 2)

    Mikrokernel Struktura Mikrokernel struktura, za razliku od slojevite ima horizontalnu organizaciju. Kod ove strukture kernel je reduciran na par osnovnih funkcija kao to su upravljanje procesima, osnovne komunikacijske rutine, upravljanje low-lewel memorijom, itd. Ostali servisi su raspoloivi od strane sistemskih programa ili korisnikih programa koji se nazivaju serveri. Jedna od glavnih funkcija mikrokernela je da prui komunikacijske rutine za komunikaciju izmeu klijentskih programa i raznih servera. Neke od vanijih prednosti ovog modela su:

    Proirivost - dodavanjem novih servera (servisa), bez potrebe modifikacije kernela Fleksibilnost nova svojstva mogu biti dodana, isto kao to se i neka postojea

    svojstva mogu otklonuti Portabilnost obzirom da je mikrokernel jedini dio OS-a koji je direktno ovisan o

    hardveru, mogunost portovanja OS-a na drugu hardversku platformu je pojednostavljena

    Zasnovanost na objektno-orijentisanom pristupu (OO metode naglaavaju modularnost i enkapsulaciju)

    Mikrokernel sistemi su takoer vie pouzdani i sigurni upravo zbog toga to se manja koliina code-a nalazi u kernelu (izvrava u privilegovanom kernel mod-u, te ima velike moi). Mana mikrokernel sistema je njihova manja efikasnost, poto se radi o strukturi u kojoj se mnogi servisi nalaze izvan kernela. Ipak, mnogi OS eksperti zagovaraju upravo ovu strukturu, obzirom na njihovu odlinu stabilnost i poudanost. uveni profesor Tanenbaum koji je dizajnirao mikrokernelski MINIX OS, na primjer i dan danas zamjera dizajneru Linux-a, tada studentu Linus Torvaldsu jer ovaj umjesto mikrokernel strukture dizajnirao Linux koristei monolitnu strukturu. Kasnije verzije Linux kernela donijele su poboljanja, te se isti danas smatra pouzdanim sistemom. Primjeri mikrokernel OS-a su True64 UNIX, QNX i MINIX.

  • Fakultet informacijskih tehnologija

    [email protected]

    UOS::Predavanja Copyright by: FIT

    6

    Primjer Arhitekture Sistema: Windows 2000

    U ovom dijelu predavanja neto detaljnije emo obradit arhitekturu Windows 2000 OS-a (jedne od verzija Windows NT-a). Windows NT koristi klijent/server model u cilju razdvajanja razliitih komponenti OS-a. Ovdje se podrazumijeva to da moduli ovog OS-a komuniciraju koristei klijent-server paradigmu. Klijent modul obino alje odreeni zahtjev server modulu koji obavlja posao i vraa rezultat klijent modulu. etiri osnovne komponente u NT arhitekturi su:

    Hardware Abstraction Layer (HAL) Kernel NT Executive Services Environment Subsystems

    Windows NT, kao i gotovo svi moderni OS-i koristi dva moda izvravanja: privilegovani odnosno kernel mod i neprivilegovani odnosno user mod. HAL, Kernel i NT Executive Services izvravaju u kernel modu te predstavljaju klasini operativni sistem. Environment Subsystems izvrava u korisnikom modu. Jedna od najveih prednosti prve verzije NT-a u odnosu na tadanji Windows 3.x je bila modularna struktura. NT se, tada sastojao od relativno malog kernela (koji je izvravao u kernel modu) te od neto server procesa koji su izvravali u user modu. Ova modularna struktura omoguila je laku portabilnost, pa je tako ova verzija radila na vie hardverskih platformi (IBM, Alpha, PowerPC, MIPS). Ipak, radi poboljanja performansi Microsoft je odluio da poevi od NT 4.0 verzije veinu OS-a vrati ponovo u kernel mod. Ovaj dizajn je takoer preneen i u Windows 2000 (i u XP) koji je podijeljen u vie slojeva, svaki od kojih koristi servise slojeva koji su ispod njega, s tim da je jedan od ovih slojeva (NT Executive Services) horizontalno podijeljen u vie modula. Struktura je prikazana na sljedeon slici.

    Slika 4: Struktura Windowsa 2000 (neto pojednostavljena); D-kocke=drajveri (lit. br.1)

  • Fakultet informacijskih tehnologija

    [email protected]

    UOS::Predavanja Copyright by: FIT

    7

    HAL i kernel, dva najnia sloja su napisana u C i assembly jeziku, i djelimino su ovisni o hardveru. Ostali slojevi su napisani u C jeziku i gotovo kompletno su neovisni o hardveru. U dijelu predavanja koji slijedi objasnit emo ukratko svaki od ovih OS slojeva (slojeva koji izvravaju u kernel modu). Hardware Abstraction Layer (HAL) Prilikom dizajniranja NT-a jedan od ciljeva je bio taj da se napravi portabilan OS. Obzirom da razliite hardverske platforme podrazumijevaju mnotvo hardverskih razlika, Microsoft nastoji da sakrije iste implementacijom tankog sloja na dnu operativnog sistema: HAL-a. HAL, drugim rijeima pojednostavljuje HW ureaje (skriva detalje) ostatku OS-a. Ovaj sloj ustvari osigurava interfejs izmeu NT Executive modula i sistemskog hardware-a. Portabilnost se implementira tako da je HAL dio code-a koji se razlikuje kod razliitih procesora (Intel, Alpha). Za svaku od ovih platformi koristi se posebno razvijen HAL, koji se razlikuje od HAL-a kod druge (drugih) platformi. Ideja je ta da ostatak OS-a koristi HAL servise (procedure), koji su isti za sve arhitekture : portability. Kernel Neposredno iznad HAL-a nalazi se sloj kojeg Microsoft naziva kernel. U literaturi se ovaj sloj spominje i pod imenom mikrokernel to bas i nije najsretniji naziv, obzirom da ovaj sloj nije nikada u pravom smislu rijei bio mikrokernel. Pogotovo ne danas, kada je gotovo itav Windows 2000 (XP) operativni sistem stavljen u kernel space. Glavna uloga kernela je rasporeivanje thread-ova na raspoloive procesore na osnovu njihovih brojeva prioriteta. Pored ostalih zadataka kernel se koristi i za podrku rada sa UPS sistemom. Sloj koji u ovom OS-u nosi ime kernel nije isto to i kernel mod. Kernel sloj je dio code-a NT OS-a, dok je kernel mod privilegovani skup operacija podranih od strane procesora. Executive services Executive services je komponenta (skup procedura) koja predstavlja osnovne funkcije OS-a koje se mogu dati na raspolaganje aplikacijama. Radi se o servisima kao to su upravljanje virtualnom memorijom, upravljanje I/O ureajima, upravljanje procesima, itd. Svaka izvrna komponenta funkcionira kao server, relativno je neovisna, te pua prikladan interfejs za komuniciranje sa drugim komponentama. Ovdje navodimo osnovne komponente executive (izvrnih) servisa skupa sa zadacima koje obavljaju:

    Objektni menader: kreiranje, modifikacija, brisanje objekata (npr. niti, procesa, fajlova, direktorija, I/O ureaja, itd.) koritenih od strane svih komponenti koje sainjavaju NT Executive

    Procesni menader: kreiranje, okonavanje procesa i niti, kao i dobivanje informacija o procesima i nitima

    Memory Manager: upravljanje virtualnom memorijom Security Reference Monitor: primjena svih sigurnosnih mehanizama na raunaru

    (npr. login) I/O Menader: razmjena podataka sa perifernim ureajima, upravljanje I/O

    ureajima, pohranjuje drajvere ureaja PnP Menader: upraljanje PnP (plug and play) mehanizmima Power Menader: upravljanje napajanjem sistema (npr. gasi idle monitore,

    monitoruje baterije na laptopima)

  • Fakultet informacijskih tehnologija

    [email protected]

    UOS::Predavanja Copyright by: FIT

    8

    LPC menader: komunikacija procesa Window Menader i GDI: upravljanje prozorima, imidima, sadrajem ekrana

    Prilikom boot-anja Windows 2000 se uitava u memoriju kao kolekcija fajlova. Glavni dio OS-a se sastoji od kernela i executive-a, i lociran je u fajlu ntoskrnl.exe. HAL se nalazi u zasebnom fajlu: hall.dll. Za opis ostalih Windows arhitektura studenti se upuuju na itanje poglavlja 2.7, knjige Operativni sistemi: Knjiga 1. Obrada i prijevod dijelova sljedee litarature:

    1. Tanenbaum (2001), Modern Operating Systems, 2nd edition 2. Silberschatz (2004), Operating System Concepts, 6th edition