Repozitorij

Anketa

Na ovoj stranici trenutno nije odabrana niti jedna anketa!

Operacijski sustavi

Šifra: 40730
ECTS: 6.0
Nositelji: doc. dr. sc. Leonardo Jelenković
Izvođači: doc. dr. sc. Leonardo Jelenković - Auditorne vježbe
Prijava ispita: Studomat
Opterećenje:

1. komponenta

Vrsta nastaveUkupno
Predavanja 30
Auditorne vježbe 30
* Opterećenje je izraženo u školskim satima (1 školski sat = 45 minuta)
Opis predmeta:
CILJEVI PREDMETA: Osnovni cilj predmeta Operacijski sustavi je kod studenata razviti razumijevanje da operacijski sustavi služe dvijema svrhama: prvo, da operacijski sustavi moraju raspodijeliti računalne aktivnosti tako da osiguraju dobru iskorištenost računalnih sredstava i, drugo, da uspostave prikladno okruženje za pripremu i izvođenje programa.

ISHODI UČENJA NA RAZINI PROGRAMA KOJIMA PREDMET DOPRINOSI:

1. ZNANJE I RAZUMIJEVANJE
1.4. demonstrirati poznavanje i razumijevanje osnovnih načela i ideja na kojima su sazdana računala, odnosno informacijska i komunikacijska tehnologija
1.5. demonstrirati poznavanje i razumijevanje uporabe računala i programske podrške
1.6. demonstrirati poznavanje i razumijevanje rukovanja podacima, rješavanja problema i programiranja
2. PRIMJENA ZNANJA I RAZUMIJEVANJA
2.5. opisati osnovne informatičke koncepte
2.6. usvojiti algoritamske metode mišljenja i zaključivanja i primijeniti ih u rješavanju problema
2.7. povezati informatiku s drugim nastavnim predmetima, tj. koristiti računala za rješavanje problema u drugim područjima
2.8. pripremiti učenike za cjeloživotno učenje u području informacijsko komunikacijskih tehnologija
5. SPOSOBNOST UČENJA
5.1. samostalno koristiti stručnu literaturu i ostale relevantne izvore informacija

OČEKIVANI ISHODI UČENJA NA RAZINI PREDMETA:

Nakon uspješno savladanog predmeta, studenti će moći:
* napisati višedretveni program i program koji stvara više procesa
* demonstrirati rad podsustava za prihvat prekida
* primijeniti sinkronizacijske mehanizme
* navesti dijelove jezgre operacijskog sustava
* analizirati ponašanje determinističkog i nedeterminističkog sustava zadataka
* nabrojati i objasniti algoritme raspoređivanja
* koristiti funkcije za dodjeljivanje spremnika

SADRŽAJ PREDMETA:

1. Uvod. Zadaci operacijskog sustava. Sučelja. Hijerarhijska izgradnja operacijskog sustava. Načini izučavanja operacijskog sustava. Dijelovi operacijskog sustava. Model jednostavnog računala. Uloga procesora i radnog spremnika u rudimentarnom računalu. Instrukcijska dretva. Računalni proces. Zamjena konteksta.
2. Ulazno-izlazne operacije. Prekidni način rada procesora. Podsustavi za prihvat prekida. Sklopovska potpora za ostvarenje višestrukog prekidanja. Prenošenje blokova znakova. Sklopovi s neposrednim pristupom spremniku.
3. Programi, procesi i dretve. Višedretveno ostvarenje zadataka, sustav podzadataka. Model višedretvenosti. Nezavisnost dretvi. Međusobno isključivanje dviju dretvi. Dekkerov postupak. Petersonov postupak.
4. Međusobno isključivanje većeg broja dretvi. Lamportov protokol. Sklopovska potpora međusobnom isključivanju u čvrsto povezanim sustavima. Jednostavni model jezgre. Struktura podataka jezgre.
5. Opisnik dretve. Stanja dretvi. Jezgrine funkcije za ulazak u jezgru i izlazak iz jezgre. Međusobno isključivanje i sinkronizacija: jezgrine funkcije za binarni i opći semafor.
6. Jezgrine funkcije za osnovne ulazno-izlazne operacije i ostvarivanje kašnjenja. Ostvarivanje jezgre u čvrsto povezanom višeprcesorskom sustavu. Problem proizovođača i potrošača. Komunikacija preko neograničenog i ograničenog međuspremnika te preko reda poruka.
7. Sinkronizacija dretvi. Potpuni zastoj. Uvjeti za nastajanje potpunog zastoja. Izbjegavanje potpunog zastoja. Problem 5 filozofa. Hoareov koncept monitora. Primjeri izgradnje monitora.
8. Vremenska analiza računalnih sustava: osnovne koncepcije i definicije. Ponašanje determinističkog periodnog sustava zadataka. Osnovni modeli stohastičkog sustava zadataka.
9. Analiza sustava s Poissonovom razdiobom dolazaka i eksponencijalnom razdiobom trajanja obrade. Algoritmi raspoređivanja: raspoređivanje po redu prispijeća, prioritetno i kružno raspoređivanje.
10. Logički i fizički adresni prostor. Diskovi kao glavni pomoćni spremnici. Statičko i dinamičko dodjeljivanje spremnika. Interna i eksterna fragmentacija.
11. Načela preklopnog načina uporabe spremnika. Straničenje kao osnova za ostvarenje virtualne memorije.
12. Sklopovska podloga straničenju. Straničenje na zahtjev. Strategije zamjene stranica.
13. Datotečni podsustav. Smještaj datoteka na diskovima. Opis spremničkog prostora. Opisnici datoteka. Tipične funkcije datotečnih sustava.

OBVEZE STUDENATA:

OCJENJIVANJE I VREDNOVANJE RADA STUDENATA:

Studenti tijekom predavanja pišu kratke (nenajavljene) testove i na temelju uspjeha na tim testovima mogu ostvariti do 10 bodova. Testovi služe i za posrednu provjeru nazočnosti studenata na predavanju.
Tijekom semestra pišu se dva kolokvija (međuispit i završni ispit). U prvi kolokvij ulazi gradivo do tada prikazano na predavanjima, dok u drugi kolokvij ulazi cijelo gradivo. Zadaci se sastoje od teoretskih pitanja, ali i praktičnih zadataka (kakvi su (će biti) prikazani na predavanjima).
Studenti tijekom semestra trebaju napraviti niz programa kojima se nadopunjuje teoretsko znanje s predavanja. Domaća zadaća sastoji se u proučavanju uputa za izradu programa koje su dostupne na Web stranicama predmeta te samostalna izrada zadanih programa. Zadaci će biti dodatno objašnjeni i na predavanjima. Prezentacija svih tih programa ispitivaču u laboratoriju je obaveza svakog studenta te donosi do 15 bodova (zbirno).
Literatura:
  1. L. Budin, M. Golub, D. Jakobovic, L. Jelenkovic, Operacijski sustavi, Element, Zagreb, 2010.
Preduvjeti za:
Upis predmeta :
Položen : Građa računala
5. semestar
Obavezni predmet - Redovni Studij - Fizika i informatika; smjer: nastavnički
Termini konzultacija:

Bodovi su uneseni u ovaj sustav. Zadatke i rezultate možete vidjeti u nastavku ove obavijesti.

Inačica 1.
Sustav (promijenjeni) frizerke je opisan sljedećim pseudokodom:

Frizerka:
    PONAVLJAJ
        čekaj signal da je klijent ušao
        RADI_FRIZURU
        javi da je frizura gotova
        čekaj da klijent ode
        propusti idućeg klijenta u salon

Klijent:
    čekaj na ulaz u salon
    UĐI_U_SALON
    javi da si ušao
    čekaj da frizura bude napravljena
    IZAĐI_IZ_SALONA
    signaliziraj odlazak

Prepisati kod (ažurirati predložak rješenja) tako da se dijelovi pisani malim slovima zamijene odgovarajućim pozivima ČekajSem(<semafor>) ili PostaviSem(<semafor>) (ili <semafor>.acquire() i <semafor>.release()).

Rješenje:

Frizerka:
    PONAVLJAJ
        ČekajSem(klijent)      #čekaj signal da je klijent ušao
        RADI_FRIZURU
        PostaviSem(frizura)    #javi da je frizura gotova
        ČekajSem(otišao)       #čekaj da klijent ode
        PostaviSem(može_idući) #propusti idućeg klijenta u salon

Klijent:
    ČekajSem(može_idući)       #čekaj na ulaz u salon
    UĐI_U_SALON
    PostaviSem(klijent)        #javi da si ušao
    ČekajSem(frizura)          #čekaj da frizura bude napravljena
    IZAĐI_IZ_SALONA
    PostaviSem(otišao)         #signaliziraj odlazak

Semafori i početne vrijednosti:

OSEM[klijent].v = 0
OSEM[frizura].v = 0
OSEM[otišao].v = 0
OSEM[može_idući].v = 1

Inačica 2.
Sustav (promijenjeni) frizerke je opisan sljedećim pseudokodom:

Frizerka:
    PONAVLJAJ
        propusti idućeg klijenta u salon
        čekaj signal da je klijent ušao
        RADI_FRIZURU
        javi da je frizura gotova
        čekaj da klijent ode
Klijent:
    čekaj na ulaz u salon
    UĐI_U_SALON
    javi da si ušao
    čekaj da frizura bude napravljena
    IZAĐI_IZ_SALONA
    signaliziraj odlazak

Prepisati kod (ažurirati predložak rješenja) tako da se dijelovi pisani malim slovima zamijene odgovarajućim pozivima ČekajSem(<semafor>) ili PostaviSem(<semafor>) (ili <semafor>.acquire() i <semafor>.release()).

Rješenje:

Frizerka:
    PONAVLJAJ
        PostaviSem(može_idući) #propusti idućeg klijenta u salon
        ČekajSem(klijent)      #čekaj signal da je klijent ušao
        RADI_FRIZURU
        PostaviSem(frizura)    #javi da je frizura gotova
        ČekajSem(otišao)       #čekaj da klijent ode

Klijent:
    ČekajSem(može_idući)       #čekaj na ulaz u salon
    UĐI_U_SALON
    PostaviSem(klijent)        #javi da si ušao
    ČekajSem(frizura)          #čekaj da frizura bude napravljena
    IZAĐI_IZ_SALONA
    PostaviSem(otišao)         #signaliziraj odlazak

Semafori i početne vrijednosti:

OSEM[klijent].v = 0
OSEM[frizura].v = 0
OSEM[otišao].v = 0
OSEM[može_idući].v = 0
Autor: Leonardo Jelenković
Popis obavijesti