basics about machine and assembly languages
content and organization of object files
assembler, linker, loader
static and dynamic linking
macro processors
system calls and interrupts
input/output implementation and file system tools
memory management
debugging
linux kernel
virtual machines
loading, linking and running in java virtual machine
System software
Tomaž Dobravec
Leland L. Beck: System software: An Introduction to Systems Programming (3. izdaja). Addison-Wesley, 1997.
K. Robbins and S. Robbins: UNIX Systems Programming: Communication, Concurrency and Threads (2.izdaja). Prentice Hall, 2003.
Damjan Zazula, Mitja Lenič: Principi sistemske programske opreme. Založba FERI 2008
Objectives:
The main goal of this course is to introduce the concepts, tools and standards of system programming and to show the current implementations in the actual operating systems.
Competences:
Developing skills in critical, analytical and synthetic thinking.
The ability to understand and solve professional challenges in computer and information science.
The ability to define, understand and solve creative professional challenges in computer and information science,
The ability to apply acquired knowledge in independent work for solving technical and scientific problems in computer and information science, the ability to upgrade acquired knowledge.
Basic skills in computer and information science, which includes basic theoretical skills, practical knowledge and skills essential for the field of computer and information science,
Practical knowledge and skills of computer hardware, software and information technology necessary for successful professional work in computer and information science.
Knowledge and understanding:
The knowledge of the basic terms of system programming, operating systems and tools with implementation. Understanding the principles of system programs and some other basic building blocks of the operating system.
Application:
Use and development of system software.
Reflection:
Knowledge of the basic concepts of system software is crucial to understanding how a computer system works. Knowledge is useful both in application and development of user software, as well as in the design and manufacture of hardware.
Transferable skills:
The knowledge of the basic building blocks of a computer system helps us to find the limits of computer system and therefore contributes to higher quality work in virtually all areas of computer use and development of software and hardware.
Lectures, exercises and home work
Continuing (homework, midterm exams, project work)
Final (written and oral exam)
grading: 5 (fail), 6-10 (pass) (according to the Statute of UL)
MIHELIČ, Jurij, DOBRAVEC, Tomaž. SicSim : a simulator of the educational SIC/XE computer for a system-software course. Computer applications in engineering education, ISSN 1061-3773. [Print ed.], Jan. 2015, vol. 23, no. 1, str. 137-146, ilustr. , doi: . [COBISS-SI-ID 10241620]
ČEŠNOVAR, Rok, RISOJEVIĆ, Vladimir, BABIĆ, Zdenka, DOBRAVEC, Tomaž, BULIĆ, Patricio. A GPU implementation of a structural-similarity-based aerial-image classification. The journal of supercomputing, ISSN 0920-8542, Aug. 2013, vol. 65, no. 2, str. 978-996, ilustr. , doi: . [COBISS-SI-ID 9619028]
BULIĆ, Patricio, DOBRAVEC, Tomaž. An approximate method for filtering out data dependencies with a sufficiently large distance between memory references. The journal of supercomputing, ISSN 0920-8542, 2011, vol. 56, no. 2, str. 226-244, ilustr. [COBISS-SI-ID 7412820]
DOBRAVEC, Tomaž, ŽEROVNIK, Janez, ROBIČ, Borut. An optimal message routing algorithm for circulant networks. Journal of Systems Architecture, ISSN 1383-7621. [Print ed.], 2006, vol. 52, no. 5, str. [298]-306, ilustr. [COBISS-SI-ID 5323348]
DOBRAVEC, Tomaž, ROBIČ, Borut. Restricted shortest paths in 2-circulant graphs. Computer communications, ISSN 0140-3664. [Print ed.], March 2009, vol. 32, no. 4, str. 685-690, ilustr. [COBISS-SI-ID 6966356]