Skip to main content

Advanced Concepts On Operating Systems

Credits
6
Types
Specialization complementary (Computer Engineering)
Requirements
Department
AC
Web
http://docencia.ac.upc.edu/FIB/grau/CASO
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

Others

Weekly hours

Theory
2
Problems
0
Laboratory
2
Guided learning
0
Autonomous learning
6

Competences

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.
  • 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
    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
    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
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    0h

    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
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    0h

    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
    0h
    Guided learning
    0h
    Autonomous learning
    0h

    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
    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

    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