Checking date: 29/12/2019


Course: 2019/2020

Operating systems design
(13889)
Study: Bachelor in Computer Science and Engineering (218)


Coordinating teacher: CALDERON MATEOS, ALEJANDRO

Department assigned to the subject: Department of Computer Science and Engineering

Type: Compulsory
ECTS Credits: 6.0 ECTS

Course:
Semester:




Students are expected to have completed
* Programming * Writing and Communication Skills * Algorithms and Data Structures * Principles of Software Development * Computer Structure * Operating Systems
Competences and skills that will be acquired and learning results. Further information on this link
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 Science's 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: programme
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.- Process, peripherical, drivers and extended services 3.1.- Introduction to process and devices 3.2.- Volunteer context switch 3.3.- Timers and involunteer context switch 3.4.- Main aspects on process scheduling 3.5.- Drivers and extended services organization 3.6.- Structure of a driver 3.7.- Design and development of a driver 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 Relationship between outcomes and evaluable activities: * PO a, b, e, j: exercices, and exam * PO c, k: labs, and guided labs * PO d, g: labs * PO i: guided labs * CG9: labs (report) * CGB4: guided labs * CECRI10: guided labs * CEIC4: guided labs and labs Soft-skills: work in a group
Assessment System
  • % end-of-term-examination 30
  • % of continuous assessment (assigments, laboratory, practicals...) 70
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
Recursos electrónicosElectronic Resources *
(*) Access to some electronic resources may be restricted to members of the university community and require validation through Campus Global. If you try to connect from outside of the University you will need to set up a VPN


The course syllabus and the academic weekly planning may change due academic events or other reasons.