Teachers
Person in charge
- Xavier Martorell Bofill ( xavim@ac.upc.edu )
Others
- Jordi Fornes de Juan ( jfornes@ac.upc.edu )
Weekly hours
Theory
2
Problems
0
Laboratory
2
Guided learning
0
Autonomous learning
6
Competences
Information technology specialization
- CTI1.4 - To select, design, deploy, integrate, evaluate, build, manage, exploit and maintain the hardware, software and network technologies, according to the adequate cost and quality parameters.
- CTI3.4 - To design communications software.
Computer engineering specialization
- CEC2.1 - To analyse, evaluate, select and configure hardware platforms for the development and execution of computer applications and services.
- CEC2.3 - To develop and analyse software for systems based on microprocessors and its interfaces with users and other devices.
- CEC2.4 - To design and implement system and communications software.
- CEC2.5 - To design and implement operating systems.
- CEC3.1 - To analyse, evaluate and select the most adequate hardware and software platform to support embedded and real-time applications.
- CEC4.1 - To design, deploy, administrate and manage computer networks.
- CEC4.2 - To demonstrate comprehension, to apply and manage the guarantee and security of computer systems.
Autonomous learning
- G7.3 - Autonomous learning: capacity to plan and organize personal work. To apply the acquired knowledge when performing a task, in function of its suitability and importance, decide how to perform it and the needed time, and select the most adequate information sources. To identify the importance of establishing and maintaining contacts with students, teacher staff and professionals (networking). To identify information forums about ICT engineering, its advances and its impact in the society (IEEE, associations, etc.).
Objectives
-
Working with the abstractions of the operating system
Related competences: CEC2.3, CEC2.4, G7.3, CTI1.4,
Subcompetences- Memory management
- Management processes and flows
- Access to files
- Management of communications
-
Analysis and evaluation of operating system abstractions
Related competences: CEC2.1, CEC3.1, G7.3, CTI1.4, -
Use the operating system development tools
Related competences: CEC2.3, G7.3,
Subcompetences- Compilers, linkers and other tools to support
-
Know how to use the hardware support for the operating system
Related competences: CEC2.1, CEC2.4, CEC3.1, CTI1.4,
Subcompetences- Memory management, TLB and page tables
- Synchronization Tools
-
Use the techniques of performance evaluation of operating systems
Related competences: CEC2.1, CEC3.1, G7.3, CTI1.4,
Subcompetences- Evaluation of overhead that introduce system services
-
Operating System Support for file systems
Related competences: CEC2.3, CEC2.5, CEC2.4, G7.3,
Subcompetences- Tools to support data integrity: Journaling
-
To know, know how to use and implement management devices within the operating system
Related competences: CTI3.4, CEC2.5, CEC2.4, G7.3,
Subcompetences- Storage devices
- Devices interaction with the user
- Communication Devices
-
Implement and evaluate support for real time
Related competences: CEC2.1, CEC3.1, G7.3, CTI1.4, -
Implement and evaluate virtualization support
Related competences: CEC2.3, CEC2.5, CEC2.4, G7.3, CTI1.4, -
Use the operating system support for mobile devices
Related competences: CTI3.4, CEC2.1, CEC4.1, CEC3.1, G7.3, CTI1.4,
Subcompetences- Support for Mobile Communications
- Use of resources in mobile environments
-
Manage facilities informatiques
Related competences: CEC4.1, CEC4.2, CTI1.4,
Contents
-
OS Abstractions
This topic presents the abstracccions operating systems offer the user level and applications: processes and flows, regions of memory, data storage and input / output device management. Comparisons are made between different abstractions offered as equivalent and determine which are most appropriate -
Development tools for operating systems
It presents the tools needed to develop operating systems: compiler and linker, management protocols, etc.. -
Hardware tools supporting the operating system
Basic tools provided by the hardware in order to implement operating systems. -
Synchronization Tools
Using the tools provided by the synchronization of hardware and operating system are provided as efficiently at the level of applications. -
Evaluation of performance of the operating system
To determine the overhead introduced by using the abstraction of the operating system and performance appraisal system -
File Systems
Managing data in file systems and tools to support the integrity -
Device Management
Representation of devices within operating systems, treatment of the different devices: disk, network, user interaction. -
Development of device drivers
Introduction of new management devices in the operating system -
Operating system support for real time applications
Tools and libraries to support applications that respond in real time -
Operating system support for virtualized environments
Deploying virtual machines with / without hardware support. Options for implementing virtual machines native and non-native (in physically different environments). -
Operating System Support for Mobile Devices
We present the differences between a system desktop / laptop and operating system that supports mobile devices -
Management of computer installation
Managing a facility computer science from the planning and purchase, installation, commissioning and maintenance
Activities
Activity Evaluation act
OS Abstractions
The student participates actively in the session, working group on the topics presented, and comparisons of the possible implementations.- Theory: Description and comparison of abstractions that provide operating systems
- Laboratory: Entry into the environment of the laboratory and practical work comparing different ways to create and process flows, manage memory, etc.
- Autonomous learning: Completing the study of operating system abstractions
Contents:
Theory
3h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
8h
Development of Operating Systems
Study of operating system development tools, participate in class discussions and the practices of compilation of the operating system- Theory: Description of development tools
- Laboratory: Compilation of the operating system
- Autonomous learning: Compilation of system process, init, network servers, etc..
Contents:
Theory
2h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
2h
Hardware support tools
Participation in discussions about the use of hardware support within the operating system for the implementation of the address space and memory management, and synchronization- Theory: Description of hardware mechanisms to support the address space and synchronization
- Laboratory: Implementation of synchronization using the techniques provided by the hardware
- Autonomous learning: Comparison of ease of use and performance of synchronization tools
Contents:
Theory
2h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
2h
First control
This test assesses the knowledge and practice gained in the first 3 topics of the course. It consists of a written exam, done in a theory class.Week: 5
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h
Performance Evaluation of the operating system
Participation in discussions on performance evaluation techniques and alternatives that exist for reliable measurements and low impact on the execution system- Theory: Evaluation techniques of system performance
- Laboratory: Measurement and evaluation of system performance
- Autonomous learning: Teniques assessment based on hardware event counters
Contents:
Theory
2h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
4h
File Systems
Participation in discussions on the possibilities to implement filesystems in jounaling- Theory: Implementation of file systems
- Laboratory: Use of journaling to increase data integrity
- Autonomous learning: Search the characteristics of various file systems
Contents:
Theory
2h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
4h
Development of management devices
Participation in discussions on the implementation of alternative device drivers- Theory: Implementation of device drivers
- Laboratory: Implementation of device drivers
- Guided learning: Implementation of USB device drivers
- Autonomous learning: Alternatives in the implementation of device drivers
Contents:
Theory
3h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
6h
Support for real-time applications
Participation in discussions on the implementation of alternatives to support real-time- Theory: Support for real time
- Laboratory: Installation support for real-time operating system
- Guided learning: Planning policies for real-time
- Autonomous learning: Analysis of the performance of services for real-time, compared to traditional services
Contents:
Theory
2h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
4h
Operating system support for virtualized environments
Participation in discussions on implementation techniques of virtualized environments in a non-native and native ways- Theory: Virtualized environments
- Laboratory: Installation and implementation of a virtualized environment
- Autonomous learning: Existing virtualized environments running in a native
Contents:
Theory
2h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
4h
Operating System Support for Mobile Devices
Participation in discussions about alternative operating systems for mobile devices- Theory: Operating System Support for Mobile Devices
- Laboratory: Performance evaluation of a system for mobile device and compared to a traditional operating system
- Autonomous learning: Comparison of services offered systems for mobile devices with services offered by traditional systems
Contents:
Theory
2h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
6h
Final exam
For those students that would need to reach the minimum level of the course or those that want to raise their marks, this examination will be hold after the period of the classesObjectives: 1 2 3 4 6 7 8 9 10 5 11
Week: 15 (Outside class hours)
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h
Teaching methodology
The teacher presents the topics proposed in the theory sessions, while open discussions among and with students on various topics. Each session includes the theory of motion of various topics related to the class, students work independently on his compte.Les lab follow the issues raised in the theory and serve to entrench the use and evaluation of abstractions and system services operatiu.Per to work in the competition for autonomous learning, the course will be 2 staff work activities related to the services offered by operating systems. The themes of the activities will be defined during the course. Will for example, the introduction of new system calls, the interacio between Android and Linux systems, add the OS services through libraries, performance evaluation system, etc..Evaluation methodology
The autonomous learning competence is evaluated based on the reports delivered by the student during the course. Its weight is 10% on the final mark.The technical competences are evaluated based on the theory (40%) and the laboratory exam (50%).
The theory gets evaluated based on the partial and the final exams. The mark of the 3 partial exams is computed as the averaged mean of the 3 tests, with the following weights: 25, 25, and 50%. If this mark is equal or larger than 6.0, attending the final exam is optional.
In case a student attends the final exam, his/her theory mark will be the highest between the mark obtained in the final exam and the averaged mean of the partial exams.
Bibliography
Basic
-
Operating system concepts
- Silberschatz, A.; Galvin, P.B.; Gagne, G,
John Wiley & Sons,
2019.
ISBN: 9781119454083
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004148389706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Operating systems: internals and design principles
- Stallings, W,
Pearson Education Limited,
2017.
ISBN: 9781292214306
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991001576049706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Previous capacities
- User-level Operating Systems- Basic level on the internal structure of the operating system
- Programming languages C and C++
- Compile and link mechanisms
- Basic concepts of computer architecture