Introduction to operating systems

ID: 7090
Course type: scientific and vocational
Course coordinator: Lazović M. Goran
Lecturers: Lazović M. Goran
Contact: Lazović M. Goran
Level of studies: B.Sc. (undergraduate) Academic Studies – Information Technologies in Mechanical Engineering
ECTS: 6
Final exam type: written+oral
Department: Department of Information Technologies in Mechanical Engineering

Lectures

Goal

The main goal of this course is to understand the basic concepts and algorithms in the design and implementation of operating systems. As basis, the xv6 operating system is used.

Outcome

Students will be able to analyze and improve the implementation of individual operating system components. Furhermore, with the acquired knowledge, they will be able to write sophisticated programs using advanced programming techniques.

Theoretical teaching

Development of operating systems. Processor, processor virtualization. Processes, process abstraction. Process scheduling, process scheduling policies. Inter processes communication. Memory, memory virtualization. Segmentation, paging. Page replacement, page replacement policies. Threads, concurent execution. Critical section, race conditions. Synchronization, classic synchronization problems. Deadlock. File system, file system implementation.

Practical teaching

Laboratory exercises keep track to the content of the course and for the most part are reduced to the appropriate adaptation of the source xv6 code.

Attendance requirement

Кnowledge of C programming

Resources

Computer lab

Assigned hours

Total assigned hours: 75

Active teaching (theoretical)

New material: 30
Elaboration and examples (recapitulation): 0

Active teaching (practical)

Auditory exercises: 20
Laboratory exercises: 10
Calculation tasks: 0
Seminar paper: 0
Project: 0
Consultations: 0
Discussion/workshop: 0
Research study work: 0

Knowledge test

Review and grading of calculation tasks: 0
Review and grading of lab reports: 0
Review and grading of seminar papers: 0
Review and grading of the project: 0
Test: 7
Test: 8
Final exam: 0

Knowledge test (100 points total)

Activity during lectures: 10
Test/test: 40
Laboratory practice: 0
Calculation tasks: 0
Seminar paper: 0
Project: 0
Final exam: 50
Requirement for taking the exam (required number of points): 30

Literature

B. Đorđević, D. Pleskonjić, N. Maček; Operativni sistemi – koncepti; Viša elektrotehnička škola; 2004; Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau; Operating Systems: Three Easy Pieces; Arpaci-Dusseau Books; 2018; R. Cox, F. Kaashoek, R. Morris; xv6: a simple, Unix-like teaching operating system, MIT; 2024