Readings "Passive" learning opportunities

This page collects together all of the “readings” associated with individual modules.

In this site, readings represent “passive” learning opportunities, as opposed to experiences, which represent “active” learning opportunities. In many courses, readings and experiences together constitute the “assignments”.

Module: Getting Started

Guided tour of Morea course websites

About Morea

Syllabus

Detailed syllabus for this course

Getting Started

Course objectives, logistics, administrivia

The Linux command-line

Module: Computer Architecture ([Over|Re]view)

Computer Architecture

Overview/Review of Fundamental Computer Architecture Concepts

The Memory Bottleneck

Overview/Review of the reasons for and solutions to the Memory Bottleneck

Module: OS Overview and Interfaces

What's an Operating Systems

Overview of the role of the OS

The Kernel

Overview of the booting process and of the kerne’s role

OS Interfaces

Overview of Operating System interfaces

OS History

A very brief history of Operating Systems

Module: Processes

The Process Abstraction

Introduction to the concept of a process

The Process API

Introduction to the process API (on Linux)

Inter-Process Communication (IPC)

Introduction to how processes can communicate with each others

The Process API and IPC (Practice)

Practice Problems

Process Mechanisms

Introduction to OS mechanisms for CPU virtualization

Example source code

Sets of C programs discussed in the Process API lecture notes

Module: Threads

Threads: Principles

Introduction to the principles behind threads

Threads: Programming

Introduction to programming with threads

Threads (Practice)

Practice Problems