Advanced Operating Systems

You are here

Credits
6
Types
Specialization compulsory (Information Technologies)
Requirements
  • Prerequisite: SO
  • This subject can not be enroled if you passed: SO2
Department
DAC
This course offers an insight into the basic operation of an operating system, evaluating the implications it has on the performance of applications implementing different system components.

Teachers

Person in charge

  • Alex Pajuelo Gonzalez ( )

Others

  • Juan Jose Costa Prats ( )
  • Yolanda Becerra Fontal ( )

Weekly hours

Theory
2
Problems
0
Laboratory
2
Guided learning
0.4
Autonomous learning
5.6

Competences

Technical Competences

Common technical competencies

  • CT6 - To demonstrate knowledge and comprehension about the internal operation of a computer and about the operation of communications between computers.
    • CT6.1 - To demonstrate knowledge and capacity to manage and maintain computer systems, services and applications.
    • CT6.3 - To demonstrate knowledge about the characteristics, functionalities and structure of the Operating Systems allowing an adequate use, management and design, as well as the implementation of applications based on its services.
    • CT6.4 - To demonstrate knowledge and capacity to apply the characteristics, functionalities and structure of the Distributed Systems and Computer and Internet Networks guaranteeing its use and management, as well as the design and implementation of application based on them.
  • CT7 - To evaluate and select hardware and software production platforms for executing applications and computer services.
    • CT7.1 - To demonstrate knowledge about metrics of quality and be able to use them.
    • CT7.2 - To evaluate hardware/software systems in function of a determined criteria of quality.
  • CT8 - To plan, conceive, deploy and manage computer projects, services and systems in every field, to lead the start-up, the continuous improvement and to value the economical and social impact.
    • CT8.7 - To control project versions and configurations.

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.

Transversal Competences

Third language

  • G3 - To know the English language in a correct oral and written level, and accordingly to the needs of the graduates in Informatics Engineering. Capacity to work in a multidisciplinary group and in a multi-language environment and to communicate, orally and in a written way, knowledge, procedures, results and ideas related to the technical informatics engineer profession.
    • G3.1 - To understand and use effectively handbooks, products specifications and other technical information written in English.

Objectives

  1. Know the behavior of a real OS from booting the computer, the system initialization, the dynamic management of resources, to the shutdown of the computer.
    Related competences: CTI3.4, CT6.1, CT6.3, CT6.4, CTI1.4,
  2. Know the etails of the implementation of some of the basic components of a real OS: initialization code, memory management code, input / output management code, process management and executable file management.
    Related competences: CT6.1, CT6.3, CT7.2, CTI1.4,
  3. Describe the procedure to extend, dynamically, the kernel of a real OS
    Related competences: CT6.1, CT6.3, CT8.7, CTI1.4,
  4. Detail the internal structure of a kernel module identifying the distinct components as well as its relationship with the generic OS interface and the use of structures in memory for controlling the input/ouput.
    Related competences: CT6.1, CT6.3, CT8.7, CTI1.4,
  5. Know the multithreading programming paradigm, the problem of sharing memory and the implementation of mechanisms for mutual exclusion with the required hardware support.
    Related competences: CTI3.4, CT6.1, CT6.3, CT6.4, CTI1.4,
  6. Implementing some of the basic components of a real OS: boot code, memory management code, input / output management code, process management code and file execution code using C and assembler on an Intel x86 architecture.
    Related competences: CTI3.4, CT6.1, G3.1, CT6.3, CT6.4, CT7.1, CT7.2, CT8.7, CTI1.4,
  7. Compare and evaluate different alternatives for implementing resource management code using metrics of cost, efficiency and quality
    Related competences: CT6.1, CT6.3, CT7.1, CT7.2, CT8.7,
  8. Design the communication services for multiprocess and/or multithreaded applications.
    Related competences: CTI3.4, CT6.4, CT7.2, CT8.7, CTI1.4,
  9. Use and understand technical documents in English provided with the operating system.
    Related competences: G3.1, CT6.3,
  10. Use version control software.
    Related competences: CT6.1, CT6.3, CT8.7,

Contents

  1. System boot
    This chapter will explain all the actions performed to start all the services offered by an operating system. We also describe and discuss possible implementations of this process in a current operating system.
  2. System calls, exceptions and interrupts.
    This chapter describes and discusses the possible implementations of the mechanisms to enter the system along with its hardware support. We will detail the most important aspects of the mechanisms and the dependencies between the operating system and hardware. We will discuss the benefits of implementing current virtualization techniques. We will present and discuss several implementations of current operating systems.
  3. Memory management
    This chapter will address the following issues: logical address space of the process. Memory-based paging systems and support hardware. Design and implementation of virtual memory. Replacement algorithms for virtual memory. Implementation of shared memory. Alternative design and implementations of memory systems in modern operating systems.
  4. Process management
    This chapter will address the following issues: detailed implementation of the process control block. Implementation of the creation of a process. Implementation of the finalization of a process. Implementation of the execution of an executable file. Implementation of the context switch between processes. Description of the structures and algorithms for process scheduling. Implementation of the routines for process scheduling. Description and discussion of several implementations of process scheduling in current operating systems.
  5. Input/output management and the system file
    This chapter covers the following topics: description and implementation of the independent and dependent parts of an OS with respect to a device. Implementation of a device descriptor. Description, implementation and operation of the structures for the input / output and the file system. Description and implementation of the logical structure of system files in disk. Mechanisms of communication through the file system. Mechanisms of communication through a network device. Description of the implementation of several current file systems.
  6. Shared memory
    This chapter covers the following topics: problems of memory sharing between multiple threads of execution within a process. Race conditions. Areas of mutual exclusion. Description and implementation of mechanisms for mutual exclusion to access shared memory, in particular, test and set, mutex and semaphores. Description, discussion and implementation of mechanisms for mutual exclusion in modern operating systems.
  7. Extension of the operating system kernel
    This chapter covers the following topics: concept, design and implementation of OS modules. Loading of kernel modules at system initialization time and at run time. Description of the access to features implemented in kernel modules. Understanding the relationship between kernel modules and hardware devices and software.

Activities

Activity Evaluation act


Familiarisation with the framework

Acquire the knowledge to develop the laboratory.
Objectives: 1 2 6
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
2h

Develop a RSI

Develop a RSI for the internal clock
Objectives: 1 2 6 10
Contents:
Theory
2h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
4h

Creation of an OS entry point

Creation of a new entry point into the system for internal configuration
Objectives: 1 2 6 10
Contents:
Theory
2h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
5h

Memory management

Assimilate the contents of this topic
Objectives: 1 2 6 7
Contents:
Theory
3h
Problems
0h
Laboratory
3h
Guided learning
0h
Autonomous learning
6h

Process management

Implementation of the process management components (creation, scheduler, scheduling policies, ...)
Objectives: 1 2 6 7 9 10
Contents:
Theory
6h
Problems
0h
Laboratory
7h
Guided learning
0h
Autonomous learning
8h

First midterm exam


Objectives: 1 2 3 4 7
Week: 8
Type: theory exam
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h

Practical contents midterm exam


Objectives: 1 2 3 4 9 10
Week: 8
Type: lab exam
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
6h

Kernel extension

Assimilate the concepts of this topic
Objectives: 1 2 3 4 9
Contents:
Theory
1h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h

Input and output and the file system

Assimilate the concepts of this topic
Objectives: 1 2 6 7 8 9
Contents:
Theory
6h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h

Interprocess communication

Development of multiprocess and multithreaded applications, with information sharing, and evaluation of their performance
Objectives: 1 2 5 6 7 8 9 10
Contents:
Theory
5h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
6h

Analysis of the system performance

The student will think, decide and evaluate various metrics at system level granularity
Objectives: 1 2 6 7 9 10
Contents:
Theory
1h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
5h

Second practical contents midterm exam


Objectives: 1 2 3 4 5 6 7 8 9 10
Week: 14
Type: lab exam
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
6h

Second midterm exam


Objectives: 1 2 3 4 5 6 7 8 9 10
Week: 14
Type: theory exam
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h

Theory final exam


Objectives: 1 2 3 4 5 6 7 8 9 10
Week: 15 (Outside class hours)
Type: final exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
3h
Autonomous learning
6h

Final lab exam


Objectives: 2 5 6 7 8 9 10
Week: 15 (Outside class hours)
Type: final exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
3h
Autonomous learning
6h

Teaching methodology

The course will present two types of class: Theory and laboratories. The theory classes will explain the concepts, designs and implementing of several common components of a current operating system.

The lab classes will be carried out weekly. The first seven weeks the student will design, implement and evaluate a process scheduler in an operating system called Zeos. The last 7 weeks tthe student will implement and evaluate multiprocess/multithreaded applications in Linux.

Evaluation methodology

The final grade for the course consists of the grade of the core technical competences (CT), and the grade of generic competence (CTr) by the formula:

Final Grade = (CT + CTr) * (10/11)

Where the maximum score of CTr is 1.

The grade of the CT can be obtained by continuous assessment (CTc) or excepcionally by a final exam (CTf). Is calculated as:

CT = max (CTc, CTf)

Where grade CTc is composed of several evaluative acts: theory exams (T) and laboratory exams (L). The formula for calculating this grade is as follows:

CTc = 50% T + 50% L

To calculate T two assessments are used with the same weights:

T = 50% T1 + 50% T2

To calculate L, two assessments with the same weights are also used and a follow up grade (S):

L = 35% L1+ 35% L2 + 30% S

The follow up grade (S) is assigned by the teacher as an evaluation of the right progress throughout the laboratory.

The CTf grade is calculated using a theory exam (T) and a laboratory exam (L). To accomplish this grade is mandatory to do both exams. This option is only available for those students that fail the continuous assessment. The formula is as follows:

CTf = 50% T + 50% L

The grade of generic competence (CTr) is obtained during the semester through various activities. Rating of this competence will have values A, B, C, D or NA: A corresponds to an excellent level, B to a desired level, C to a sufficient level, D to a failed level, and NA to not assessed.

Bibliography

Basic:

Complementary:

Web links

Previous capacities

The student must have the technical capabilities that will confer the subjects studied previously together with a medium level of technical English to read and understand documentation.

The technical capabilities could be summarized as follow:

-Operating systems: Understanding the basics of an operating system along with the creation of applications using the generic system call interface explained during the Operating System course.
-In terms of computer architecture: Knowledge of the main elements of a computer, how these elements relate to each other, internal representation of data and knowledge of the assembler language.
-In terms of programming: Ability to code complex programs from scratch composed of several moduls. Definition of data types, pointers and references, and assembler code. Compilation and linkage of executables.