Operating Systems Design

Universidad Carlos III de Madrid

Course Description

  • Course Name

    Operating Systems Design

  • Host University

    Universidad Carlos III de Madrid

  • Location

    Madrid, Spain

  • Area of Study

    Computer Engineering, Computer Info Systems, Computer Programming, Computer Science

  • Language Level

    Taught In English

  • Prerequisites

    STUDENTS ARE EXPECTED TO HAVE COMPLETED:

    * Programming
    * Writing and Communication Skills
    * Algorithms and Data Structures
    * Principles of Software Development
    * Computer Structure
    * Operating Systems

  • Course Level Recommendations

    Upper

    ISA offers course level recommendations in an effort to facilitate the determination of course levels by credential evaluators.We advice each institution to have their own credentials evaluator make the final decision regrading course levels.

    Hours & Credits

  • ECTS Credits

    6
  • Recommended U.S. Semester Credits
    3
  • Recommended U.S. Quarter Units
    4
  • Overview

    Operating systems design (218 - 13889)
    Study: Bachelor in Informatics Engineering
    Semester 2/Spring Semester
    3rd Year Course/Upper Division

    Students are expected to have completed:

    * Programming
    * Writing and Communication Skills
    * Algorithms and Data Structures
    * Principles of Software Development
    * Computer Structure
    * Operating Systems

    Compentences and Skills that will be Acquired and Learning Results:

    The goal of this course is to introduce students into the organization, structure and internal vision of the operating system, and the integrated services used in order to let students to design operating systems elements. The students have to know the impact of the decisions taken in the design into the computational system. In order to archive this goal, the student have to acquire several generic skills, knowledge, capacities and attitudes.

    General/transversal competences:
    - Analysis and synthesis capacities (PO a)
    - Abilities to organize and to plan (PO a)
    - Problem resolution abilities (PO c)
    - Capacity to apply theoretical concepts (PO a, c)

    Specific competences:
    - Cognitive (knowledge) (PO a)
    1. Knowledge of the architecture and organization of a Operating System.
    2. Knowledge of alternated operating systems architecture.
    3. Knowledge of the servers' architecture.
    4. An understanding of the impact of the operating system design decisions into the rest of the system.
    5. Knowledge of the techniques for programming and modifying the operating system internal.
    6. Knowledge of the methods for the internal management of resources inside an operating system.
    7. Knowledge of the fundamental principles and basic techniques of real-time systems and distributed systems.

    - Procedimental/Instrumental (Know how) (PO b, e, j, k, g)
    1. To modify the operating system through modules programming or building.
    2. To design operating systems components
    3. To use monitoring, management and tunning tools for operating systems

    - Attitudinal (To be) (PO c, d, i)
    1. Critical attitude towards the internal architecture of current operating systems.
    2. Concern for the quality of the components of an operating system.
    3. Motivation for archiving better solutions.
    4. Self-learing capacities.

    General and Transversal Competences
    * To use in an efficient way electronic tools for writing technical report, project memos and reports about computer science, including high quality presentations (CG9)
    * Basic knowledge about the usage and the programming of computers, operating systems, data bases, and computer applications with engineering applications (CGB4)

    Computer Sciences related competences
    * Knowledge of characteristics, functionality and structure of operating systems, and to design and implement software based on its services (CECRI10)

    Computer Engineering related competences
    * Knowledge to design and implement system software and communication software (CEIC4)

    Description of Contents: Course Description

    Course syllabus:
    1. Introduction
    1.1.- Brief reminder: definitions, main functions and features
    1.2.- Main design goals
    1.3.- Structure of an operating system
    1.4.- Asynchronous execution in the operating system
    1.5.- Kernel and modules

    2. Operating system Internals
    2.1.- Contexts where the operating system is available
    2.2.- Events in the operating system
    2.3.- Description of the operating system events
    2.4.- Treatment of events
    2.5.- Treatment on concurrency of events

    3. Drivers and extended services
    3.1.- Scope and objectives of I/O management in the operating system
    3.2.- Framework
    3.3.- Types of drivers and extended services
    3.4.- Process management support in the kernel
    3.5.- Working with a device
    3.6.- Design and development of a driver
    3.7.- Clock device: timing
    3.8.- Disk device: scheduling

    4.- File system design
    4.1.- Introduction: storage systems
    4.2.- Framework: devices, partitions / volumes, system files, directories, and files
    4.3.- Main objectives and architecture of a file system
    4.4.- Work environment: kernel and user space
    4.5.- Design and development of a filesystem
    4.6.- Advanced aspects for the design and development

    5. Memory Management
    5.1.- Introduction to basic memory usage
    5.2.- Regions of memory of a process
    5.3.- Virtual Memory
    5.4.- General goals of the memory manager
    5.5.- Memory Managers in the operating system
    5.6.- Main aspects of processes memory management

    6. Advanced aspects
    6.1.- Fault Tolerance in the operating systems
    6.2.- Distributed Operating Systems
    6.3.- Real-time Operating System

    Learning Activities and Methodology:

    - Lectures (PO a)
    - Practical lessons (PO a, b, c, e, k)
    - Exercises and Exams (PO a, b, c, e)
    - Student's work

    Assessment System:

    I) Ordinary session

    The continuous evaluation consists of:
    * Programming assignments.
    * Exercices and laboratories.

    About the continuous evaluation:
    * All programming assignments are mandatory.
    * They require that the average of all grades of all assignment must be a minimal of 4 (over 10)
    * Exercices and laboratories tagged as mandatory must be done.

    In the Final exam:
    * All the subject content (and activities done) are included.
    It will cover quizzes, exercises, programming assignments, etc.
    * The minimal grade to pass the ordinary session in the final exam is 4 over 10.

    The final grade will be computed by the following formula:
    Final grade = Final exam grade * 0.35 +
    Programming assignments grade * 0.35 +
    Exercises and lab assignments * 0.35

    For all students that are not following the continuous evaluation
    the final grade will be the 60% of the final exam grade.

    II) Extraordinary session

    In the Final exam:
    * All the subject content (and activities done) are included.
    It will cover quizzes, exercises, programming assignments, etc.
    * The minimal grade to pass the ordinary session in
    the final exam is 4 over 10.
    * The average grade of the exercices related with the Programming assignments
    will be 4 or higher for students that did not met the requirements of the continuous evaluation.

    CLARIFICATIONS
    1) Cheating programming assignments, lab assignments, etc. will be prosecuted.
    Not only the continuous evaluation is lost but further punishment actions will be taken.
    Both, copying from other group or copying from Internet works are
    considered cheating.
    2) For all group works, the related skills and abilities must be fulfilled by all members.
    All members share the responsibility for the submitted work.
    3) Depending on the total number of students, the academic calendar, number of groups, etc.
    some adaptations will be necessary in order to unwrap the course.
    Aula Global will be used to introduce the supplementary norms to the ones introduce here.
    4) Although the evaluation could be accumulated (each section might have its own grade)
    please remember that an important mistake could means a zero grade of the evaluated item.
    All requirements has to be fulfilled, the solution has to be correct, delivered before the dead-line,
    described according to, etc.
    Any other specific requirements to be evaluated will be introduced in the presentation.
    5) In order to obtain the best possible grade, not only academic aspects will be considered but also
    how the student has been collaborating in the general learning process of the course.

    Basic Bibliography:

    Abraham Silberschatz. Operating System Concepts . Wiley, ISBN-10: 1118063333 | ISBN-13: 978-1118063330. 9th Edition
    Jesús Carretero, Félix García, Pedro de Miguel y Fernando Pérez. Sistemas Operativos, 2ª edición. McGraw-Hill, 2ª edición. 2007

    Additional Bibliography:

    Andrew Tanenbaum . Operating Systems: Design and Implementation . Prentice Hall. 3rd edition, 2008
    Daniel P. Bovet & Marco Cesati. Understanding the Linux Kernel. O'Reilly. 2005
    Jesús Carretero, Félix García, Pedro de Miguel y Fernando Pérez. Problemas de Sistemas Operativos: de la base al diseño. McGraw-Hill. 2002
    Jesús Carretero, Félix García, Pedro de Miguel y Fernando Pérez. . Sistemas Operativos, Una Visión Aplicada. McGraw-Hill. 2º Edición, 2007
    Sreekrishnan Venkateswaran. Essential Linux Device Drivers. Prentice Hall. 2008
    William Stallings. Operating Systems: Internals and Design Principles . Prentice Hall. 2009 ISBN-10: 0136006329

Course Disclaimer

Courses and course hours of instruction are subject to change.

ECTS (European Credit Transfer and Accumulation System) credits are converted to semester credits/quarter units differently among U.S. universities. Students should confirm the conversion scale used at their home university when determining credit transfer.