Subject name | Operating Systems |
Details | Code VSITE142 Abbrev. OST ECTS 5 Year 3 Semester Winter semester Type obligatory NQF Level 6 Bachelor study E-Learning 0% |
Activities | IT zg - Sum 24/25 ECTS Units Hours Total T 1 15 2 30
N 0.5 15 1 15
L 0.5 8 2 15
S 0 0 0 0
PN 0 0 0 0
PT 0 3 1 0
PR 0 0 0 0
EN 0 0 0 0
ET 0 1 2 0
AL 3 1 90 90
|
Teachers | Leaders: Jurica Đurić, v. pred., Aleksandar Pikić, pred. |
Prerequisits | None |
Content | 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.
|
Learning objectives | 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.
|
Learning outcomes | 1. Define basic characteristics of an operating system (which computer parts are managed by an operating system and how). 2. Define basic terms related to operating systems (tasks, threads, mutual excluding, mutex, semaphores, indicators, etc.). 3. Defining programming solutions related to problems of multitasking and multithreading. 4. Recognize potential problems which may appear in programming solutions that use multitasking and multithreading. 5. Define initial parameters in designing system (hardware), regarding physical features and working mode of hardware parts managed by an operating system). 6. Knowledge of API functions and dynamic libraries (DLL) operation mode in operating system environment.
|
Competencies | 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.
|
Recommended Literature | 1. Andrew, S. Tanenbaum: Operating Systems: Design and Implementation, Prentice-Hall, 1987.
|
Additional Literature | |
lectures (T) | - Uvod u operacijske sustave. Definicija operacijskog sustava. Sklopovlje nad kojim upravlja operacijski sustav. Upravljanje nad resursima. Operacijski sustav kao virtualni stroj (API).
- 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).
- 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.
- 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).
- 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.
- 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.
- 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.
- 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.
- 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).
- 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).
- 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).
- 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).
- 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.
- 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.
- Not defined
|
numeric exercises (N) | - Operacijski sustavi. Definicija. Sklopovlje. Virtualni stroj.
- Korisnički, jezgrin mod rada. Struktura, inicijalizacija operacijskog sustava.
- Zadaća. Višezadaćnost. Niti.
- Raspoređivanje vremena procesora, strategije.
- Višenitnost. Mutex objekt.
- Semafori, primjeri korištenja.
- Monitori, uvjetne varijable, primjeri korištenja.
- Virtualna memorija. Straničenje (jednorazinsko, dvorazinsko).
- Pogreška stranice. Strategije zamjene stranica.
- Alokacija memorije. Fragmentacija memorije.
- Datotečni sustavi. Datoteke, direktoriji (mape).
- Alokacija diska. Uzastopna, povezana, indeksirana. FAT32, inodes, NTFS.
- DLL. Mapiranje (implicitno, eksplicitno).
- Hrpa. Standardna, korisnička. Win32 API.
- Not defined
|
laboratory exercises (L) | - Što su operacijski sustavi, povijest operacijskih sustava, upoznavanje sa osnovama operacijskih sustava, opčenito o procesima i thread-ovima, handle-ovim.
- Korištenje procesa na primjeru programa u programskom jeziku C, osnovna sinkronizacija programskog kôda.
- Korištenje thread-ova na primjeru programa u programskom jeziku C, sinkronizacija programskog kôda pomoću mutex-a.
- Usporedba sinkronizacije programskog kôda pomoću mutex-a i binarnog semafora, sinkronizacija programskog kôda pomoću semafora.
- Alokaciju podataka na heap-u, korištenje memorijske mape.
- Not defined
- Not defined
- Not defined
|
preliminary exam - theory (PT) | - 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.
- 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.
- 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.
|
exam - theory (ET) | - 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).
|
autonomus learning (AL) | - kolokviji, konzultacije, samostalno učenje, samostalno rješavanje numeričkih zadataka, samostalni rad u laboratoriju
|