Operating Systems II

Credits
6
Types
Specialization compulsory (Computer Engineering)
Requirements
  • Prerequisite: SO
  • This subject can not be enroled if you passed: SOA
Department
AC
This course offers an insight into the basic operation of an operating system, by implementing various system components, and different metrics for performance evaluation.

Teachers

Person in charge

  • Juan José Costa Prats ( )

Others

  • Alex Pajuelo Gonzalez ( )
  • 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.
  • CT7 - To evaluate and select hardware and software production platforms for executing applications and computer services.
    • CT7.3 - To determine the factors that affect negatively the security and reliability of a hardware/software system, and minimize its effects.

Transversal Competences

Appropiate attitude towards work

  • G8 [Avaluable] - 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.3 - To be motivated for the professional development, to face new challenges and the continuous improvement. To have capacity to work in situations with a lack of information.

Information literacy

  • G6 [Avaluable] - To manage the acquisition, structuring, analysis and visualization of data and information of the field of the informatics engineering, and value in a critical way the results of this management.
    • G6.3 - To plan and use the necessary information for an academic essay (for example, the final project of the grade) using critical reflection about the used information resources. To manage information in a competent, independent and autonomous way. To evaluate the found information and identify its deficiencies.

Technical Competences of each Specialization

Computer engineering specialization

  • CEC2 - To analyse and evaluate computer architectures including parallel and distributed platforms, and develop and optimize software for these platforms.
    • CEC2.1 - To analyse, evaluate, select and configure hardware platforms for the development and execution of computer applications and services.
    • CEC2.2 - To program taking into account the hardware architecture, using assembly language as well as high-level programming languages.
    • CEC2.3 - To develop and analyse software for systems based on microprocessors and its interfaces with users and other devices.
    • CEC2.4 - To design and implement system and communications software.
    • CEC2.5 - To design and implement operating systems.
  • CEC3 - To develop and analyse hardware and software for embedded and/or very low consumption systems.
    • CEC3.1 - To analyse, evaluate and select the most adequate hardware and software platform to support embedded and real-time applications.
    • CEC3.2 - To develop specific processors and embedded systems; to develop and optimize the software of these systems. 
  • CEC4 - To design, deploy, administrate and manage computer networks, and manage the guarantee and security of computer systems.
    • CEC4.1 - To design, deploy, administrate and manage computer networks.
    • CEC4.2 - To demonstrate comprehension, to apply and manage the guarantee and security of computer systems.

Objectives

  1. Knowing how a real OS works, since the computer boots and initializes the operating system, through the dynamic management of resources, till the the computer is shutdown.
    Related competences: CEC2.5, CEC3.2, CT6.3, CEC2.2, CEC2.4,
  2. Details of the implementation of some of the basic components of a real OS: initialization code, memory management code, input/output management code, processes management code and upload of executable files code.
    Related competences: CEC2.1, CEC2.3, CEC2.5, CT6.1, CT6.3, CT7.3, CEC2.2, CEC2.4, CEC4.2,
  3. Understand the mechanism of dynamic insertion of code in a real OS.
    Related competences: CEC2.5, CT6.1, CT6.3, CT7.3, CEC2.4, CEC3.1, CEC4.2,
  4. Be able to implement a device driver and insert it into a real OS.
    Related competences: CEC2.3, CEC2.5, CT6.1, CT6.3, CT7.3, CEC2.2, CEC2.4, CEC3.1,
  5. Know the multithreaded programming, the problem of sharing memory and the mechanisms of mutual exclusion
    Related competences: CEC2.5, CEC3.2, CT7.3, CEC2.4, CEC4.2,
  6. Know some risk factors in the security of an operating system.
    Related competences: CT7.3, CEC2.4, CEC4.2,
  7. Understand the implementation of various security and access policies.
    Related competences: CEC2.5, CT6.3, CT7.3, CEC2.4, CEC4.2,
  8. Be able to implement some of the basic components of a real OS: initialization code, memory management code, input / output management code , process management code and load executable files code.
    Related competences: CEC2.3, CEC2.5, CEC3.2, CT6.1, CT6.3, CT7.3, CEC2.2, CEC2.4,
  9. Developing system software for a specific architecture such as Intel x86. Using C and assembler.
    Related competences: CEC2.1, CEC2.3, CEC2.5, CEC3.2, CT6.1, CT6.3, CEC2.2, CEC2.4,
  10. Select the most appropriate settings of an operating system depending on the platform to use
    Related competences: CEC3.2, CT6.1, CT7.3, CEC3.1, CEC4.2,
  11. Find, organize and summarize relevant and quality information on an unknown topic. Write documents with a critical thinking on the main ideas of this topic.
    Related competences: G6.3,
  12. Describe the basic concepts of OS view of computer networks.
    Related competences: CEC2.5, CEC4.1, CT6.3, CEC2.4,
  13. To have a proactive attitude to quality and continuous improvement
    Related competences: G8.3,
    Subcompetences:
    • Be able to produce quality code that meets the requirements set, that is clear and well-organized.
    • Be able to assess the quality of a code using rubrics
  14. Be able to adapt to situations of time constraints and / or resources and / or lack of information
    Related competences: G8.3,
    Subcompetences:
    • Be able to perform work from statements with lack of information.

Contents

  1. System boot
    This chapter will explain all the actions carried out to start all the operating system services. We also describe and discuss possible implementations of this process in the current operating system.
  2. Mechanisms to enter the system
    Describes and discusses the possible implementation of the mechanisms to enter the system along with its hardware support. Important aspects of these mechanisms and dependencies between the operating system and hardware will be detailed. We discuss the benefits of implementing virtualization techniques today. Presents and discusses the various implementations of operating systems today.
  3. Memory Management
    This chapter covers the following topics: The logical address space of the process. Page-based memory systems and their hardware support. Design and implementation of virtual memory. Replacement algorithms for virtual memory. Implementation of shared memory. Different memory systems design and implementation in modern operating systems and their hardware dependencies.
  4. Process Management
    This chapter covers the following topics: Detailed Implementation of the process control block. Implementation details for the process of creating processes. Implementation details for the process of finishing processes. Implementation details for the process of loading executables. Implementation details of context switching between processes. Detailed Description of the structures and algorithms for process scheduling. Implementation details of the processes scheduling routines. Description and discussion of various implementations of process scheduling in modern operating systems.
  5. Extending the system kernel
    This chapter covers the following topics: Concept, design and implementation of kernel modules of the OS. Loading kernel modules at system initialization time and run time. Description of access to features implemented in kernel modules. Understanding the relationship between kernel modules and physical and logical devices.
  6. Input / output Management and file systems
    This chapter covers the following topics: Description and implementation of the OS part independent and dependent of the device. Implementation of a device descriptor. Description, features and implementation of the I/O structures and file systems. Description and implementation of the logical structure of file systems on disk. Communication mechanisms between processes via file systems. Communication mechanisms between processes across the network. Description and implementation of various file systems today.
  7. Shared Memory
    This chapter covers the following topics: Problems with shared memory between multiple threads of execution within a process. Race conditions. Areas of mutual exclusion. Description and implementation of mechanisms for mutual exclusion in accessing shared memory, in particular, test and set, mutex and semaphores. Description, discussion and implementation of mechanisms for mutual exclusion in modern operating systems.

Activities

Activity Evaluation act


Become familiar with the workplace

Acquiring the knowledge necessary to develop the laboratory.
Objectives: 1 2 8 9
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
2h

Interrupt Service Routine

Develop an ISR for the clock interrupt
Objectives: 1 2 8 9 13 14
Contents:
Theory
2h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
4h

Creating an entry point into the system

Creating a new entry point into the system to use system services
Objectives: 1 2 6 8 9 13 14
Contents:
Theory
2h
Problems
0h
Laboratory
1h
Guided learning
0h
Autonomous learning
4h

Memory management

It describes the main algorithms and implementation of virtual memory.
Objectives: 1 2 6 7 8 9
Contents:
Theory
4h
Problems
0h
Laboratory
3h
Guided learning
0h
Autonomous learning
8h

Process Management

Develop the basic structures of process management, as well as features to identify, create and destroy processes
Objectives: 1 2 6 8 9 10 13 14
Contents:
Theory
6h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
8h

First Control

First part of the course
Objectives: 1 2 6 8 9
Week: 8
Type: theory exam
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h

First Lab Exam

First Lab Exam
Objectives: 1 2 6 7 8 9 12
Week: 8
Type: lab exam
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
6h

Process scheduling

Implementing the change of context and a simple planner based on quantum
Objectives: 2 6 8 9 13 14
Contents:
Theory
0h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
6h

Kernel extension

We describe the mechanisms used to extend the kernel of an operating system
Objectives: 1 2 3 4 6 9 10
Contents:
Theory
1h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h

Management I / O and file systems

Develop some of the mechanisms of input / output file system of an operating system
Objectives: 1 2 6 7 8 9 10 12 13 14
Contents:
Theory
5h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
7h

Interprocess communication

Implementation of semaphores
Objectives: 1 2 5 6 8 9 13 14
Contents:
Theory
2h
Problems
0h
Laboratory
1h
Guided learning
0h
Autonomous learning
7h

Network

Mount a small network with a specialized service
Objectives: 6 7 10 11 12
Theory
1h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h

Second Control

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

Project

Delivery of the programming project code and documentation.
Objectives: 1 2 3 4 5 6 7 8 9 10 12
Week: 14
Type: assigment
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h

Final Theory Exam

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

Final lab exam


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

Teaching methodology

The course will have mainly two types of class: theory and laboratories. The theory classes explain the concepts, designs and implementing various components of current operating systems. These classes will be supported by slides.

Laboratory classes will be weekly. During the lab you will design and implement an operating system called Zeos. This project will be done in groups of two people.

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 CTc grade is evaluates the theory (T) and laboratory (L) components. 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, an exam (L1), a follow up grade (S) and a project (P) is used, with the following weights:

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) corresponds to the design, follow up and final implementation of the 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.

Bibliography

Basic:

Complementary:

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.