Operating Systems

Credits
6
Types
Compulsory
Requirements
  • Prerequisite: EC
  • Prerequisite: IC
Department
AC
The course provides an overview of the OS from three perspectives: services offered by the systemto users/ programs and their utilization, major internal design elements of a kernel (data structures and algorithms) and finally relates these two components to understand how it affects performance of a system implementing programs concurrently (or in parallel depending on the architecture). The course focuses on the context of an OS kernel (within node), no entering to network issues.

Teachers

Person in charge

  • Yolanda Becerra Fontal ( )

Others

  • Amador Millán Vizuete ( )
  • David López Álvarez ( )
  • Enric Morancho Llena ( )
  • Gladys Miriam Utrera Iglesias ( )
  • Javier Verdu Mula ( )
  • Jordi Fornes de Juan ( )
  • Julita Corbalan Gonzalez ( )
  • Pere Barlet Ros ( )

Weekly hours

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

Competences

Technical Competences

Common technical competencies

  • CT2 - To use properly theories, procedures and tools in the professional development of the informatics engineering in all its fields (specification, design, implementation, deployment and products evaluation) demonstrating the comprehension of the adopted compromises in the design decisions.
    • CT2.3 - To design, develop, select and evaluate computer applications, systems and services and, at the same time, ensure its reliability, security and quality in function of ethical principles and the current legislation and normative.
  • CT3 - To demonstrate knowledge and comprehension of the organizational, economic and legal context where her work is developed (proper knowledge about the company concept, the institutional and legal framework of the company and its organization and management)
    • CT3.6 - To demonstrate knowledge about the ethical dimension of the company: in general, the social and corporative responsibility and, concretely, the civil and professional responsibilities of the informatics engineer.
  • 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.2 - To demonstrate knowledge, comprehension and capacity to evaluate the structure and architecture of computers, and the basic components that compound them.
    • 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.
  • 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.
    • CT7.3 - To determine the factors that affect negatively the security and reliability of a hardware/software system, and minimize its effects.
  • 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.4 - To elaborate the list of technical conditions for a computers installation fulfilling all the current standards and normative.

Transversal Competences

Appropiate attitude towards work

  • G8 - To have motivation to be professional and to face new challenges, have a width vision of the possibilities of the career in the field of informatics engineering. To feel motivated for the quality and the continuous improvement, and behave rigorously in the professional development. Capacity to adapt oneself to organizational or technological changes. Capacity to work in situations with information shortage and/or time and/or resources restrictions.
    • G8.1 - To have a wide vision of the possibilities of the career in the field of informatics engineering. To have a positive and receptive attitude towards the quality in the development of the profession.

Objectives

  1. Know the main functions of an OS and because of its necessity (abstraction / cirtualització hardware, security, efficiency)
    Related competences: CT6.1, CT6.3, CT7.1, CT7.2, CT7.3, CT6.2, CT8.4, CT3.6, CT2.3,
  2. Understanding how the OS manages and provides its services and capabilities internally through data representation and management of resources, algorithms and hardware support
    Related competences: CT6.1, CT6.3, CT7.1, CT7.2, CT7.3, CT6.2, CT8.4, CT3.6, CT2.3,
  3. An overview of information systems: know the different interfaces and components that interact with the OS (hardware, system libraries, libraries + language user programs)
    Related competences: CT6.1, CT6.3, CT7.1, CT7.2, CT7.3, CT6.2, CT8.4, CT3.6, CT2.3,
  4. For each basic functionality of the system (process management, memory and I/O) know influencing basic aspects of the different architectures and environments that can support operating systems
    Related competences: CT7.3, CT8.4,
  5. For each basic functionality of the system (process management, memory and I/O): Understanding the hardware element that we want virtualizing
    Related competences: CT6.1, CT6.3, CT7.1, CT7.2, CT7.3, CT6.2, CT8.4, CT3.6, CT2.3,
  6. For each basic functionality of the system (process management, memory and I/O) know and be able to use the basic functionality offered by the system to the user.
    Related competences: CT6.1, CT7.3, CT2.3,
  7. For each basic functionality of the system (management processes, memory and I/O) know the basic elements of design (data types, data management structures and management algorithms) to offer this functionality.
    Related competences: CT6.3, CT7.3, CT2.3,
  8. For each basic functionality of the system (process management, memory and I/O):to know the basic architecture of the basic design elements in SO
    Related competences: CT6.3, CT7.3, CT2.3,
  9. For each basic resource which manages the OS (processes, virtual memory and I/O):to know the basic metric to assess service system and be able to apply the theoretical level.
    Related competences: CT7.1, CT7.2,
  10. For each basic resource which manages the system (processes, memory, I/O), know and be able to use basic tools to analyze a system's implementation and to monitor the state of the system to detect potential problems.
    Related competences: CT6.1, CT6.3, CT7.3, CT2.3,
  11. Understanding the implications, from the viewpoint of system and user of a multi-user parallel system.
    Related competences: CT7.1, CT7.3, CT6.2, CT8.4,
  12. Being able to participate in proactive professional development, demonstrating attendance, punctuality and respect
    Related competences: G8.1,
  13. Being able to show motivation for quality and continuous improvement
    Related competences: G8.1,

Contents

  1. Introduction to Operating Systems
    This chapter will give an overview of what is an OS that manages hardware resources, what are the services, functions etc.. We also introduced different types of users and applications that interact with the OS and the various forms of access.
  2. Process Management
    This chapter will address the following points: concept of process. Context of a process. The life of a process. Concept planning processes.. Mechanism of change of context. Management of events (signals). Concept of thread. Concept of concurrency. Issues related to concurrency.Inter-process communication: shared memory and message passing (only in terms of concept).. Basic services for process management: Calls to system and management efficiency, security between users, reliability, etc.. Idea / Context: registros, stack, memory (address space) / Member / signals / users / environment variables. Representation of internal processes in Linux as well as the Round-robin scheduling algorithm to illustrative mode .
  3. Memory management
    This chapter will address the following points regarding memory requirements of a general purpose system (definition of address space of a process and need for virtual memory). Basic services offered by the memory management system: support for address translation, protection of processes, loading processes, dynamic memory management, virtual memory, etc.. Structures and algorithms for management in virtual memory.
  4. Management of input / output
    This topic will address the following points: Characteristics and types of devices. Concept of independence of devices. Relationship between the management of input / output and process management: operations blocking operations. Type of logical devices: pipes, console, sockets and files. Basic services and data structures necessary. Management namespace. Internal representation and algorithms to support the efficient management of devices (buffering, spooling, caching, locking).
    Concept of File System (FS) and services offered by it. Layered architecture of SF. Introduction to the VFS. Different types of files and utilities associated with files. Internal organization in Linux directories, i-nodes.. Organization of the disk space: fragmentation, partitions, services associated with SF's, space management free / busy. Reliability for SF's.

Activities

Activity Evaluation act


Development of the subject Introduction to OS

During this activity students will be an overview of what is an OS, what are their functions and services which are the main components of the system will develop during the course.
Objectives: 1 2 3
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h

Overview of the execution environment

During this activity, we will use basic commands to work with a Linux working environment, especially working from the command line but also understand the relationship with a graphical environment. Practiced commands to navigate the file system for manipulating files, etc..
Objectives: 1 2 3 12 13
Contents:
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
2h

C Programming and development

During this activity we will work on C programming and give some basic guidelines for developing small projects that will make students in the lab sessions so they have a similar structure in terms of tools, organizing files and so on.
Objectives: 1 2 3 12 13
Contents:
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
10h

Development of concepts associated to process management

During these hours we will practice the concepts and basic services related to processes and threads. We will explain the concepts related to the internal organization and management that makes the OS to provide these services and features. We also discussed issues related to systems efficiency, reliability, security, etc..
Objectives: 4 5 6 7 8 9 10 11
Contents:
Theory
8h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h

Basic services-related processes

During this activity we will practice basic system calls that we can find in a Linux system to create a process, change the executable and wait for the process exit. We will also practice from an administrative point of view related to the monitoring processes.
Objectives: 6 7 10 11 12 13
Contents:
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
2h

Using advanced process and threads services

During this sesion we will work with threads (POSIX). We also introduce the management of events between processes (signals) both as a means of communication and as advanced service process management. We willl also work aspects related to concurrency processes.
Objectives: 4 5 6 7 10 11 12 13
Contents:
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
2h

Process management: problems solving session

During that session we will solve some process management exercices
Objectives: 4 5 6 7 8 9 10 11
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

Development of concepts associated with memory management

During these hours you will practice the basic concepts related to memory management, services and functionalities offered by the system users (including optimizations that are typically at the level of library) and describe the mechanisms and algorithms internal management of the kernel to manage virtual memory.
Objectives: 4 5 6 7 8 9 10 11
Contents:
Theory
4h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h

Basic services for memory management

During this sesion we will practice with basic services for managing the memory processes and some commands to monitor the status of processes
Objectives: 5 6 12 13
Contents:
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
2h

Metrics of performance and scheduling processes. Multiprocess environment impact.

We will evaluate different programs with different configurations in terms of processes and system load analytically. The goal is to understand how system status and application itself influences in the application performance
Objectives: 4 5 6 7 8 9 11 12 13
Contents:
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
4h

First continuous assessment control

This control will include the topics Introduction, Processes and memory. This exam may include both theoretical questions such problems.
Objectives: 1 2 3 4 5 6 7 8 9
Week: 8 (Outside class hours)
Type: theory exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
2h
Autonomous learning
6h

Development of concepts associated with the input / output data

During these hours, we explain the concepts related to managing the input / output data: devices, services and functions related to input / output management system and device independence.
Objectives: 4 5 6 7 8 9 10 11
Contents:
Theory
10h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
8h

Basic services for I/O Management

In this sesion we will practice with basic services to manage the input / output of data from/to processes. There will be exercises to consolidate the concepts related to the independence of devices.
Objectives: 5 6 12 13
Contents:
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
2h

Advanced services to manage the input / output of data from/to processes

During this session we will practice into more complex services and commands for managing input / output of data from/to processes and relationships with other system services such as management of events (signals)
Objectives: 4 5 6 7 11 12 13
Contents:
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
2h

Management of input / output devices blockers: Sockets

Durant aquesta sessió es possaran en comú la gestió de la entrada/sortida vista fins al moment considerant les particularitats d'alguns dispositius concrets, com per exemple un dispositiu de xarxa (sockets)
Objectives: 6 10 12 13
Contents:
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
4h

Systems Files and data Files

During that session we will use specific commands for system file management and specific system calls for data file management.
Objectives: 5 6 7 8 9 12 13
Contents:
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
2h

Input/Output management: Problem solving session

During that sessions, we will solve some exercises related with input/output data management and process communication
Objectives: 4 5 6 7 8 9 10 11
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

File systems: problems


Objectives: 1 2 4 5 6
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

Validation Exercise: process management, memory management, input/output management and filesystems

After finishing all the lab sessions, the students will solve a laboratory exam that will be part of the continuous assessment grade
Objectives: 6 8 10 11
Week: 14 (Outside class hours)
Type: lab exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
2h
Autonomous learning
2h

Second control continuous assessment

This second control may include questions regarding the al topics presented during the year but will focus on recent issues not evaluated in the first part. This examination may include questions both theoretical and problems.
Objectives: 1 2 3 4 5 6 7 8 9 10 11
Week: 14 (Outside class hours)
Type: theory exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
2h
Autonomous learning
6h

Final exam lab

Final exam will include any laboratory system calls, tools, concepts, etc. practiced in the laboratory.
Objectives: 6 10 11
Week: 14
Type: lab exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h

Final Exam

Written exam will include all course content. This examination may include questions both theoretical and problems.
Objectives: 1 2 3 4 5 6 7 8 9 10 11
Week: 15 (Outside class hours)
Type: final exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
2h
Autonomous learning
3h

Inter-process communication



Theory
0h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
3h

Teaching methodology

The course will mainly have two types of class: Theory and laboratories. The theory classes are mainly oriented to generic or to explain concepts applied to the particular case of Linux. These classes will be supported by slides. The laboratory classes are weekly and include work performed prior to the student, in class exercises to do individually and some questions that must be delivered at the end of class. Attendance to at least 80% of the laboratory sessions is a necessary condition to pass the continuous evaluation of the course. Although all the sessions will include these questions to deliver, not all of them will be evaluated, only those that are marked as such. The rest will be used to track students and monitor the implementation of previous work and attitude of students in class. Especially in laboratory classes will be assessed issues such as student punctuality and positive attitude to the subject.

Evaluation methodology

The mark of the technical competition is based on two components: continous_assessment and non_continous_assessment. The component non_continous_assessment is only for students who did not pass the continous_assessment component.

Grade = max (Continuous_assessment , Non-continous_assessment)

Continuous_assessment= Theory 50% + 40% Lab + 10% lab. follow-up note
THEORY: : Result of 2 partial exams. The first exam (40%) will be at the end of the chapter of memory and the second (60%) at the end of the course and includes all the topics of the course.
LAB:Resulting from 1 laboratory exercise at the end of the course. This exercise is taken outside of time class.
LAB FOLLOW-UP NOTE: to evaluate work done in the laboratory sessions. Resulting from questionaries answered at the end of some of the labs sessions.

Non-continuous_assessent=Theory 50% + 50% Lab
- 50% final exam theory.
- 50% final exam lab.


Evaluation of Generic Competition

In this case, be considered the following points:
 1) proactive (accuracy) in professional development.
* Attendance. Students must attend 80% of the lab sessions. They must make deliveries to all lab sessions but only explicitly marks 2.
* Punctuality. Students must get off to class with a margin of 10 minutes. Be penalized for students who repeatedly arrive late.
* Respect. Students must act with respect toward peers and teachers.
- The teacher will be responsible to detect and record cases of disrespect, either towards himself or towards fellow students. If during the course of this case do not improve the course will get a negative evaluation of the competition.
 2) proactive attitude (motivation) for quality and continuous improvement.
* Quality. We assessed the quality of code delivered taking into account mainly: the fulfillment of the requirements of the statements, the clarity of the code and the organization of the document.
* Motivation and responsibility: In the lab sessions students are asked a previous work to be performed necessarily.
- The previous work related questions that will help identify and penalize students who do not perform these tasks properly. But be evaluated very positively about those students who perform outstanding work.
Grade:
The grade of the generic skill obtained from the values of the information obtained by: Attendance, Punctuality, Respect, Motivation, Quality and Responsibility.

Special cases:
- If one student doesn't attend the 80% of lab sessions, will receive automatically a D in the evaluation
- If one students shows a clear unmotivation for the course, for instance, passing the deadline for the notification to the final exam , will be automatically evaluated with a D

Bibliography

Basic:

Complementary:

Web links

Previous capacities

The student must have the technical capabilities that will confer the subjects studied previously and a minimum level of technical English (to read a documentation). In terms of technical capabilities could be summarized as:
- In terms of structure of computers: Understanding the main elements of a computer, these elements relate to each other, internal representation of data and basic knowledge of machine language.
-In terms of programming: Ability to program from scratch to include definition of data types, design a program more or less complex in different functions (which may be more than one file) and phases of creation an executable.

Addendum

Contents

NO HI HA CANVIS RESPECTE LA INFORMACIÓ PUBLICADA A LA GUIA DOCENT

Teaching methodology

La asignatura se organiza en tres tipos de clase: clases de teoría, clases de laboratorio y clases de problemas. Este cuatrimestre, *para la clases de laboratorio los estudiantes deberán traer su propio portátil* ya que estas clases se harán en aulas de teoría. Para los exámenes también será necesario que traigan su propio portátil. Las prácticas de laboratorio serán individuales.

Evaluation methodology

La nota tiene dos componentes: Evaluación continua (EC) y Examen final (EF). La nota final se calcula con la siguiente fórmula: Nota final = max (0,4 * EC + 0,6 * EF, EF). EC = 0,5 *CT + 0,4 * CL + 0,1 *SL CT: es un parcial de teoría que se hará en horas de clase la semana del 9 de noviembre. Consistirá en un cuestionario de Atenea. CL: es un parcial de laboratorio que se hará fuera de horas de clase. Se tratará de desarrollar códigos sencillos aplicando los conocimientos adquiridos en las sesiones de laboratorio SL: nota de seguimento de laboratorio para evaluar el trabajo hecho en las sesiones. Se basará en cuestionarios de atenea al final de algunas de las sesiones de laboratorio Para optar a la nota de evaluación continua es necesario asistir al menos al 80% de las sesiones (consultar el apartado: pla de contingencia) EF = 0,5 * T + 0,5 * L T: parte de teoría del examen final, en el que se evalúa todo el curso. Consistirá en un cuestionario de Atenea que se hará en horas fuera de clase. L: parte de laboratorio del examen final, en el que se evalúa todo el curso. Se tratará de desarrollar códigos sencillos aplicando los conocimientos adquiridos en las sesiones de laboratorio.

Contingency plan

Si algún estudiante cae enfermo por covid-19, las sesiones que se hagan durante su enfermedad no se le tendrán en cuenta para su cómputo de asistencia a laboratorio. Aunque se recomienda que haga el trabajo involucrado cuando le sea posible. La nota de seguimiento se calculará teniendo en cuenta las sesiones durante las que no haya estado enfermo. Si la enfermedad le coincide con algún parcial, se le aplazará para hacerlo cuando se pueda reincorporar presencialmente. Si algún estudiante no puede asistir a las clases presenciales debido al covid-19 (cuarentena o confinamiento parcial), deberá comunicárselo a su profesor lo antes posible. Se habilitará un meet para que pueda asistir a las clases de laboratorio de manera remota. Deberá seguir asistiendo a los laboratorios (de manera remota) y hacer las entregas al final de las sesiones para cumplir con el 80% mínimo de asistencia necesario. Si coincide con algún acto de evaluación, se fijará una fecha máxima de aplazamiento del examen (dentro del periodo de clases). Si llegada esa fecha no es posible hacer el examen presencialmente se le hará de manera remota. En caso de alarma sanitaria y cancelación de todas las clases presenciales, todas las clases continuarían de manera síncrona y en el horario habitual. Se utilizaría google meet. La asistencia a laboratorio a través del meet y las entregas al final de la sesión siguen siendo necesarias para optar a la nota de evaluación continua (80% de las sesiones). El formato de los exámenes y el método de evaluación no cambiarán. Se harán de la misma manera pero de forma remota.