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 José Costa Prats (
)
Yolanda Becerra Fontal (
)
Weekly hours
Theory
2
Problems
0
Laboratory
2
Guided learning
0
Autonomous learning
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 [Avaluable] - 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
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,
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,
Describe the procedure to extend, dynamically, the kernel of a real OS
Related competences:
CT6.1,
CT6.3,
CT8.7,
CTI1.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,
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,
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,
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,
Design the communication services for multiprocess and/or multithreaded applications.
Related competences:
CTI3.4,
CT6.4,
CT7.2,
CT8.7,
CTI1.4,
Use and understand technical documents in English provided with the operating system.
Related competences:
G3.1,
CT6.3,
Use version control software.
Related competences:
CT6.1,
CT6.3,
CT8.7,
Contents
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.
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.
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.
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.
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.
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.
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
ActivityEvaluation act
Familiarisation with the framework
Acquire the knowledge to develop the laboratory. Objectives:126
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
4h
Develop a RSI
Develop a RSI for the internal clock Objectives:12610 Contents:
Development of multiprocess and multithreaded applications, with information sharing, and evaluation of their performance Objectives:125678910 Contents:
Objectives:12345678910 Week:
15 (Outside class hours)
Theory
3h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h
Final lab exam
Objectives:25678910 Week:
15 (Outside class hours)
Theory
0h
Problems
0h
Laboratory
3h
Guided learning
0h
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 design, implement and evaluate new operating system features.
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, one assessment (L1), a follow up grade (S) and a project (P) are used:
L = 40% L1+ 10% S + 50% P
The follow up grade (S) is assigned by the teacher as an evaluation of the right progress throughout the laboratory.
The project grade (P) is obtained with the design, follow up and implementation of the final project.
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.
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.