COP4600 - Operating Systems

Spring 2013

Class description: Operating systems structure. Process management. Process scheduling. Memory Management. Virtual memory. I/O system. Performance Evaluation.
Instructor: Dr. Lotzi Bölöni
Graders: Ramya Pradhan
Gunavardhan Darimidi
Office: HEC - 319
Phone: (407) 243-8256 (on last resort)
E-mail: (preferred means of communication)
Web Site:
The assignments and the other announcements will be posted on the course web site
Classroom: Visual Arts Building - VAB 0132
Class Hours: Monday, Wednesday 6:00pm - 7:15pm
Office Hours: Monday, Wednesday 7:30pm - 9:00pm
Pre-requisites: Some programming experience, general familiarity with computer organization and operating systems (as a user).
Textbook: Operating Systems Concepts Essentials, 2011 edition by Abraham Silberschatz, Peter B. Galvin and Greg Gagne
Grading: Homeworks: 25%, Quizzes: 5%
Midterm 1: 20%, Midterm 2: 20%, Final: 30%. Grading formula:
        HW = (HW1 + HW2 + HW3 + ...+ HWn) / n
        Q = (Q1 + ... + Qn) / n
        Overall = 0.25 * HW + 0.05 * Q + 0.2 * M1 + 0.2 * M2 + 0.3 * F
HW2, M2 etc are exactly the number you got, so if you got 112, that is what you put in.
Standard 90/80/70/60 scale will be used for final grades (curved if necessary).
All the exams are open book, open notes.
Integrity: All the quizzes, homeworks, and exams are individual work.
The division, college, and University are committed to honesty and integrity in all academic matters. We do not tolerate academic misconduct by students in any form, including cheating, plagiarism and commercial use of academic materials. Please consult the Golden Rule Handbook for the procedures which will be applied.


Lecture Notes, Readings, Homeworks
Jan. 7
Class organization
Introduction: a history of operating systems
[slides] Introduction to operating systems
Jan. 9
-introduction (cont'd)

Jan. 14
Operating system structures
[slides] Operating system structures
Jan. 16
-OS structures (cont'd)

Jan. 21
Martin Luther King day

Jan. 23
[slides] Processes
Jan. 28 Threads
[reading] Josh Aas: Understanding the Linux CPU Scheduler
[homework] Homework 1
[sample] How to tokenize a string for a shell.
[reading] Fork, exec, system
[reading] Very gentle intro to the Linux command line
[reading] How to compile a C/C++ program from the command line
[slides] Threads
Jan. 30
Processor scheduling
[slides] Processor scheduling
Feb. 4
Process synchronization
[slides] Process synchronization
Feb. 6
-process synchronization (cont'd)

Feb. 11
Review for midterm exam

Feb. 13
Midterm exam 1: Introduction and processes

Feb. 18
Main memory
[slides] Main memory
Feb. 20
-main memory (cont'd)

Feb. 25
Virtual memory
[slides] Virtual memory
Homework 1 due (extended). Submit the homework at Webcourses2 ("Canvas"). If you need more time, due to special circumstances, email me.
Feb. 27
-Virtual memory (cont'd)

Mar. 4
Spring break

Mar. 6
Spring break

Mar. 11
File systems
[slides] File systems
Mar. 13
-file systems (cont'd)

Mar. 18
File system implementation
[slides] File system implementation
[homework] Homework 2
[code] Starting code for HW2.

Mar. 20
Mass storage systems
[slides] Mass storage systems
Mar. 25
Midterm exam 2 - Memory and storage

Mar. 27
[slides] Protection
Apr. 1
-protection (cont'd)

Apr. 3
Case study: Microsoft Windows 7 / Windows 8
[slides] Case study: Windows
Apr. 8
Case study: Linux
[slides] Case study: Linux
Apr. 10
Case study: Android OS

Apr. 15
Review for the final exam

Apr. 17
Review for the final exam

Apr. 22
Review for the final exam

Wednesday, April 24, 4:00 - 6:50pm
Final exam