In the course of Advanced Operating Systems Concepts (CASE), students will learn to design, implement and analyze operating systems that offer the runtime environment and evaluate its quality. The course content covers issues of architecture that runs an operating system, from servers to mobile environments, hardware support necessary for the OS, types of services offered by operating systems, application requirements and real time control of energy, support for parallelism, application development on OS virtualization techniques and management of the security and safety system and applications. The evaluation of the course will be done by three partial checks throughout the semester, a laboratory examination and a final exam.
Teachers
Person in charge
Xavier Martorell Bofill (
)
Others
Jordi Fornes de Juan (
)
Weekly hours
Theory
2
Problems
0
Laboratory
2
Guided learning
0
Autonomous learning
6
Competences
Technical Competences of each Specialization
Information technology specialization
CTI1 - To define, plan and manage the installation of the ICT infrastructure of the organization.
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 - To design solutions which integrate hardware, software and communication technologies (and capacity to develop specific solutions of systems software) for distributed systems and ubiquitous computation devices.
CTI3.4
- To design communications software.
Computer engineering specialization
CEC2 - To analyse and evaluate computer architectures including parallel and distributed platforms, and develop and optimize software for these platforms.
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 - To develop and analyse hardware and software for embedded and/or very low consumption systems.
CEC3.1
- To analyse, evaluate and select the most adequate hardware and software platform to support embedded and real-time applications.
CEC4 - To design, deploy, administrate and manage computer networks, and manage the guarantee and security of computer systems.
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.
Transversal Competences
Autonomous learning
G7 [Avaluable] - To detect deficiencies in the own knowledge and overcome them through critical reflection and choosing the best actuation to extend this knowledge. Capacity for learning new methods and technologies, and versatility to adapt oneself to new situations.
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,
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
ActivityEvaluation 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
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
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
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
10h
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
This test assesses the knowledge and practice gained during the course. Objectives:1234678910511 Week:
14
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
10h
Laboratory exam
In this exam, students solve practical problems related with all course subjects, individually. You can have books and notes. Objectives:1234678910511 Week:
14
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
8h
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 classes Objectives:1234678910511 Week:
15 (Outside class hours)
Theory
3h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
12h
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.
- 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