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

Validation Exercise processors and memory management

After the subjects of processors and memory management, it will be an exercise laboratory scoring mark (continuous assessment)
Objectives: 6 8 10 11
Week: 8 (Outside class hours)
Type: lab exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
2h
Autonomous learning
2h

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: 4 5 6 1 2
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

Validation Exercise: input/output management and filesystems

After the lab sessions dedicated to processes input/output management and file systems, it will be an exercise laboratory scoring mark. (Continuous assessment)
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. 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

Note = max (Continuous evaluation , Not continuous evaluation)
Continuous evaluation= Theory 50% + 50% Lab
THEORY: : Result of 2 controls. The first exam (40%)will be at the end of the chapter of memory and the second (60%) at the end that includes everything.
LAB:Resulting from 2 laboratory exercises at the end of the scoring issues of (processes+ memory) and ( I/O +file systems). These exercises are taken outside of time class and weight 45% each of them. The remaining 10% will correspond to the marks obtained with he Atenea tests
For those students that have not passed the continuous evaluation, it will be able to re-evaluate it with the non continuous evaluation.

To be able to apply to the continous evaluation, the student must assist to a minimum of the 80% of the lab sessions (the whole session, that means 2 hours). Otherwise, it will be evaluated through the not continous evaluation method.


Not continuous evaluation=Theory 50% + 50% Lab
- 50% final exam theory.
- 50% final exam lab.

Evaluation of Generic Competition

In this case, be considered the following points:
At the beginning of the laboratory sessions, students will do one Atenea test to validate the work of the previous week. From theses tests, we will get information about the punctuality, the attendance and the their attitude in front of the course.
 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.
- This information will be obtained from the Atenea tests.
* 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.
* Motivation. Students have to submit additional papers to assess both the attitude and quality of work established in the course.
- This information is obtained from a small study that asked students
* 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.
* Disclaimer. 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 ¿lenses.
NOTE Competition:
The notice of competition 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 minimmum number of sessions in the lab, 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.