Naziv predmeta

Operacijski sustavi

Detalji
Kod
VSITE142
Skr.
OST
ECTS
5
Godina
3
Semester
Zimski semestar
Vrsta
obvezatni
Razina HKO 6
Preddiplomski studij
E-Learning
0%
Aktivnosti
IT zg - Zim 19/20
ECTS
Jedinice
Sati
Svega
P
1
15
2
30
A
0.5
15
1
15
L
0.5
8
2
15
S
0
0
0
0
KA
0
0
0
0
KP
0
3
1
0
PR
0
0
0
0
IP
0
0
0
0
IU
0
1
2
0
SU
3
1
90
90
NastavniciNositelji: Aleksandar Pikić, pred.
Asistenti: Jurica Đurić, pred.
PreduvjetiNema
Sadržaj

Struktura operacijskog sustava. Jezgra sustava. Sustavni pozivi, preklapanje konteksta. Procesi. Komunikacija među procesima, signali, sinkronizacija. Nizanje procesa, povezivanje procesa. Prekidi. Upravljanje memorijom, stranice, virtualna memorija, segmentacija. Sustav datoteka. Datoteke. Direktoriji. Postupci dodjele. Mrežni datotečni sustavi. Sigurnost i zaštita. Distribuirani operacijski sustavi. Sinkronizacija, čekanje, semafori i indikatori. Mrežni operacijski sustavi. UNIX, WinNT.

Ciljevi učenja

Način rada operacijskog sustava i njegovih podsustava. Prepoznavanje potencijalnih problema kod dizajniranja računalnog sustava s obzirom na način rada operacijskog sustava.
Poznavanje MS Windows API-ja i njihovo praktično korištenje (programski jezik C). Poznavanje rada dinamičkih biblioteka (dll datoteke) na MS Windowsima i njihovo praktično korištenje.

Ishodi učenja

1. Definirati osnovne značajke operativnog sustava (kojim dijelovima računala upravlja operativni sustav i na koji način).
2. Definirati osnovne pojmove vezane uz operacijske sustave (zadaće, niti, međusobno isključivanje, muteksi, semafori, notifikacija itd).
3. Definirati programska rješenja vezana uz probleme višezadaćnosti i višenitnosti.
4. Prepoznati potencijalne probleme koji se mogu javiti u programskim rješenjima koja koriste višezadaćnost i višenitnost.
5. Definirati inicijalne pretpostavke kod dizajniranja sustava (hardware-a) s obzirom na fizičke karakteristike i način rada dijelova hardware-a upravljanim od strane operativnog sustava.
6. Poznavati način rada API funkcija i dinamičkih biblioteka (DLL) u okruženju operativnih sustava,

Sposobnosti

Kolegij pruža temeljna znanja s područja operacijskih sustava kao osnovu jezgre računarstva, te osposobljava polaznika za korištenje standardnih usluga sustava korisničkim programima.

Preporučena literatura

1. Andrew, S. Tanenbaum: Operating Systems: Design and Implementation, Prentice-Hall, 1987.

Dodatna literatura
predavanja (P)
  1. Uvod u operacijske sustave. Definicija operacijskog sustava. Sklopovlje nad kojim upravlja operacijski sustav. Upravljanje nad resursima. Operacijski sustav kao virtualni stroj (API).
  2. Korisnički i jezgrin mod rada (iznimke, prekidi, sistemski pozivi). Struktura operacijskog sustava (dijelovi). Početak rada (inicijalizacija) operacijskog sustava. Uvod u procese (zadaće).
  3. Definicija procesa (zadaće). Višezadaćnost. Resursi potrebni procesu. Stvaranje procesa. Stanja procesa. Operacije nad procesima. Kontrolni blok procesa. Definicija niti (threada). Prednosti niti nad zadaćama. Stanja niti. Kontrolni blok niti.
  4. Raspoređivanje vremena procesora. Vrste raspoređivanja vremena procesora (iznuđena i neiznuđena). Ciljevi raspoređivanja vremena procesora. Strategije raspoređivanja vremena procesora (mane, prednosti).
  5. Višenitnost. Nezavisne i kooperativne niti. Primjer problema zbog nesinkroniziranosti kooperativnih niti. Međusobno isključivanje. Definicija i osnovni pojmovi. Mutex objekt. Rješenje problema gladnih filozofa pomoću mutexa.
  6. Semafori. Uvodne napomene. Interna struktura semafora. Osnovne operacije nad semaforima (Wait, Signal). Tri načina korištenja semafora (brava, brojač i brava, notifikacija). Rješenje problema gladnih filozofa pomoću semafora. Rješenje problema ograničenog spremnika pomoću semafora.
  7. Monitori. Definicija monitora. Jednostavni monitori. Uvjetne varijable. Operacije nad uvjetnim varijablama (Wait, Signal, Broadcast). Tipovi monitora (Hoare, Mesa). Usporedba operacija između uvjetnih varijabli i semafora. Implementacija semafora pomoću uvjetnih varijabli. Rješenje problema gladnih filozofa pomoću uvjetnih varijabli. Rješenje problema ograničenog spremnika pomoću uvjetnih varijabli.
  8. Virtualna memorija. Uvodne napomene. Načini upravljanja memorijom. Transformacija adrese (adresnog prostora procesa). Transformacija pomoću baze i granice. Straničenje (paging). Jednorazinsko i dvorazinsko straničenje. Usporedba potrošnje memorije između jednorazinskog i dvorazinskog straničenja.
  9. Računanje efektivnog vremena pristupa (kod straničenja). Korištenje translation look-aside buffer tehnike. Rukovanje pogreškom stranice. Datoteka stranica. Radni skup stranica. Vrste dohvaćanja stranica. Strategije zamjene stranica (mane i prednosti).
  10. Alokacija memorije. Uvodne napomene (malloc i free funkcije u prog. jeziku C, način rada). Fragmentacija memorije (vanjska i unutarnja), definicija i uzroci. Praćenje slobodnih memorijskih blokova. Oslobađanje memorije. Algoritmi alokacije memorijskog bloka (mane i prednosti).
  11. Datotečni sustavi. Uvodne napomene. Datoteke, definicija i osnovne operacije. Vrste datoteka (tekstualne, binarne). Direktorij (mapa), definicija i osnovne operacije. Pravila za imena direktorija i datoteka. Organizacija direktorija i datoteka (stablasta).
  12. Alokacija diska. Definicija bloka, klastera. Načini upravljanja slobodnim blokovima (bit vektor, povezana lista). Alokacija prostora za datoteku (uzastopna, povezana, indeksirana). FAT32, UNIX inode, NTFS (MFT).
  13. DLL. Statičke i dinamičke biblioteke. Definicija. Mapiranje DLL-a u adresni prostor procesa, implicitno i eksplicitno (Win32). Izvoz i uvoz funkcija i varijabli iz DLL-a. DLL header datoteka.
  14. Hrpa (heap). Definicija i kako je koristiti. Standardna hrpa procesa. Korisničke hrpe (stvaranje hrpe, alokacija i oslobađanje bloka memorije , uništavanje hrpe). Win32 API funkcije za upravljanje hrpom.
  15. Nije definirano
auditorne vježbe (A)
  1. Operacijski sustavi. Definicija. Sklopovlje. Virtualni stroj.
  2. Korisnički, jezgrin mod rada. Struktura, inicijalizacija operacijskog sustava.
  3. Zadaća. Višezadaćnost. Niti.
  4. Raspoređivanje vremena procesora, strategije.
  5. Višenitnost. Mutex objekt.
  6. Semafori, primjeri korištenja.
  7. Monitori, uvjetne varijable, primjeri korištenja.
  8. Virtualna memorija. Straničenje (jednorazinsko, dvorazinsko).
  9. Pogreška stranice. Strategije zamjene stranica.
  10. Alokacija memorije. Fragmentacija memorije.
  11. Datotečni sustavi. Datoteke, direktoriji (mape).
  12. Alokacija diska. Uzastopna, povezana, indeksirana. FAT32, inodes, NTFS.
  13. DLL. Mapiranje (implicitno, eksplicitno).
  14. Hrpa. Standardna, korisnička. Win32 API.
  15. Nije definirano
laboratorijske vježbe (L)
  1. Što su operacijski sustavi, povijest operacijskih sustava, upoznavanje sa osnovama operacijskih sustava, opčenito o procesima i thread-ovima, handle-ovim.
  2. Korištenje procesa na primjeru programa u programskom jeziku C, osnovna sinkronizacija programskog kôda.
  3. Korištenje thread-ova na primjeru programa u programskom jeziku C, sinkronizacija programskog kôda pomoću mutex-a.
  4. Usporedba sinkronizacije programskog kôda pomoću mutex-a i binarnog semafora, sinkronizacija programskog kôda pomoću semafora.
  5. Alokaciju podataka na heap-u, korištenje memorijske mape.
  6. Nije definirano
  7. Nije definirano
  8. Nije definirano
kolokvij - teorija (KP)
  1. Tijekom semestra održati će se tri kolokvija - sastavljena od teorijskih i programskih zadataka u 6., 10. i 15. tjednu nastave. Studenti/ice koji/e polože sva tri kolokvija oslobođeni su od polaganja ispita. Nepoloženi kolokviji mogu se polagati na kraju predavanja (ljetni termini za ljetni semestar, zimski za zimski semestar). Na sva tri kolokvija studenti moraju postići prosjek od 50% svih bodova, s time da za svaki od dva dijela moraju imati minimalno riješeno 40%. Prvi kolokvij se sastoji od četiri pitanja, dva teorijska i dva programska. Svako pitanje nosi po 25 %. Teorijska pitanja su iz predavanja Uvod u operacijske sustave do predavanja Višenitnost-mutex objekt (uključivo). Programski zadaci su korištenje mutex objekata za sinkroniziranje niti (korištenjem program. jezika C). Kolokvij traje 60 minuta.
  2. Drugi kolokvij se sastoji od četiri pitanja, dva teorijska i dva programska. Svako pitanje nosi po 25 %. Teorijska pitanja su iz predavanja Semafor do predavanja Računanje efektivnog vremena pristupa (kod straničenja) (uključivo). Programski zadaci su korištenje semafor objekata u višenitnim programima (korištenjem program. jezika C). Kolokvij traje 60 minuta.
  3. Treći kolokvij se sastoji od tri teorijska pitanja. Svako nosi po 33,33 %. Pitanja su iz predavanja Alokacija memorije do Hrpa (heap) (uključivo). Kolokvij traje 60 minuta.
ispit - teorija (IU)
  1. Ispit se sastoji od šest pitanja, četiri teorijska i dva programska. Ispit traje 90 minuta i nije dozvoljeno korištenje bilo kakvih materijala. Po potrebi predavač može zatražiti usmeno odgovaranje.Studenti/ice moraju postići prosjek od 50% svih bodova. Ispit se polaže u jesenskom ispitnom roku, ako kolegij nije položen preko kolokvija. Ocjena se određuje iz ukupnog rezultata dobivenog tako da se rezultat ispita ili kolokvija pomnoži s 0,8, rezultati na laboratorijskim vježbama s 0,15, a rezultati tjednih testova na predavanjima s 0,05. Tako dobiveni rezultat se pretvara u ocjene: 0-50% nedovoljan; 50-62,5% dovoljan; 62,5-75% dobar; 75-87,5% vrlo dobar; 87,5-100% izvrstan (odličan). Sadržaj ispita: korisnički i kernel mod rada (što dovodi do prijelaza), procesi, niti, semafori, monitori, virtualna memorija, straničenje (jednorazinsko i dvorazinsko), alokacija memorije, alokacija diska, FAT32, inodes, NTFS, DLL. Programski zadaci su korištenje mutex i semafor objekata u višenitnim programima (korištenjem program. jezika C).
samostalno učenje (SU)
  1. kolokviji, konzultacije, samostalno učenje, samostalno rješavanje numeričkih zadataka, samostalni rad u laboratoriju