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.
Person in charge
Alex Pajuelo Gonzalez (
Juan Jose Costa Prats (
Yolanda Becerra Fontal (
Common technical competencies
CT6 - To demonstrate knowledge and comprehension about the internal operation of a computer and about the operation of communications between computers.
- To demonstrate knowledge and capacity to manage and maintain computer systems, services and applications.
- 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.
- 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.
- To demonstrate knowledge about metrics of quality and be able to use them.
- 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.
- 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.
- 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.
- To design communications software.
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.
- To understand and use effectively handbooks, products specifications and other technical information written in English.
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.
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.
Describe the procedure to extend, dynamically, the kernel of a real OS
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.
Know the multithreading programming paradigm, the problem of sharing memory and the implementation of mechanisms for mutual exclusion with the required hardware support.
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.
Compare and evaluate different alternatives for implementing resource management code using metrics of cost, efficiency and quality
Design the communication services for multiprocess and/or multithreaded applications.
Use and understand technical documents in English provided with the operating system.
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.
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.
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.
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.
Familiarisation with the framework
Acquire the knowledge to develop the laboratory. Objectives:126
Develop a RSI
Develop a RSI for the internal clock Objectives:12610 Contents:
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.
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 = 40% T + 60% 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 = 30% L1+ 20% 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.
Windows internals: part 1: system architecture, processes, threads, memory management, and mor -
Yosifovich, P.; Ionescu, A.; Russinovich, M.E.; Solomon, D.A, Microsoft Press ,
ISBN: 9780735684188 http://cataleg.upc.edu/record=b1521912~S1*cat
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.
NO HI HA CANVIS RESPECTE LA INFORMACIÓ PUBLICADA A LA GUIA DOCENT
L'assignatura serà 100% no presencial. Les classes de teoria i laboratori es faran via Google Meet, convocada previament al Racó de la FIB. Eventualment, es podríen fer algunes sessions presencials i sempre seran convocades amb temps suficient a l'estudiantat.
Totes les proves avaluatives que formen part de l'avaluació continuada, seran no presencials i es convocaran amb temps suficient als estudiants junt amb les seves normes.
NO HI HA CANVIS RESPECTE LA INFORMACIÓ PUBLICADA A LA GUIA DOCENT
Where we are
B6 Building Campus Nord
C/Jordi Girona Salgado,1-3
08034 BARCELONA Spain
Tel: (+34) 93 401 70 00