Universitatea POLITEHNICA din Bucuresti

advertisement
University Politehnica of Bucharest
Automatic Control and Computers Faculty
Computer Science Department
Course file
1. IDENTIFICATION DATA
Course title: Operating Systems Design
Course teachers: Octavian Purdila
Type: advanced
Lecture: 3 hours
Laboratory: 2 hours
Credits: 6
Semester: 2
Package: specialized curriculum (system programming)
Prerequisites: Operating Systems, Computer Systems Structure,
Microprocessor Design, Digital Computers, Assembly Programming,
Programming, Data Structures and Algorithms
2. COURSE OBJECTIVES
-
-
course:
The Operating Systems Design course is an advanced course about the
concepts that are used throughout the operating systems. The course is
focused on a deep analysis of the operating system kernel and its
subsystems. The analysis is performed on the Linux and Windows NT kernels.
Its objectives are: understanding how the kernel's role in an operating system
and how it and its subsystems work; understanding the basic mechanisms
dealing with the kernel: concurency, processes, I/O processing, scheduling,
virtual memory, etc. The course aims at fixing the theoretic aspects through
related homeworks; the homeworks take the shape of kernel modules that
interract directly with the operating system kernel.
applications:
The laboratory is concerned with fixing the concepts presented during the
lectures through practical activities and establishing an advanced level of C
programming skills. The laboratory aims at accomplishing this through using
the kernel programming interface (kernel API) and by acknowledging the
mechanisms and the constraints when dealing with kernel programming. The
lab objectives are: getting used to the data structures, types and functions the
kernel uses; understanding the concepts that stand at the basis of kernel
subsystem funtion; gaining advanced knowledge of programming and
debugging kernel modules; understanding how the kernel affects the
applications.
3. SPECIFIC ABILITIES
Advanced C programming skills; understanding the source code in a
given program; understanding hardware functions and how to program
it; understanding the programming constraints when using a
freestanding programming environment.
Skills in addressing problems in operating systems, including the use of
commands and working with available documentation and the source
code.
4. SYLLABUS
a. Course:
Chapter
1
2
3
4
5
6
7
8
9
Content
Introduction
System calls
Defferable functions
Address space
Physical memory
Virtual memory
Filesystems
Networking
Assembly and linking
Hours
3
4
5
5
5
6
5
6
3
Total:24
b. Application:
1
2
3
4
5
6
7
8
9
10
Introduction
Kernel modules
Kernel API
Device drivers
Interrupts
Filesystem Drivers
Defferable actions
Block device drivers
Networking
Plug&play
5. GRADING
a) Graded activities :
 lab test 1: 1.5p
 lab test 2: 1.5p
 final exam: 3p
 lab activity: 2p
 skill test: 2p
b) Minimum requirements for graduating this course:
 50% of total points
c) Final grade:
2
3
3
3
3
4
3
2
3
2
Total: 28

rounding total points: 41-54 – grade 5; 55-64 – grade 6; 65-74 –
grade 7; 75-84 – grade 8; 85-94 – grade 9; 95-100 – grade 10
6. METHODOLOGICAL INFORMATION
The lecture starts with a slide-based presentation, as a basis for an interactive
presentation with questions and detailed discussions about the concepts
introduced on the slides. The slides contain a small amount of information; the
emphasis goes on consulting the available bibliography. The slides are
available for download starting with several days before the course, and
students are required to read them in advance in order to facilitate a smooth
presentation, focused on problem-centered analyses rather than mere
definitions. The course material includes numerous practical examples that
ensure a strong connection between lectures and laboratory activities.
Laboratory activities serve to illustrate and structure the main concepts
introduced in course lectures, and to assist students in solving assignment
tasks. Laboratory materials are available in advance and students are required
to read them in preparation for their practical activity. Assignment tasks are
designed to assist students in solving kernel API usage problems and giving
them a basic set of skills for interracting with the kernel and its subsystems.
Questions and discussions on any aspect of the structure, content or design of
the lecture or the laboratory activities can be posed directly during class hours
or posted on the course site. Students are encouraged to give real-time
feedback about the material for the lecture and practical activities.
7. BIBLIOGRAPHY
Tanenbaum, A.S. - Modern Operating Systems, 2/E, Prentice Hall, 2001
Tanenbaum, A.S. - Computer Networks, 4/E, Prentice Hall, 2003
Tanenbaum, A.S. - Structured Computer Organization, 5/E, Prentice Hall,
2006
Levine, J.R. - Linkers and loaders, Morgan-Kauffman, 1999
Stevens, R. W. - Advanced Programming in the Unix Environment, AddisonWesley, 1992
Harris, D.B., Hill, M.B., Vyas, J. - Debian GNU/Linux 3.1 Bible, John Wiley &
Sons, 2001
Simpson, A. - Windows XP Bible, John Wiley & Sons, 2004
HEAD OF DEPARTMENT
COURSE TEACHERS
Prof. dr. ing. Nicolae Ţăpuş
ing. Octavian Purdilă
Download