DM510: Operating Systems
Entry requirements
Academic preconditions
Course introduction
of hardware and software, the role of operating systems in this task,
and the resource abstractions provided by an operating system.
Students
will gain knowledge about actual operating systems, scheduling
algorithms, security and protection mechanisms, file systems and process
communication. Students will learn C-programming on operating system
level.
The course provides some basis for the course ‘compiler construction’.
In relation to the competence profile of the degree it is the explicit focus of the course to:
- Give competence to
- handle complex and development-oriented situations in academic and work settings
- identify their own learning needs and to structure own learning in different learning environments
- Give skills to
- make and justify decisions within the subject area
- describe, formulate, and communicate problems and results to either peers and non-specialists or partners and users
- Provide knowledge about
- principles for the design of computer hardware and operating systems, including distributed and parallel systems
Expected learning outcome
- Describe
different architecture styles for realizing operating systems and the
fundamental abstractions managed by an operating system. - Describe
how several control flows can be realized, discuss problems related to
concurrency, and describe how synchronization and communication between
control flows can be achieved. - Discuss the methods used for CPU, disc and page-replacement scheduling.
- Describe how memory can be virtualized and how it can be managed as a resource.
- Describe
the notion of file systems, possible implementations, and discuss how
mass-storage can be attached to a computer system. - Describe the interplay between system software/applications, operating system kernel, and computer hardware.
- Describe
the two main distributed operating system design principles, and
describe the notion of networks and the layered approach to realize
network protocols. - Describe the notion of protection in an
operating system, discuss existing solutions, and describe the security
problems virus, worm, Trojan horse and buffer overflow attack. - Implement system programs using contemporary operating system abstractions.
- Apply basic operating system abstractions in networked programming.
- Use the programming language C on operating system level.
- Add functionality to the kernel of a Linux operating system.
- Implement the organization layer of a file system.
- Write a clear and well-structured report
Content
The following main topics are contained in the course:
Operating systems structure, system calls, interrupts, processes concept, multithreading, CPU scheduling, critical section problem, synchronization mechanisms, classical synchronization problems, atomic transactions, deadlock handling, swapping, memory allocation, paging, segmentation, demand paging, page replacement, frame allocation, file concept, directory implementation, mounting, free space management, disk structure, disk scheduling, RAID structure, protection, access matrix concept, security threats, encryption, authentication, distributed operating systems, networks, distributed file systems, virtualization, programming in C
Literature
Examination regulations
Prerequisites for participating in the exam a)
Timing
Tests
A number of programming assignments
EKA
Assessment
Grading
Identification
Language
Examination aids
To be announced during the course
ECTS value
Additional information
The prerequisite examination is a prerequisite for participation in exam element a)
Exam element a)
Timing
Prerequisites
Type | Prerequisite name | Prerequisite course |
---|---|---|
Prerequisite not found |
Tests
Oral exam
EKA
Assessment
Grading
Identification
Language
Duration
Examination aids
To be announced during the course
ECTS value
Additional information
Indicative number of lessons
Teaching Method
- Intro phase (lectures, class lessons) - 36 hours
- Training phase: 24 hours
Educational activities
- Using the acquired knowledge in projects.