You are on page 1of 2

CS 4348 Operating Systems

Ivor Page
Spring 2005, T/R 12:30 1:45pm, ECSS 2.305

Honor Code: There are no group projects in this course. All work that you
submit for grading must be your own. It is a violation of University Policy to
copy another's work without citing it, no matter if the work came from another
student, a publication, or a web page. You must not copy from solutions given
during previous iterations of the course. You must not collude with other
students or submit work that is not entirely your own, unless you properly cite
the contributions of others. Any violation of the University's honor code will
be reported to the Dean of Students and may result in a severe punishment,
including reduction in grade, an F grade for the course, withdrawal of TA-ship
or RA-ship, or expulsion from the university.

Content:
We will examine the fundamental components and design requirements of modern multi-user, multi-tasking,
pre-emptive operation systems, taking examples from UNIX, Linux, Windows NT, and others. Fundamental
theories about synchronization, virtual memory, protection, and other aspects of operating systems design
are common to all commercial systems. We will also introduce the fundamental principles of distributed
systems design and algorithms for such systems.
Details:
Operating system design requirements: API, device drivers, resource management.
Hardware Support: protection modes, interrupt mechanisms, atomic actions
required for semaphore implementation.
I/O systems and programming: programmed, interrupt, and DMA support.
Structure: Error confinement, Levels of protection, Multics rings, micro-
kernel, Unix and Microsoft NT.
The Process and the thread: Definition, environment in which they operate,
states, process management, Threads, Posix threads.
Synchronization: Mutual exclusion, semaphores, spin-locks, counting semaphores,
message passing. Deadlocks, live-locks, starvation, The Dining Philosophers
Problem, Readers and Writers, Generalized Mutual Exclusion. Concurrency
mechanisms in modern OSs.
Memory management and virtual Memory: Segmentation and paging, placement
algorithms (First Fit, Best Fit, Next Fit, etc.) and replacement algorithms
(Random, FIFO, LRU, Clock, etc.), memory mapping, page-size considerations, in-
memory tables and TLB. Protection and sharing via access modes.
Scheduling: Uniprocessor scheduling algorithms, Round Robin, Shortest Job
First, multiple queues, etc.
File Systems: Directories, sharing, Examples from modern operating systems.
Distributed Systems programming: The Client-Server Model. Sockets, Remote
Procedure Calls, Remote Method Invocation. CORBA.
Security: Basic models, confidentiality, authorization, and authentication,
access lists, capability systems, encryption.

Text: Operating Systems, Internals and Design Principles, William Stallings,


Prentice Hall, 5th edition.

Additional Reading: Inside Windows NT, David A. Solomon, Microsoft Press,


latest Edition (I have the 2 edition).

Assessment: There will be 2 exams, several home works several projects. The
overall grade will be computed as follows: home works 15%, project 25%, mid
semester exam 25%, final exam 35%. These weights are subject to change.
Mid Term Test: March 3rd , 12:30 - 1:45pm
Final Test: TBA (week of April 25th)

Instructor: Ivor Page (ivor@utdallas.edu), 972-883-2160


Office Hours: Thursday 3:00 - 5:00pm, ECSS 4.410 or by appointment.

TA: TBA

You might also like