Lecture Hours
Class Time
| Day |
Hours |
| Tuesday |
12:30-14:00 |
| Friday |
14:30-16:00 |
| Monday (only 4 during the course) |
9:00- 10:30 |
Objectives
In this course, the students will learn the following topics:
- C Programming.
Design of C programs manipulating complex data structures dynamically created through system calls for explicit memory management.
- Processes and Scheduling. Describe what is a process and why is needed within an operating system.
Analyze advantages and disadvantages of the different scheduling policies.
- Inter-process Communication. Detect deadlock between processes.
Write C programs with data structures that allow the exchange of informations among processes.
- Memory Management. Design and implement in software and hardware memory management systems.
- Input/Output. Design of programs to manipulate the input/output devices. Adaptation to generic devices.
- Disk management. Implementation of scheduling policies for disk operations. Design of policies oriented toward better performance.
- File System. Design the algorithms and data structures to represent and manage files.
Topics
- C programming
- Language and development environment
- Data structures
- Explicit memory management
- Processes and Scheduling
- Process structure
- Execution of processes
- Thread model
- Process scheduling
- Inter Process Communication
- Signal communication.
- Pipes.
- Messages queues.
- Memory Management
- Contiguous allocation
- Paging
- Segmentation
- Virtual memory
- Input/Output
- I/O Hardware
- Application I/O Interface
- Kernel I/O Subsystem
- Massive Storage
- Disk structure and management
- Swap space
- RAID structure
- Tertiary storage devices
- File Systems
- File-System Interface and Implementation
Practices
Will be conducted laboratory practices and problems in class
in order to improve understanding of concepts by students:
- The practices will be carried out in C in the laboratory listed on this page
- All practices conducted throughout the course must be submitted compulsorily and their evaluation will be taken into account for the final course grade according to the rules of the evaluation section.
The statements, sumbission dates, delivery page, etc. of every practice is given below
in the section Class Planning Practices.
Delivery practices are mandatory and are taken into account for the final grade. On one hand, students submissions are evaluated. On the other hand, there is a practical exam during the last sessions of the course.
Deliveries will be made through a web system
and will include the delivery of source files.
This system supports multiple release web versions of the same saving.
The practices will be corrected before the latest shipped version of the delivery date of each practice.
The practice groups will have two people and maintain its composition over the whole course.
Exceptionally there may be a group of one person,
this will require permission from the coordinator of the course.
For each practice will be issued their statement
and delivery date, prior to the date of completion in the laboratory.
This information will be available in the Labs Schedulle section of this web page..
Basic documentation
- Slides for the course (Available through Global Campus).
This material should be supplemented with lecture notes and reading at least the basic literature.
Bibliography
Basic:
The more theoretical aspects of the course are covered by the following books:
- A. Silberschatz y P. Galvin. Operating System Concepts. Seventh Edition. Addison Wesley, 2005. (or later)
- A.S. Tanenbaum. Distributed Operating Systems. (Chapter 1)
- D. Patterson, J. Hennessy.Computer Organization and Design. Morgan and Kaufmann Eds.
We recommend the following C Programming books:
- Brian W. Kernighan, Dennis M. Ritchie.
The C programming language. Second Edition, Prentice Hall, 1989.
ISBN: 0-13-110362-8.
(Library: L/D 004.438 C KER 1988)
- Brian W. Kernighan.
The Unix Programming environment. Prentice Hall.
(Library: L/S 004.451.9 UNIX KER)
It is also advisable to read any introduction to Linux,
any C tutorials or the GNU debugger:
|
Course Schedule
Group 95
| Session number |
Date |
Room |
Teacher |
Topic |
| 1 |
Tuesday, 6 Sep. |
4.1.E06 |
MBI |
Presentation and Introduction to the Course.
|
| 2 |
Friday, 9 Sep. |
4.1.E06 |
MBI |
Introduction to C programming. Programming in C: language and programs |
| 3 |
Tuesday, 13 Sep. |
4.1E06 |
MBI |
Pointers in C programming |
| 4 |
Friday, 16 Sep. |
4.1B02 |
VLC |
Lab 1: Introduction to C programming and Pointers in C programming |
| 5 |
Monday, 19 Sep. |
4.1B02 |
VLC |
Lab 2: Pointers in C programming |
| 6 |
Tuesday, 20 Sep. |
4.1.E06 |
MBI |
C programming: memory managment |
| 7 |
Friday, 23 Sep. |
4.1B02 |
VLC |
Lab 3:Memory management in C programming |
| 8 |
Tuesday, 27 Sep. |
4.1E06 |
MBI |
Processes and schedulling I |
| 9 |
Friday, 30 Sep. |
4.1.E06 |
MBI |
Processes and schedulling II |
| 10 |
Monday, 3 Oct. |
4.1.E06 |
MBI |
Processes and schedulling III |
| 11 |
Tuesday, 4 Oct. |
4.1.E06 |
MBI |
Inter-processes communication I |
12 |
Friday, 7 Oct. |
4.1.E06 |
MBI |
Inter-processes communication II |
| 13 |
Friday, 14 Oct. |
4.1B02 |
VLC |
Lab 4: Processes management |
| 14 |
Monday, 17 Oct. |
4.1.E06 |
MBI |
Memory management I |
| 15 |
Tuesday, 18 Oct. |
4.1.E06 |
MBI |
Memory management II |
| 16 |
Friday, 21 Oct. |
4.1.E06 |
MBI |
Memory management III |
| 17 |
Tuesday, 25 Oct. |
4.1.E06 |
MBI |
Memory management IV |
| 18 |
Friday, 28 Oct. |
4.1.E06 |
MBI |
Memory management V |
| 19 |
Monday, 31 Oct. |
|
|
NO LECTIVO |
| 20 |
Friday, 4 Nov. |
4.1B02 |
VLC |
Lab 5: Memory management |
| 21 |
Tuesday, 8 Nov. |
4.1E06 |
MBI |
Input/Output |
| 22 |
Friday, 11 Nov. |
4.1.E06 |
MBI |
Input/Output |
| 23 |
Tuesday, 15 Nov. |
4.1.E06 |
MBI |
Disk management I |
| 24 |
Friday, 18 Nov. |
4.1.E06 |
MBI |
Disk management II |
| 25 |
Tuesday, 22 Nov. |
4.1B01 |
VLC |
Lab 6: Input/Output |
| 26 |
Friday, 25 Nov. |
4.1.E06 |
MBI |
File system I |
| 27 |
Tuesday, 29 Nov. |
4.1.E06 |
MBI |
File system II |
| 28 |
Friday, 2 Dic. |
4.1.E06 |
MBI |
File system III |
| 29 |
Tuesday, 6 Dic. |
|
|
FESTIVO |
| 30 |
Friday, 9 Dic. |
|
|
NO LECTIVO |
| 31 |
Tuesday, 13 Dic. |
4.SD04 |
VLC |
Practical exam |
| 32 |
Friday, 16 Dic. |
4.1.B02 |
VLC |
Practical exam |
| . |
Not Available |
Not available |
|
Exam 1st term
|
| . |
Not Available |
Not available |
|
Exam 2nd term |
Labs Schedule
|
Submission deadline |
Teachers |
| Lab 1: Introduction to C programming |
29 September at 17:00 |
VLC |
| Lab 2: Pointers in C programming |
3 October at 17:00 |
VLC |
| Lab 3: Memory managament in C programming |
13 October at 17:00 |
VLC |
| Lab 4: Processes management |
27 October at 17:00 |
VLC |
| Lab 5: Memory management |
17 November at 17:00 |
VLC |
| Lab 6: Input / Output |
5 December at 17:00 |
VLC |
The set of lab exercises will be published in Aula Global 2.
Assessment
The evaluation of the lecture will take into account the level of students achievements of the different learning objectives, based on the student work individually or in groups.
For the first evaluation opportunity, the evaluation system will be based on a student continous evaluation and the students grade will be in the interval [0, 10], and the grade can be calculated in the following way:
- 10% Evaluation of the practical assignment submissions that students must submit during the course. The practical assignment submissions to be evaluated will be 6, specifically the first about pointers in C programming, the second about pointers in C programming, memory management in C programming, processes management, memory management, and input/output. Previously to the start of the course, students will know the exact submission deadlines for each one of those practical assignments, and students will be able to submit their practical assignments through a submission computer system. Teachers will evaluate these practical assignment submissions. The specific weights on the continous evaluation for each one of the practical assignments will be the same for each one, this is a 1.67%. Thus, summing a total of 10% over the indicated total. Students will solve these practical assignments during the course in groups of two people.
- 10% Group work that will be done by students
- 20% Practical exam. Each student will be in a dedicated computer with his/her own practical assignment submissions submitted during the course. Students will be requested to solve new exercises, which must be solved using the computer and students must submit the resulting files according to the proposed exercises. Students can only make use of his/her own submitted practical assignments before the deadlines, and the Linux manual, but students cannot make use of any other resources such as Web pages, books, etc.
- 60% Final exam of the course, that will cover all the contents of the course. This final exam will take place according to the university exam calendar.
In order to pass the course using the continous evaluation system, a student must obtain a global scoring of 5 or more taking into account all the tests. It is not necessary to pass each part separately, but to have a global grade equal or greater than 5, taking into account all the different tests with the assigned weights.
For those students that do not pass the course in the first opportunity ("convocatoria ordinaria"), students will have a second opportunity ("convocatoria extraordinaria"), and the way to calculate the grade for the second opportunity will be the following. If the student followed the continous evaluation, then the student will obtain the grade that is better for him/her between these two options: taking into account that the final exam counts 100%, or applying the same grade calculation of the continous evaluation of the first opportunity. For those students that did not follow the continous evaluation, the final exam will count 100% in the second opportunity. In any case, students will not be able to repeat none of the specific parts of the continous evaluation for the second opportunity, with the exception of the final exam.
|