慶應義塾大学
2019年度 春学期

Operating Systems

2019年度春学期(前半) 月曜日4時限、木曜日1時限
2019 Spring Term (First Quarter), Class is Monday 4th period and Thursday 1st period.
担当: Rodney Van Meter
E-mail: rdv@sfc.keio.ac.jp

Syllabus

Course Outline

Concepts 概要

コンピュータの基本ソフトウェアであるオペレーティング・システム (OS) について取り扱います。OSはそのコンピュータ上で動いているすべてのプロ グラム (あるいはプロセス) の制御を行っています。 また、 それぞれのプロ グラムに対してファイル・システムやネットワークなどのサービスを提供して います。 Windows や MacOS など様々なものがありますが、ここでは UNIX / Linux OS を中心に取り上げ、その基本的概念、プロセス、 システム コール、メモリ管理と仮想メモリ、ファイル・システム、ネットワーク、セキュ リティなどの各種のコンポーネントについて説明します。 また、 OS は本質的 に並行プログラミングですので、複数のプログラムの間での同期や排他制御に ついても取り上げます。授業後半には個人による並行のプログラムを行い作品 の提出を行う。

The basic software of a computer is called its operating system (OS). The operating system loads other programs to create processes. Programs use the file system, network, and other services provided by the OS. There are many operating systems, including Windows and MacOS, but in this class we will focus on Unix and Linux. The basic concepts of processes, system calls, memory management and virtual memory, file systems, networking, security and other subsystems will be presented. Because concurrency and parallelism are fundamental, and are becoming increasingly important at the application level, students will write at least one concurrent program.

教科書 Textbook

This year, in a departure from previous years, we are using a new textbook! We will also be reading from another important book on a specific operating system.

Operating Systems: Three Easy Pieces
(also known as OSTEP)
Remzi & Andrea Arpaci-Dusseau
(professors at the University of Wisconsin, and acquaintances of mine)
WWW.OSTEP.ORG

Every chapter of the book is available for free download! You can also purchase a copy of the book, which I did.

The other book we are going to use extensively:

The Design and Implementation of the FreeBSD Operating System, 2nd Edition
Marshall Kirk McKusick, George V. Neville-Neil, and Robert N. M. Watson
Pearson Education, Boston, MA, USA, September 2014.
Good materials available at TeachBSD.org

FYI, the former textbook we used, which I still consider valuable, and will occasionally refer to:

モダンオペレーティングシステム
原著第 2 版
アンドリュー・S・タネンバウム=著
水野忠則,太田剛,最所圭三,福田晃,吉澤康
文=訳
ピアソン・エデュケーション
ISBN4-89471-537-6

Modern Operating Systems, 2nd edition
Andrew S. Tanenbaum
Pearson Education
ISBN-13: 978-0130313584
ISBN-10: 0130313580

Lecture by Lecture

Links to lecture notes:

Summary of the semester:

第01回 ■	OS History and Basic Principles
Ch. 1 of both books
"light cone" of information

第02回 ■	The Process Abstraction & Process API
Chs. 4 & 5

第03回 ■	Introduction to Scheduling
Chs. 6 & 7

第04回 ■	MLFQ & Fair Sharing
Chs. 8 & 9

第05回 ■	Address Spaces, Memory API, and Free Space Management
Chs. 13, 14, 16, 17

第06回 ■	Names, Address Translation, Paging and Reference Traces
Chs. 15, 18, 19, 20

第07回 ■	Page Faults and Page Replacement Algorithms
More on reference traces and their impact
Chs. 21 & 22

第08回 ■	Hypervisors and System Virtualization
Readings TBD

第09回 ■	Introduction to Concurrency
Chs. 26 & 27

第10回 ■	Locks
Chs. 28 & 29

第11回 ■	Condition Variables & Semaphores
Chs. 30-32

第12回 ■	I/O Devices and Drivers
Ch. 36

第13回 ■	File Systems
Ch. 39

第14回 ■	File System Implementations
Chs. 40-42

前提知識
Prerequisites

I am flexible about how formal your background is, but there are a few concepts you need to know:

Requirements

The course consists of fourteen ninety-minute classes. Students are expected to read the material, contribute to classroom discussions, and complete regular homework. A large-scale software project will contribute the bulk of the grade.

成績の仕方
Grading

Your grade will be determined as follows:

This year, heavier emphasis will be placed on the term project than on homeworks. You should expect your project to take 20-30 hours. There will be five homework assignments over the course of the semester, and readings almost every week. At least one of the programming assignments will involve parallel programming.

Homeworks

Since this class is being taught in quarters now, you should expect to work twice as hard as in a regular class. There will be homework every week, involving programming.

Term Project

ソフトウエアプロジェクトは必要です!一人から三人までできます。来週は説 明と去年のプロジェクトの話です。

You will complete a moderately large software project during the term. Projects may be individual, or teams of up to three students. We will talk about ideas for specific projects next week. The following schedule applies:

Contacting Me/Office Hours/Class Notes
連絡先/オフィスアワー

If you need to contact me, email is the preferred method. Please put "OS:" in the Subject field of the email. If I do not respond to a query within 24 hours, please resend. For more urgent matters, junsec should know how to get ahold of me.

Office Hours, Spring 2019春のオフィスアウアー:TBD, but my office is Delta N211. You may come to my office during this time without an appointment. If you wish to see me otherwise, you can attempt to find me directly, or send me email to arrange an appointment.

The lecture notes for each week are posted in SFC-SFS shortly before the lecture.

その他 Additional Information