Učni načrt predmeta

Predmet:
Operacijski sistemi
Course:
Operating Systems
Študijski program in stopnja /
Study programme and level
Študijska smer /
Study field
Letnik /
Academic year
Semester /
Semester
Informacijske in komunikacijske tehnologije, 2. stopnja Komunikacijske tehnologije 1 2
Information and Communication Technologies, 2nd cycle Communication Technologies 1 2
Vrsta predmeta / Course type
Izbirni / Elective
Univerzitetna koda predmeta / University course code:
IKT2-641
Predavanja
Lectures
Seminar
Seminar
Vaje
Tutorial
Klinične vaje
work
Druge oblike
študija
Samost. delo
Individ. work
ECTS
15 15 15 105 5

*Navedena porazdelitev ur velja, če je vpisanih vsaj 15 študentov. Drugače se obseg izvedbe kontaktnih ur sorazmerno zmanjša in prenese v samostojno delo. / This distribution of hours is valid if at least 15 students are enrolled. Otherwise the contact hours are linearly reduced and transfered to individual work.

Nosilec predmeta / Course leader:
prof. dr. Mihael Mohorčič
Sodelavci / Lecturers:
doc. dr. Roman Novak
Jeziki / Languages:
Predavanja / Lectures:
slovenščina, angleščina / Slovenian, English
Vaje / Tutorial:
Pogoji za vključitev v delo oz. za opravljanje študijskih obveznosti:
Prerequisites:

Zaključen študijski program prve stopnje s področja naravoslovja, tehnike ali računalništva.

Student must complete first-cycle study programmes in natural sciences, technical disciplines or computer science.

Vsebina:
Content (Syllabus outline):

Uvod: struktura in koncepti operacijskih sistemov, zgodovina, osnove strojne opreme (procesorji, pomnilnik, vhodno/izhodne enote, vodila), tipi operacijskih sistemov.

Procesi in vzporednost: osnove procesov in vzporednosti izvajanja, stanja procesov, razvrščanje procesov, niti.

Interakcija procesov: medprocesna komunikacija (IPC), sinhronizacija procesov, semaforji, medsebojno izključevanje, monitorji, klasični problemi IPC, zaznavanje, reševanje, izogibanje in preprečitev smrtnih objemov.

Upravljanje s pomnilnikom: sheme upravljanja s pomnilnikom, sekundarni pomnilnik, menjave, navidezni pomnilnik, segmentacija, trdno razumevanje algoritmov v uporabi.

Vhod/izhod: vhodno/izhodne enote, neposreden dostop do pomnilnika, prekinitve, gonilniki enot, grafični vmesniki, sekundarni in terciarni mediji.

Datotečni sistem: struktura datotečnega sistema, metode razporejanja, upravljanje z nezasedenim
prostorom, sistemi masovnega shranjevanja, strukture RAID, terciarne strukture shranjevanja.

Porazdeljeni sistemi: porazdeljeni datotečni sistemi, sinhronizacija in komunikacija med porazdeljenimi procesi.

Zaščita in varnost: grožnje, vrste napadov, osnove kriptografije, mehanizmi overjanja in nadzora dostopa, specifikacija in uveljavitev pravil dostopa do sistemskih virov.

Specifični operacijski sistemi: operacijski sistemi za delo v realnem-času, kartični in vgrajeni operacijski sistemi, operacijski sistemi dlančnikov in mobilnih telefonov.

Introduction: operating system structures and concepts, history of operating systems, hardware basics (processors, memory, input/output devices, buses), types of operating systems.

Processes and Concurrency: concept of process and concurrency, process states, process scheduling, threads.

Interaction of Processes: interprocess communication (IPC), process synchronization, semaphores, mutexes, monitors, classical IPC problems, deadlock detection, recovery, avoidance and prevention.

Storage Management: memory-management schemes, secondary storage to back up main memory, swapping, virtual memory, segmentation, firm understanding of the algorithms used.

Input/Output: input/output devices, direct memory access, interrupts, device drivers, graphical user interfaces, secondary and tertiary storage.

File System: file system structure, allocation methods, freespace management, mass-storage systems, RAID structure, tertiary-storage structure.

Distributed Systems: distributed file system, process synchronization and communication.

Protection and Security: threats, types of attacks, cryptography basics, authentication and authorization mechanisms, specification and enforcement of the access rules to the system resources.

Specialized Operating Systems: basic overview of real-time, embedded, smart card, handheld and mobile operating systems.

Temeljna literatura in viri / Readings:

Izbrana poglavja iz naslednjih knjig: / Selected chapters from the following books:
A. Silberschatz, P.B. Galvin, and G. Gagne, Operating System Concepts (9th edition). Wiley, 2013. ISBN
978-1-118-09375-7.
A.S. Tanenbaum, and H. Bos, Modern Operating Systems (4th edition). Pearson Education, 2014. ISBN
978-1-292-06142-9.
B. Jacob, S.W. Ng, and D.T. Wang, Memory Systems: Cache, DRAM, Disk. Morgan Kaufman, 2008. ISBN
978-0-123-79751-3.
D.A. Patterson, and J.L. Hennessy, Computer Organization and Design (5th edition). Morgan Kaufman,
2013. ISBN 978-0-124-07726-3.

Cilji in kompetence:
Objectives and competences:

Cilj predmeta je:
- Podati študentom koncepte modernih operacijskih sistemov na način, ki ni vezan na konkretni operacijski sistem.
- Posredovati najpomembnejše rešitve in algoritme, ki so prisotni v mnogih komercialnih operacijskih sistemih, z namenom usposobiti študente za učinkovito uporabo operacijskih sistemov.
- Podati študentom kvalitetno osnovno znanje o procesih, mehanizmih vzporednega izvajanja, postopkih upravljanja s pomnilnikom, interakciji z vhodno/izhodnimi enotami, datotečni arhitekturi, zaščiti in varnosti operacijskih sistemov.

Kompetence študenta bodo po uspešno opravljenem predmetu obsegale uporabno strokovno znanje o operacijskih sistemih.

The aim of the course is:
- To present the fundamental concepts and algorithms of modern operating systems in a way, which is not tied to one particular operating system.
- To gain general knowledge that allows an efficient use of commercial operating systems.
- To present the architecture of an operating system, which includes the concepts of processes and concurrency, memory-management schemes, interaction with the input/output devices, storage systems, protection and security embedded in the operating systems.

The competencies of the students completing this course successfully will include applicable expert knowledge of operating systems.

Predvideni študijski rezultati:
Intendeded learning outcomes:

Študenti bodo z uspešno opravljenimi obveznostmi tega predmeta pridobili:
- poznavanje konceptov operacijskih sistemov
- poznavanje najpomembnejših rešitev in algoritmov, povezanih z delovanjem operacijskih sistemov
- poznavanje in razumevanje arhitekturnih konceptov operacijskih sistemov, vsebovane programske in strojne opreme
- sposobnost ocene zmožnosti operacijskega sistema v povezavi z dano strojno opremo za izvršitev zadane naloge
- sposobnost optimizacije programskih rešitev v interakciji z okoljem operacijskega sistema
- sposobnost prenašanja rešitev iz okolja operacijskih sistemov na sorodne probleme pri snovanju informacijskih sistemov in rešitev
- sposobnost povezovanja rešitev širokega spektra problemov v celoto

Students successfully completing this course will acquire:
- knowledge of operating system concepts
- knowledge of the most important solutions and algorithms related to operating systems
- broad understanding of operating system structures and concepts, its software and hardware components
- ability to assess the operating system capabilities for a given hardware platform and task at hand
- ability to optimize software solutions for the interaction with an operating system environment
- potential to transfer learnt problem solutions to other related problems in the field of information technology
- capability to integrate, as a whole, a broad spectrum of solutions

Metode poučevanja in učenja:
Learning and teaching methods:

Predavanja, seminar, konzultacije, individualno
delo.

Lectures, seminar, consultations, individual work.

Načini ocenjevanja:
Delež v % / Weight in %
Assesment:
Seminarska naloga
50 %
Seminar work
Ustni zagovor seminarske naloge
50 %
Oral defense of seminar work
Reference nosilca / Lecturer's references:
1. MILOSHESKI, Ljupcho, CERAR, Gregor, BERTALANIČ, Blaž, FORTUNA, Carolina, MOHORČIČ, Mihael. Self-supervised learning for clustering of wireless spectrum activity. Computer Communications. [Online ed.]. [in press] 2023, vol. , [article no.], str. 1-21, ilustr. ISSN 1873-703X
2. BREGAR, Klemen, NOVAK, Roman, MOHORČIČ, Mihael. Evaluation of range-based indoor tracking algorithms by merging simulation and measurements. EURASIP Journal on wireless communications and networking. 2019, vol. 2019, str. 173-1-173-11. ISSN 1687-1499. DOI: 10.1186/s13638-019-1489-y
3. FORTUNA, Carolina, YETGIN, Halil, OGRIZEK, Leo, MUNICIO, Esteban, MARQUEZ-BARJA, Johann M., MOHORČIČ, Mihael. HANNA: Human-friendly provisioning and configuration of smart devices. Engineering applications of artificial intelligence. [Online ed.]. 2023, vol. 126, [article no.], 106745, str. 1-11, ilustr. ISSN 1873-6769. DOI: doi.org/10.1016/j.engappai.2023.106745
4. FORTUNA, Carolina, YETGIN, Halil, MOHORČIČ, Mihael. Smart infrastructures : artificial intelligence-enabled lifecycle automation. IEEE industrial electronics magazine. [Print ed.]. Jun. 2023, vol. 17, iss. 2, str. 37-47, ilustr. ISSN 1932-4529. DOI: 10.1109/MIE.2022.3165673
5. CERAR, Gregor, BERTALANIČ, Blaž, MOHORČIČ, Mihael, GROBELNIK, Marko, FORTUNA, Carolina. Feature management for machine learning operation pipelines in AI native networks. V: BalkanCom 2023, 2023 International Balkan Conference on Communications and Networking (BalkanCom) took place 5-8 June 2023 in İstanbul, Turkey