Advanced Concepts On Operating Systems

You are here

Credits
6
Types
Specialization complementary (Computer Engineering)
Requirements
  • Orequisite: SO2
  • Orequisite: SOA
Department
AC
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

  1. 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
  2. Analysis and evaluation of operating system abstractions
    Related competences: CEC2.1, CEC3.1, G7.3, CTI1.4,
  3. Use the operating system development tools
    Related competences: CEC2.3, G7.3,
    Subcompetences:
    • Compilers, linkers and other tools to support
  4. 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
  5. 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
  6. Operating System Support for file systems
    Related competences: CEC2.3, CEC2.5, CEC2.4, G7.3,
    Subcompetences:
    • Tools to support data integrity: Journaling
  7. 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
  8. Implement and evaluate support for real time
    Related competences: CEC2.1, CEC3.1, G7.3, CTI1.4,
  9. Implement and evaluate virtualization support
    Related competences: CEC2.3, CEC2.5, CEC2.4, G7.3, CTI1.4,
  10. 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
  11. Manage facilities informatiques
    Related competences: CEC4.1, CEC4.2, CTI1.4,

Contents

  1. 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
  2. Development tools for operating systems
    It presents the tools needed to develop operating systems: compiler and linker, management protocols, etc..
  3. Hardware tools supporting the operating system
    Basic tools provided by the hardware in order to implement operating systems.
  4. Synchronization Tools
    Using the tools provided by the synchronization of hardware and operating system are provided as efficiently at the level of applications.
  5. Evaluation of performance of the operating system
    To determine the overhead introduced by using the abstraction of the operating system and performance appraisal system
  6. File Systems
    Managing data in file systems and tools to support the integrity
  7. Device Management
    Representation of devices within operating systems, treatment of the different devices: disk, network, user interaction.
  8. Development of device drivers
    Introduction of new management devices in the operating system
  9. Operating system support for real time applications
    Tools and libraries to support applications that respond in real time
  10. 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).
  11. Operating System Support for Mobile Devices
    We present the differences between a system desktop / laptop and operating system that supports mobile devices
  12. 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
Objectives: 1 2
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..
Objectives: 3
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
Objectives: 1 4
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
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
Objectives: 1 2 5
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
Objectives: 1 2 6
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
Objectives: 3 4 7
Contents:
Theory
3h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
6h

Second control

This test assesses the knowledge and practice acquired in the first nine weeks of the course, including items 1 through 7.
Objectives: 1 2 3 4 6 7
Week: 10
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
10h

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
Objectives: 1 2 8
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
Objectives: 1 2 9
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
Objectives: 1 2 3 10
Contents:
Theory
2h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
6h

Management of informatica installation

Participation in discussions on the sizing of a facility informatica
  • Theory: Management of a computer installation
Objectives: 2 11
Contents:
Theory
1h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h

Third control

This test assesses the knowledge and practice gained during the course.
Objectives: 1 2 3 4 6 7 8 9 10 5 11
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: 1 2 3 4 6 7 8 9 10 5 11
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: 1 2 3 4 6 7 8 9 10 5 11
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.

Bibliography

Basic:

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