CSCI 4730/6730
Operating Systems

John Miller
Fall 2012


Textbook

Operating System Concepts with Java, 8th Edition
by Abraham Silberschatz, Peter B. Galvin, Greg Gagne
ISBN 978-0-470-50949-4
November 2009, ©2010
Hardcover, 1040 pages

OR

Operating System Concepts, 8th, Update Edition
by Abraham Silberschatz, Greg Gagne, Peter B. Galvin
ISBN 978-1-1181-1273-1
July 2011, ©2012
Hardcover, 972 pages


Class Time (in GGS 200B)

Day Period 75 Period 7
. 2:00 - 3:15 2:30 - 3:20
Tuesday yes no (TT)
Wednesday no yes
Thursday yes no (HW)


Course Description

Coverage of the key concepts in modern operating systems. Specific topics include process management, synchronization mechanisms, scheduling strategies, deadlock detection/avoidance, memory management, file systems, protection and security, and distributed systems. Concepts will be reinforced through programming projects using a realistic operating system.


Course Topics

Chapters 1 - 12.

  1. Introduction (Ch. 1)
  2. Operating-System Structures (Ch. 2)

  3. Processes (Ch. 3)
  4. Threads (Ch. 4)
  5. CPU Scheduling (Ch. 5)
  6. Process Synchronization (Ch. 6)
  7. Deadlocks (Ch. 7)

  8. Main Memory (Ch. 8)
  9. Virtual Memory (Ch. 9)

  10. File-System Interface (Ch. 10)
  11. File-System Implementation (Ch. 11)
  12. Mass-Storage Structure (Ch. 12)


Grading

20% Exam I: topics = {1, 2, 3, 4, 5, 6} 10/4
20% Exam II: topics = {7, 8, 9, 10, 11} 11/15
25% Final Exam 12/?
30% Programs (groups of 2) [languages: Java SE 7 or C++11
5% Homework/Tool Talks [presentation]
Exam I: closed notes and book; bring calculator; 1 page info sheet allowed.
Date: Thursday, 10/4
6 Questions

Exam II: closed notes and book; bring calculator; 2 page info sheet allowed.
Date: Thursday 11/15
5 Questions

Final Exam: closed notes and book; bring calculator; 4 page info sheet allowed.
Date:
7 Questions


HW: Homework (individual)

Requirement: Present 1 (individual). Subject to rescheduling.
No. Chapters Questions Due
1. Ch. 1 1.17, 1.18, 1.19 8/23
2. Ch. 2 2.18, 2.23, 2.24 8/30
3. Ch. 3 3.7, 3.8, 3.14 9/6
4. Ch. 4 4.8, 4.10, 4.14 9/13
5. Ch. 5 5. 10, 5.12, 5.15 9/20
6. Ch. 6 6.8, 6.9, 6.19 9/27
7. Ch. 7 7.10, 7.11, 7.17 10/11
8. Ch. 8 8.11, 8.20, 8.27 10/18
9. Ch. 9 9.15, 9.20, 9.21 10/25
10. Ch. 10 10.11, 10.12, 10.18 11/1
11. Ch. 11 11.9, 11.14, 11.15 11/8
12. Ch. 12 12.16, 12.17, 12.23 11/29


TT: Tool Talks (group)

Requirement: Present 1 (group). Subject to rescheduling.
No. Topic Description Talk
1. Mint 13 Installing and Using Mint 13 Maya (Linux Operating System) 8/21
2. Java 7 Java 7 Language Features 8/28
3. C++11 C++11 Language Features 9/2
4. Java Threads Programming using Java Threads 9/11
5. C++11 Threads Programming using C++11 Threads 9/18
6. Linux Linux Tutorial: Linux Basics 9/25
7. Linux Internals Linux Tutorial: The Operating System 10/2
8. ext4 Extended File System (Linux) 10/9
9. File IO Java File IO (NIO.2) 10/16
10. JVM Java Virtual Machine (JVM) Internals 10/23
11. Virtual Machines Virtual Machines: VMWare, VirtualBox, KVM, Xen 10/30
12. Cloud Cloud Computing and Operating Systems 11/6


Projects

TA: ?

Submit projects to the TA by sending a zip file containing all files to the TA's email with the subject line "[4730/6730] Group # Project #". One submission per group will be sufficient. The README.txt file must contain instructions for compiling and running the program as well as a detailed explanation of who coded what parts of the program. Ten percent of the grade is determined by how well documented the project is (all interfaces, classes, fields, constructors, methods and parameters must be documented). Another ten percent of the grade is determined by how well the effort is divided between the two group members.

No. Problem Description Due
1. System Calls File copy, monitor with strace: 2.27 8/28
2. Processes Interprocess Communication (a and b, see below) (Client-Server): 3.17 9/11
3. Threads Multi-threaded Server: 4.15 9/26
4. Thread Synchronization Implementing Barriers: 6.41 10/12
5. Deadlocks Banker's Algorithm: Ch. 7 Programming Project 10/25
6. Virtual Memory Virtual Memory Manager: Ch. 9 Programming Project 11/8
7. Secondary Storage Disk-Scheduling Algorithms: 12.36 (optional, bonus up to 10 points) 11/30

Program 2
Java 7 (a) and (b)
(a) Java Sockets (java.net) (b) Java RMI (java.rmi)
or
C++11 (a) and (b)
(a) C Sockets (sys/socket.h) (b) C RPC (rpc/rpc.h)


Policies