Summer
2005 |
Operating Systems Principles
(half-course, 4VL + 2PR)
VL: |
Mon, |
11:15-12:45, |
RUD 26, 1.303, |
Prof. J.-P. Redlich |
|
Wed, |
09:30-11:00, |
RUD 26, 1.303, |
Prof. J.-P. Redlich |
PR: |
Mon, |
09:30-11:00, |
RUD 25, 3.325, |
Dipl.-Inf. A. Zubow |
|
Computer Science Department
Systems Architecture Group |
Prüfungen (jeweils 30 Minuten, mündlich, ohne
Vorbereitungszeit):
|
Abstract: An operating
system (OS) is the software responsible for controlling and
managing hardware and basic system operations, as well as running
application software such as word processing programs and Web browsers.
In general, the operating system is the first layer of software loaded
into computer memory when it starts up. All other software that gets
loaded after it depends on the operating system to provide various
common core services, such as disk access, memory management, task
scheduling, and user interfaces. As operating systems evolve, ever more
services are expected to be common core. These days, an OS may be
required to provide network and Internet connectivity and also to
protect the computer's other software from damage by malicious programs,
such as viruses. Operating systems in widespread use on personal
computers (PC) have consolidated into two families: the Microsoft
Windows family and the Unix-like family. Mainframe computers and
embedded systems use a variety of different operating systems, many with
no direct connection to Windows or Unix.
Building Operating Systems is much about studying
existing systems, knowing common problems, knowing what other people
did, and figuring out if their ideas can be applied to a given
problem in a useful way. These long-lasting principles - as opposed
to specific details of today's systems/software - is what we will
look at in this half course.
|
Synopsis:
- Half-Course, Praktische Informatik, Hauptstudium.
- Offered regularly, at least once every two years, usually
in spring.
- 2 lectures per week, 2h each, over one semester
(4SWS VL).
- 1 lab (Praktikum) per week, 2h each, over one
semester (2SWS PR).
Credits and grading:
- There will be a few, short, unannounced,
closed-book quizzes to verify your existence and to test your
understanding. These will be worth 40 percent of the final grade.
- An announced final examination will be
given at he end of the semester. It will cover all of the relevant
readings and material presented and discussed in class. It will be
worth 60 percent of the course grade.
- To qualify for the final examination, you have to complete all
lab assignments to the satisfaction of the teaching assistant (70% =
35 points).
- Regular class attendance is expected; frequent
absences are grounds for a failing grade regardless of other
performance. You may be missing up to 1 lecture per
semester without prior
and reasonable excuse. 'prior' means notification
by email before the end of business the day before the lecture.
'reasonable' means sickness or study-related events that
require your attendance.
- Lectures begin on time. Students arriving
more than 10 minutes late will not be admitted to the
lecture and will be counted as 'missing' that day.
Prerequisites: - Successful completion of PI-1.
- At least one semester attendance of the
'Development Tools and System Administration in Unix' half-course.
Syllabus - Lecture:
Part I. Basics
- Computer Systems - Overview
- What's inside a computer?
- Processor, memory, command execution
- Memory hierarchy
- Interrupts
- IO architecture (very brief)
- Operating Systems - Overview
- What is an Operating System?
- Mainframe, Desktop, Multiprocessor, Distributed, Clustered,
Real-Time, Handheld Systems
- Grid Systems (Utility Computing)
- Prominent Examples
- Microsoft Windows
- Unix (Linux, BSD, Solaris)
- Historical perspective (people behind the technology)
- Operating System Structure
- System Components
- System Services
- System Calls
- Kernels: Monolithic Kernels, Microkernel, Exokernels
- Virtual Machines
- Java Virtual Machine (JVM)
- Microsoft .NET execution environment
- VmWare
Part II. Process Management
- Processes
- What is a process?
- Process States
- Process Control
- Process Scheduling
- Inter-Process
Communication
- Threads
- Multithreading
Models
- SMP (symmetric multi
processor)
- Pthreads (POSIX)
- Solaris 2 Threads
- Windows 2000 Threads
- Linux Threads
- Java Threads
- CPU Scheduling
- What is a Scheduler?
- Scheduling
Algorithms
- Scheduling on single-processor machines
- Scheduling on
multi-processor machines
- Realtime-scheduling
- Concurrency & Synchronization
- Mutual exclusion
- Semaphore
- Monitor
- Deadlocks & Starvation
- What is a Deadlock?
- Deadlock prevention
- Deadlock avoidance
- Deadlock detection
Part III. Storage
- Memory Management
- Continuous memory
allocation
- Swapping
- Paging
- Segmentation
- Virtual Memory
- Demand paging
- Hardware support
Syllabus - Lab (Praktikum, 70% = 35 points required):
Regular Lab (for students registered in Goya)
Advanced Lab (for selected students only)
Offered as an alternative to the regular
lab (see above).
Details
Slides:
Further Readings: (you may find good deals at
http://buch.de/ or
http://amazon.de)
- Silberschatz, Galvin, Gagne. Operating System
Concepts. 6th Edition. John Wiley & Sonns, 2003.
ISBN 0-471-25060-0
- William Stallings. Betriebssysteme – Prinzipien
und Umsetzung. 4. Auflage. Prentice Hall, 2003.
ISBN 3-8273-7030-2
- Andrew Tanenbaum. Moderne Betriebssysteme. 2002.
ISBN 3827370191
- R. G. Herrtwich and G. Hommel. Kooperation und Konkurrenz -
Nebenläufige, verteilte und echtzeitabhängige Programmsysteme.
Springer-Verlag, 1989.
ISBN
3-540-51701-4.
- H. Kopetz. Real-Time Systems: Design Principles for Distributed
Embedded Applications. Kluwer Academic Publishers, 1997.
ISBN
0-7923-9894-7.
- Joseph Pranevich, The Wonderful World of Linux 2.6.
http://www.kniggit.net/wwol26.html (cached
pdf)
|
( |
|