CS134

Computing Systems, 2000-2001

Instructor: Jason Hickey (yapper.org)

Caltech Computer Science Department

CS 134a. 3-3-3 Computing systems
Prerequisites: CS24 or permission of the instructor.
Operating systems, monolithic and micro-kernels, virtual machines. Naming, memory management, segmentation, paging, and virtual memory. Filesystems and I/O. Threads, processes, scheduling, locks, semaphores, and mutual exclusion. Security policies, access-control, certificate-passing, and language-based security.

CS134b. 3-6-3 Computing systems, compilers, and languages
Prerequisites: CS134a or permission of the instructor.
Programming models and languages for operating systems. Execution environments, storage management, and operating system interfaces. Binding mechanisms, abstraction, optimization, and code generation. Parsing and lexical analysis. Students will build a working compiler.

CS134c. 3-3-3 Advanced computing systems
Prerequisites: CS134b or permission of the instructor.
Programming and computing environments. Parallel and distributed operating systems, cache coherency, virtual network paging, SIMD and MIMD models. Language-based operating systems. Modular kernels, kernel/user abstraction weakening. Naming, distributed security policy, resource management. Mobile code. Execution models for non von-Neumann machines.