DM510: Operating Systems

Study Board of Science

Teaching language: Danish or English depending on the teacher, but English if international students are enrolled
EKA: N330031112, N330031102
Assessment: Second examiner: None, Second examiner: External
Grading: Pass/Fail, 7-point grading scale
Offered in: Odense
Offered in: Spring
Level: Bachelor

STADS ID (UVA): N330031101
ECTS value: 10

Date of Approval: 01-11-2022


Duration: 1 semester

Version: Approved - active

Entry requirements

None

Academic preconditions

Students taking the course are expected to know the content of DM548.

Course introduction

To obtain knowledge of the structure of computer systems, the interplay 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

The learning objective of the course is that the student demonstrates the ability to:
  • 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.
When the programming projects have been followed the students will be able to:
  • 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

See itslearning for syllabus lists and additional literature references.

Examination regulations

Prerequisites for participating in the exam a)

Timing

Spring

Tests

Programming assignments

EKA

N330031112

Assessment

Second examiner: None

Grading

Pass/Fail

Identification

Full name and SDU username

Language

Normally, the same as teaching language

Examination aids

To be announced during the course

ECTS value

0

Additional information

The prerequisite examination is a prerequisite for participation in exam element a)

Exam element a)

Timing

June

Tests

Oral exam

EKA

N330031102

Assessment

Second examiner: External

Grading

7-point grading scale

Identification

Student Identification Card

Language

Normally, the same as teaching language

Duration

25 minutes

Examination aids

To be announced during the course

ECTS value

10

Indicative number of lessons

60 hours per semester

Teaching Method

The teaching activities are reflected in an estimated allocation of the workload of an average student as follows:

  • Intro phase (lectures) - 36 hours
  • Training phase: 24 hours

Educational activities 

  • Using the acquired knowledge in projects.

Teacher responsible

Name E-mail Department
Jakob Lykke Andersen jlandersen@imada.sdu.dk Institut for Matematik og Datalogi

Additional teachers

Name E-mail Department City
Jacob Aae Mikkelsen jamik@imada.sdu.dk

Timetable

Administrative Unit

Institut for Matematik og Datalogi (datalogi)

Team at Educational Law & Registration

NAT

Offered in

Odense

Recommended course of study

Profile Education Semester Offer period
BSc major in Computer Science special course - Registration 1 September 2019, 2020, 2021 og 2022 Bachelor of Science in computer science | Odense 2 E22
BSc major in Computer Science special course - Registration 1 September 2020, 2021 og 2022 Bachelor of Science in computer science | Odense 2 E23
BSc major in Computer Science - Registration 1 September 2019 Bachelor of Science in computer science | Odense 4 E22
BSc major in Computer Science - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 4 E22
BSc major in Computer Science - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 4 E23
BSc major in Computer Science - Registration 1 September 2022 Bachelor of Science in computer science | Odense 4 E22
BSc major in Computer Science - Registration 1 September 2022 and 2023 Bachelor of Science in computer science | Odense 4 E23
BSc major in Computer Science and minor in Mathematics - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 4 E22
BSc major in Computer Science and minor in Mathematics - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 4 E23
BSc major in Computer Science and minor subject - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 4 E23
BSc major in Computer Science and minor subject - Registration 1 September 2020 and 2021 Bachelor of Science in computer science | Odense 4 E22
BSc major in Computer Science and minor subject - Registration 1 September 2022 Bachelor of Science in computer science | Odense 4 E22
BSc major in Computer Science and minor subject - Registration 1 September 2022 and 2023 Bachelor of Science in computer science | Odense 4 E23
BSc major in Computer Science and minor subject - Registration 1 September 2019 Bachelor of Science in computer science | Odense 4 E22
BSc major in Computer Science special course - Registration 1 September 2023 Bachelor of Science in computer science | Odense 4 E23
BSc major in Computer Science special course - Registration 1 September 2023 Bachelor of Science in computer science | Odense 4 E22
BSc major in Computer Science with minor in Mathematics - Registration 1 September 2022 Bachelor of Science in computer science | Odense 4 E22
BSc major in Computer Science with minor in Mathematics - Registration 1 September 2022 and 2023 Bachelor of Science in computer science | Odense 4 E23
No longer applicable (31 August 2020): BSc major in Computer Science - Registration 1 September 2019 Bachelor of Science in computer science | Odense 4 E22
No longer applicable (31 August 2020): BSc major in Computer Science and minor subject - Registration 1 September 2019 Bachelor of Science in computer science | Odense 4 E22
No longer applicable (31 August 2020): BSc major in Computer Science and minor subject area - Registration 1 September 2019 Bachelor of Science in computer science | Odense 4 E22

Transition rules

Transitional arrangements describe how a course replaces another course when changes are made to the course of study. 
If a transitional arrangement has been made for a course, it will be stated in the list. 
See transitional arrangements for all courses at the Faculty of Science.