COP 4600 Operating Systems - Dr. Nemo's page
Official Class Web Page
Spring 2001 Schedule
Spring 2001 Assignments
Supplemental notes on processor scheduling
Supplemental notes on security
Supplemental notes on LRU page replacement
Supplemental notes on Buddy memory allocation (1)
Supplemental notes on Buddy memory allocation (2)
Supplemental notes on Buddy memory allocation (3)
Minix 1.7.4 Tutorial by Tim Davis (postscript)
Tim Fischer's notes on Minix installation on a hard drive
- 1996-1997 Catalog Data:
-
Course number and Title: COP 4600 - Operating Systems
-
Credits: 3;
-
Prereq:
-
COT 3001 (Discrete Structures),
COP 3530 (Data Structures),
CDA 3101 (Computer Organization).
Facility with the C programming language is needed for the projects,
and knowledge of programming language translators is useful in
understanding OS requirements and process behavior.
-
Description:
-
Concepts, design, and implementation of modern operating systems.
Operating system management of processes, I/O, memory, and file systems.
-
Times and Places: T2 (CSE-E119) and TR3 (CSE-E121) (2=8:30am, 3=9:35am)
-
Instructor: R. Newman
nemo@cise.ufl.edu
Office Hours: TR 11:00-12:00, T 3:00-4:00
TAs:
TA Office Hours: TBA
class website
- Textbook:
-
REQUIRED:
-
Tanenbaum & Woodhull,
Operating System Design and Implementation,
2nd Ed., Prentice Hall 1997 ISBN 0-13-638677-6
-
RECOMMENDED:
-
Silberschatz & Galvin,
"Operating Systems Concepts," 5th Ed.,
Addison-Wesley 1998 ISBN 0-201-59113-8
- Reference:
-
Silberschatz, Peterson, and Galvin,
Operating System Concepts,
Addison-Wesley
-
The MINIX 1.5 Reference Manual,
Tanenbaum et al., Prentice Hall, 1991.
- Goals:
-
To study the design and implementation of various
components of a modern operating system. Topics include
processor multiplexing, process and resource management,
network and distributed operating system concepts.
This is a course on the theory, design, and implementation of
operating systems,
not a course on how to merely use an operating system.
- Prerequisites, by topic:
-
- Algorithm development and computer programming
(programming in a high-level language, procedural abstraction,
data abstraction, structured programming techniques, imperative
and non-imperative programming). Knowledge of C is a big help.
- Computer organization
(computer arithmetic, discrete logic, memory, CPU, secondary
memory, architecture, machine and assembly language, assembly language
implementation of basic program and data structures such as subroutines,
stacks, etc.).
- COP 3530: Data Structures
(such as lists, stacks, queues, hashing, trees, heaps, and graphs)
and Algorithms (basic analysis techniques, and design methods such
as divide-and-conquer and dynamic programming).
- Discrete Structures
(graph theory, finite state machines, probability)
- Topics:
-
- General background (2 weeks):
hardware, software, firmware, system programming, operating systems
- Process/processor management (4 weeks):
concurrent processes, process synchronization,
interprocess communication, process scheduling, processes in MINIX
- I/O management (2 weeks): interrupt handling, device drivers,
deadlock, I/O in MINIX
- Memory management (2 weeks):
multiprogramming, paging and segmentation,
page replacement algorithms, memory management in MINIX
- File management (2 weeks):
file system, disk management, security and protection,
file systems in MINIX
- UNIX topics (2 weeks)
- Computer usage:
-
Students do four or five projects in the MINIX operating system.
They re-design and re-write
the MINIX kernel (written in C) to implement alternative
operating design choices.
- Grading: 40% exams, 20% homeworks and quizzes, 40% projects
Old exams:
Prepared by:
Timothy A. Davis, March 1994.
Revised by R. Newman, May 1995, December 1995, January 1997, April 1997,
August 2000, January 2001.