Studies
Admissions
The Institute
Resources
Studies
Admissions
The Institute
Resources
Studies
Admissions
The Institute
Resources

CSEC209

Fundamentals of Operating Systems

Barcelona Campus
Apr 11, 2022 - Apr 29, 2022
From computer architecture to processes and kernel, the Fundamentals of Operating Systems course will cover the computer organization, and the basic components of operating systems.
Barcelona Campus
Apr 11, 2022 - Apr 29, 2022
Konstantin Yegupov

Faculty

Konstantin Yegupov

Core Engineer at CausalApp Ltd.

Course length

3 weeks

Duration

3 hours
per day

Total hours

45 hours

Credits

4 ECTS

Language

English

Course type

Offline

Fee for single course

€1500

Fee for degree students

€750

Skills you’ll learn

Unix ManagementOS APIsVirtual MachinesLow-level programmingConcurrent programming
OverviewCourse outlineCourse materialsPrerequisitesMethod & grading

Overview

The course focuses on understanding why Operating Systems are necessary and how they enable software to use various hardware resources. Awareness of these details helps to design programs correctly, optimize their execution and debug potential problems, especially when deploying to various environments. We briefly discuss hardware fundamentals, then introduce practical tools that allow us to study the subject and cover basic components of operating systems: processes, file systems, network. We discuss various means of virtualization and presentation of OS interfaces in various programming languages.

Learning highlights

  • Understand what are the computing resources and how they are shared in operating systems.
  • Learn the APIs of modern operating systems.
  • Get familiar with diagnostic and management tools.

Course outline

15 classes

Dive into the details of the course and get a sense of what each class will cover.
Monday
Tuesday
Wednesday
Thursday
Friday
Monday
1

Introduction into Operating Systems

Computing resources. Hardware and virtual platforms. OS APIs

Tuesday
2

CPU and low-level code

CPU ISAs and assembly basics. C language basics. Program memory layout. Calling conventions

Wednesday
3

Compilation and execution of code

Compilation step-by-step. Libraries and linkage: static, dynamic. ELF. Translation. glibc and system calls

Thursday
4

Processes

Process attributes & lifetime. CPU scheduling. Memory protection. Privilege levels

Friday
5

OS Kernel & Services

Monoliths vs microkernels. Kernel modules. Service (daemon) management. Init levels

Monday
6

Memory addressing, paging, process memory

Paging. Translation. Memory sharing. Process memory. Swapping

Tuesday
7

Signals, interrupts

Exceptions. Interrupts: software, hardware. Signal types

Wednesday
8

Midterm exam

Thursday
9

Parallel and concurrent programming

Processes vs threads vs async. Memory models. Synchronisation primitives

Friday
10

Parallel and concurrent programming - continued

High-level concurrent programming tools. Inter-process communication. Multi-CPU systems and clusters

Monday
11

Persistence

Storage devices. Caching. Filesystems. Error recovery. Permissions

Tuesday
12

Network

OSI model. Networking hardware. IP layer. Modern application protocols

Wednesday
13

Virtualisation

Resource abstraction and isolation. Virtualisation software. Hardware virtualisation assistance. Containers

Thursday
14

Security & GUI

Authentication. Encryption. Update mechanisms

Friday
15

Final exam

Methodology

Lectures,practical assignments relevant to the topic, home assignment, midterm exam (exam will include individual tasks and mini-group activities), final exam.

Grading

The final grade will be composed of the following criteria:
60% - Assignments
20% - Midterm exam
20% - Final exam
Konstantin Yegupov

Faculty

Konstantin Yegupov

Core Engineer at CausalApp Ltd.

Konstantin is a software engineer with more than 15 years of experience. He has designed and contributed to web services while working in various companies, from Google and Palantir to small startups. Konstantin enjoys learning new technologies, having professionally written code in many different languages, including Java, Python, Typescript, Go and Rust. He is passionate about making code easier to understand and maintain. He likes to be able to understand all the parts of the project he works on and is thrilled to solve mysterious problems that arise when multiple software components interact in complex ways.

See full profile

Apply for this course

Snap up your chance to enroll before all spaces fill up.

Fundamentals of Operating Systems

by Konstantin Yegupov

Total hours

45 Hours

Dates

Apr 11 - Apr 29, 2022

Fee for single course

€1500

Fee for degree students

€750

How to secure your spot

Complete the form below to kickstart your application

Schedule your Harbour.Space interview

If successful, get ready to join us on campus

FAQ

Will I receive a certificate after completion?

Yes. Upon completion of the course, you will receive a certificate signed by the director of the program your course belonged to.

Do I need a visa?

This depends on your case. Please check with the Spanish or Thai consulate in your country of residence about visa requirements. We will do our part to provide you with the necessary documents, such as the Certificate of Enrollment.

Can I get a discount?

Yes. The easiest way to enroll in a course at a discounted price is to register for multiple courses. Registering for multiple courses will reduce the cost per individual course. Please ask the Admissions Office for more information about the other kinds of discounts we offer and what you can do to receive one.