Operating Systems and Networks
Course: Operating Systems and Networks (320202)
Instructor: Jürgen Schönwälder
TAs: Matus Harvan, Stefan Markov, Andreas Pfeil
Lectures:
Monday 08:15 - 09:30 West Hall 2
Wednesday 14:15 - 15:30 West Hall 2
Start: January 31st 2005
Contents:

Course topics: operating system architectures, system calls and interrupts, processes and threads, scheduling, synchronization, deadlocks, virtual memory, file systems, OSI reference model, protocol mechanism, IEEE 802.x and Internet protocols.

Role of the course in the curriculum: The first part of this course provides an introduction to the concepts underlying operating systems and computer networks. Students will develop an understanding how operating systems realize a virtual machine that can be used to execute multiple concurrent application programs. The second part introduces layered models commonly used to describe computer networks and discusses key aspects of each layer.

Course Materials:
Books:
  • A. Silberschatz, P.B. Galvin, B. Peter, G. Gagne, "Applied Operating System Concepts" John Wiley, 2000
  • A.S. Tanenbaum, "Modern Operating Systems", Prentice Hall, 2001
  • W. Stallings, "Operating Systems: Internals and Design Principles", Prentice Hall, 2005
  • R. Love, "Linux Kernel Development", Sams Publishing, 2003
  • J.F. Kurose, K.W. Ross, "Computer Networking: A Top-Down Approach Featuring the Internet", Addison-Wesley, 2004
  • A.S. Tanenbaum, "Computer Networks", 4th Edition, Prentice Hall, 2002
  • D.E. Comer, "Internetworking with TCP/IP: Principles, Protocols, and Architectures", Prentice Hall, 2000
  • W. Stallings, "Data and Computer Communications", Prentice Hall, 2004
Links:
Schedule:
DateDateTopics
2005-01-31 2005-02-02 Computer Hardware, Operating System Architectures
2005-02-07 2005-02-09 System Calls, Processes, Threads
2005-02-14 2005-02-16 Synchronization
2005-02-21 2005-02-23 Synchronization, Deadlocks
2005-02-28 2005-03-02 Scheduling, Memory Management
2005-03-07 2005-03-09 Memory Management, File Systems
2005-03-14 2005-03-16 File Systems, Midterm
2005-03-21 2005-03-22 Distributed Systems, Remote Procedure Calls
2005-03-28 2005-03-30 World Wide Web (HTTP, HTML, URLs)
2005-04-04 2005-04-06 Domain Name System, Transport Protocols
2005-04-11 2005-04-13 Internet Protocols, Socket Programming Interface
2005-04-18 2005-04-20 Local Area Networks (IEEE 802.x)
2005-04-25 2005-04-27 Wide Area Networks (ATM, MPLS, SONET, ...)
2005-05-02 2005-05-04 Protocol Mechanisms
2005-05-09 2005-05-11 Transmission Channels
Grading:

The final grade is made up of the homeworks (10%), projects (20%), mid-term exam (30%) and the final exam (40%). The homeworks and projects must be submitted individually. It is required to submit the solution for programming problems electronically and on paper to the instructor. Late submissions will not be accepted. Homeworks and project work must be defended in an oral interview.

Note 1: Students may form groups and work together. However, solutions must be submitted individually and every submitted solution must list the names of the co-workers. If we find identical solutions where the listed co-workers are not consistent, you risk to loose your points.

Note 2: If you copy material verbatim from the Internet (or other sources), you have to provide a proper reference. If we find your solution text on the Internet without a proper reference, you risk to loose your points.

Note 3: Any cheating cases will be reported to the registrar. In addition, you will loose the points (of course).

Note 4: If you are unhappy with the grading, please report immediately (within one week) to the TAs. If you can't resolve things, contact the instructor. Problem reports which come late, that is after the one week period, are not considered anymore.

The overall percentage will be converted into IUB grades as follows:

PercentageGradeDescription
[96-100]1.00Excellent
[91-95]1.33Very Good
[86-90]1.67Very Good
[81-85]2.00Good
[76-80]2.33Good
[71-75]2.67Satisfactory
[66-70]3.00Satisfactory
[61-65]3.33Satisfactory
[56-60]3.67Sufficient
[51-55]4.00Sufficient
[46-50]4.33Sufficient
[41-45]4.67Failing
[ 0-40]5.00Failing

Any programs which have to be written will be evaluated based on the following criteria:

  • correctness including proper handling of error conditions
  • proper use of programming language constructs
  • clarity of the program organization and design
  • readability of the source code and any output produced
Homeworks:
Projects:
  • Project sheet 1 (pets.c)
  • Project sheet 2 (user.c)

    You can find a Linux implementation of lmc and lmd on the clamv teaching lab machines in ~jschoenwae. Call the programs with -h to get information about the options. The license manager daemon lmd has licenses for emacs, vi, and bash shared between all users. It is left as an exercise to find out how many licenses do exist.

Exams: