Catalog Description :
|
A study of the introductory concepts in operating
systems: historical development of batch, multiprogrammed, and
interactive systems; file, memory, device, process and thread
management; interrupt and trap handlers, abstraction layer,
message passing; kernel tasks and kernel design issues;
signals and interprocess communication;
synchronization, concurrency, and deadlock problems.
|
Prerequisite:
|
CMPS 360
|
Units:
|
5
|
Coordinator:
|
Marc Thomas
|
Goals/Objectives:
|
-
history, role, purpose, and functionality of a typical operating system
-
basic OS structures, processes, resources, interrupts, the concepts
of user/system state and protection, kernel mode and device organization.
-
concurrency, process/thread structure, creation ( fork() .. execve() ),
priorities, states, shared data structures and process/thread synchronization,
deadlock, its conditions and prevention.
-
compare and contrast different process/thread scheduling algorithms.
-
issues involved in memory
system design especially virtual memory systems
(e.g. TLB cache, paging, copy on write, etc.)
-
issues related to devices management, buffering, serial and parallel devices,
direct memory access.
-
issues related to files, directory, system security and protection.
-
(Laboratory) Become proficient in writing basic systems programs
utilizing signals, process creation, interprocess communication ( System V IPC ),
multiple threads, and the Unix run-time interface; work with a batch/multiprogrammed
operating system simulator.
tradeoffs involved in operating system design (e.g. performance vs.
security, robustness vs. modularity).
|
Current Texts:
|
- Andrew Tanenbaum, Modern Operating Systems
(2nd edition) , ISBN 0-13-031358-0
- Kernighan and Ritchie, The ANSI C Programming
Language, Chapter 8, the Unix System Interface ,
ISBN 0-13-110362-8
|
Topics:
|
-
(OS1) Overview of operating systems and history:
understand the basic structures, primitives, and functional
layers of microkernel, monolithic and virtual machine operating systems.
-
(OS2) Operating system principles: Understand the hardware issues, software
abstractions and data structures required for operating system design
(e.g. CPU protection, hardware traps/interrupts, call and interrupt gates, etc.).
-
(OS3) Concurrency: Understand process/thread structure, creation ( fork() .. execve() ),
priorities, states, shared data structures and process/thread synchronization.
-
(OS4) Scheduling and dispatch: Understand the algorithms involved in scheduling,
deadlock control, and queueing theory.
-
(OS5) Memory management: Understand all the issues involved in memory
system design especially virtual memory systems
(e.g. TLB cache, paging, copy on write, etc.)
-
(OS6) Device Management: Characteristics of serial and parallel devices,
Buffering strategie, Direct memory access, Recovery from failures
-
(OS8) File System: Files and directories structure, organization, implementation,
operations and buffering,
|
ACM Sub Areas or Units Covered::
|
OS1. Overview of operating systems
|
0.0
|
OS2. Operating system principles
|
0.0
|
OS3. Concurrency
|
0.0
|
OS4. Scheduling and dispatch
|
0.0
|
OS5. Memory management
|
0.0
|
OS6. Device management
|
0.0
|
OS8. File systems
|
0.0
|
OS: Operating Systems
|
Laboratory:
|
The laboratory session will parallel the lecture, illustrating
the principles and familiarizing the student with system software constructs.
Lab assignments will be in C and will cover the use of the Unix run-time interface,
POSIX signal handling, the System V IPC suite, and the POSIX pthread package
to write portions of operating system code, do simulations, test virtual machines,
and experiment with synchronization and deadlock.
|
Oral and Written Communication:
|
|
Social and Ethical Issues:
|
|
Problem Analysis:
|
|
Solution Design:
|
|
Version & Date
|
Version 1, 5/6/2003
|
Comments
|
The first draft based on ACM curricula 2001 in the format of
ABET sample course description.
|