Home UC3M Universidad Carlos III de Madrid - Departamento de Ingeniería Telemática Home IT
Location | Personnel | Teaching | Research | News | Intranet  

Computer Architecture

Course 2011-2012

General Information

Course 4th
Credits 6
Semester 1st
Theory Rooms 4.1.E05 (91 y 92) / 4.1.E06 (95)
Lab Rooms 4.1B02 or 4.SD04 depending on the specific days, consult the schedulling section
Teachers Pedro Muñoz Merino(coordinador) Teaching only in group 91
María Blanca Ibáñez
Vicente Luque Centeno

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:
  1. C Programming. Design of C programs manipulating complex data structures dynamically created through system calls for explicit memory management.
  2. 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.
  3. Inter-process Communication. Detect deadlock between processes. Write C programs with data structures that allow the exchange of informations among processes.
  4. Memory Management. Design and implement in software and hardware memory management systems.
  5. Input/Output. Design of programs to manipulate the input/output devices. Adaptation to generic devices.
  6. Disk management. Implementation of scheduling policies for disk operations. Design of policies oriented toward better performance.
  7. File System. Design the algorithms and data structures to represent and manage files.

Topics

  1. C programming
    • Language and development environment
    • Data structures
    • Explicit memory management
  2. Processes and Scheduling
    • Process structure
    • Execution of processes
    • Thread model
    • Process scheduling
  3. Inter Process Communication
    • Signal communication.
    • Pipes.
    • Messages queues.
  4. Memory Management
    • Contiguous allocation
    • Paging
    • Segmentation
    • Virtual memory
  5. Input/Output
    • I/O Hardware
    • Application I/O Interface
    • Kernel I/O Subsystem
  6. Massive Storage
    • Disk structure and management
    • Swap space
    • RAID structure
    • Tertiary storage devices
  7. 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.