Erhalte wöchentliche Updates über Udacity in Deutschland, Österreich und der Schweiz: Abonniere jetzt unseren Newsletter.

Fortgeschrittene

Approx. 2 months

Assumes 6hrs/wk (work at your own pace)

Built by
Join thousands of students

Start Free Course

Start Free Course
Free
You get
Instructor videos
Learn by doing exercises and view PROJEKT instructions

Course Summary

Introduction to Operating Systems is a graduate-level introductory course in operating systems. This course teaches the basic operating system abstractions, mechanisms, and their implementations. The core of the course contains concurrent programming (threads and synchronization), inter process communication, and an introduction to distributed operating systems. The course is split into four sections: (1) Introduction, (2) Process and Thread Management, (3) Resource Management and Communication, and (4) Distributed Systems.

Why Take This Course?

The goals of this course are three-fold.

  1. Students will understand the rationale behind the current design and implementation decisions in modern OS’s (like Linux) by considering the historic evolution of various OS constructs
  2. Students will be exposed to theoretical knowledge regarding operating systems principles and implementation
  3. Students will gain knowledge via experimenting and evaluating various OS aspects in a practical manner

Prerequisites and Requirements

To undertake this course, you should have taken an undergraduate level course on, or be otherwise familiar with, basic hardware and software aspects of computer systems organization. Prior programming experience with C is recommended, as C is required for the practical component of this course.

For other requirements, see Udacity's Technology Requirements.

See the Technology Requirements for using Udacity.

What Will I Learn?

Projects

Project 1: Multi-Threaded Web Server

Project 1 of this course.

Syllabus

The Course Wiki serves as the syllabus for Introduction to Operating Systems. But, for a high-level view of the course, we have listed the lessons:

Part 1: Introduction

  • Lesson 1: Course Overview
  • Lesson 2: Introduction to Operating Systems

Part 2: Process and Thread Management

  • Lesson 1: Processes and Process Management
  • Lesson 2: Threads and Concurrency
  • Lesson 3: Threads Case Study: PThreads
  • Lesson 4: Thread Implementation Considerations
  • Lesson 5: Thread Performance Considerations

Part 3: Resource Management and Communication

  • Lesson 1: Scheduling
  • Lesson 2: Memory Management
  • Lesson 3: Inter-Process Communication
  • Lesson 4: Synchronization Constructs
  • Lesson 5: I/O Management
  • Lesson 6: Resource Virtualization

Part 4: Distributed Systems

  • Lesson 1: Remote Services
  • Lesson 2: Distributed File Systems
  • Lesson 3: Distributed Shared Memory
  • Lesson 4: Data Center Technologies

Instructors & Partners

instructor photo

Ada Gavrilovska

Ada is a senior research faculty at the College of Computing and the Center for Experimental Research in Computer Systems (CERCS) at Georgia Tech. Her interests include conducting experimental systems research, specifically addressing high-performance applications on distributed heterogeneous platforms, and focusing on topics that range from operating and distributed systems, to virtualization, to programmable network devices and communication accelerators, to active and adaptive middleware and I/O.

instructor photo

Jarrod Parkes

Jarrod is no stranger to trying new things for the sake of education: both a self-starter and advocate for reinventing the ways we learn, he first started challenging the status quo when he helped create virtual science labs for middle school students at the HudsonAlpha Institute for Biotechnology. While studying Computer Science at the University of Alabama in Huntsville, he started supplementing his college curriculum with online courseware, and he has never looked back. He holds a BS in Computer Science from the University of Alabama in Huntsville.