Operating Systems Code:  22.623    :  6
View general information   Description   The subject within the syllabus as a whole   Prior knowledge   Learning objectives and results   Content   View the UOC learning resources used in the subject   Additional information on support tools and learning resources   Guidelines on assessment at the UOC   View the assessment model  
This is the course plan for the second semester of the academic year 2023/2024. To check whether the course is being run this semester, go to the Virtual Campus section More UOC / The University / Programmes of study section on Campus. Once teaching starts, you'll be able to find it in the classroom. The course plan may be subject to change.

In this subject, students learn the services and utilities offered by operating systems, as well as about the management of the resources they offer. 

The objective of Operating Systems is to encompass the following concepts: command line interpreter, system calls, security, system libraries, dynamic libraries, processing, multiprocessing, concurrence, mutual exclusion, threads, process scheduling, input/output device descriptors, communication between processes (pipes, signals, semaphores), file systems and basic concepts of shared and virtual memory. Thus, students must be familiar with the basic characteristics of the implementations of these concepts in Linux and C programming environment.


This course must be achieved after the previous programming subjects of the Bachelor, because it has a strong programming component.


The established prerequisite for this course is: the programming C language and preferably to know how to perform dynamic memory (pointers) in this environment.


Specific Bachelor Computer Engineering

•    Competence to evaluate technological solutions and write project proposals
      taking into account the available resources, the alternatives and the market
•    Competence to analyze a problem at the appropriate level of abstraction and
      apply the skills and knowledge gained in the degree to solve it.
•    Competence to identify the structural elements and the working principles of a
•    Competence to manage the operating systems and the communication
      infrastructure of a computer network.
•    Competence to design and build computer applications by using development,
      integration and reusability techniques.
•    Competence to propose and evaluate different technological alternatives to solve a
       particular problem.

Subject competences

•    Learn the services provided by an OS from user, programmer, and system administrator viewpoints.
•    Learn how to use the various systems for interacting with the OS (commands, scripts, libraries, system calls, etc.) and their implementation.
•    Learn how to describe the requisites of a file system and the services it should offer. Learn the various implementation methods in current systems (partitions, FAT, i-nodes, NTFS, RAID).
•    Learn the input/output operations that an OS should provide to programmers. Ability to describe device concepts and needs, and management and implementation of devices (partly dependent and partly independent, device descriptors, etc.).
•    Learn the concepts of processing, multi-processing, shared time, concurrence, and threads. Learn the problems that can arise from the use of processes and threads, and ways of solving them. Learn to manage processes and threads. Learn how to describe implementation of these concepts on current systems.
•    Learn about synchronisation and communication mechanisms between processes/threads (such as pipes, named pipes, shared memory, traffic lights, etc.) and how to use them.
•    Learn how to describe and manage events and exceptions. Implementations.
•    Learn how to describe the most basic concepts regarding operating systems and computer networks. Learn how to use sockets. Link OS and network concepts.
•    Learn the memory management mechanisms used by current operating systems in order to describe the concepts underlying paging, virtual memory, memory swapping, etc.
•    Learn how to describe the basic security and protection problems. Learn the mechanisms for implementing security and protection in current systems.
•    Learn the basic notions regarding OS performance and optimization techniques.
•    Use and application of Information and Communication Technologies (ICT) in academic and professional environments.
•    Ability to adapt to future technologies and environments by updating their
      professional competences.
•    Ability to innovate and generate new ideas.

Any professional practice related with the bachelor will need the knowledge related to hardware. Therefore, the additional objective of the course is to learn necessary concepts to understand what a computer is taking into account its management through the main components of the operating system and to be able to develop any professional activity using it.


The learning units are the following:

•    Unit 1: Introduction  to the Operating Systems (OS)
o    Section 1.  Definitions of OS
o    Section 2.  Historical view of the OS
o    Section 3.  Description of what services an OS must offer

•    Unit 2:  The OS: a virtual machine (VM)
o    Section 1. Software of the system and virtual  machines
o    Section 2. Input mechanisms to the OS
o    Section 3. Hardware support
o    Section 4. Introduction to the scheduling of the processor
•     Unit 3:  Memory management
o    Section 1. Dynamic translation
o    Section 2. Virtual memory
o    Section 3. Programming errors (memory access)
•    Unit 4:  Input/output
o    Section 1. Input/output concept
o    Section 2. Input/output devices concept
o    Section 3. Features of input/output devices
o    Section 4. Physical, logical and virtual devices
o    Section 5. Optimization of input/output
o    Section 6. Some examples
•    Unit 5: Files system (FS)
o    Section 1. Definition of FS
o    Section 2. Directories
o    Section 3. Protection
o    Section 4. Some examples of FS and protection

•    Unit 6: Processes
o    Section 1. Process life-cycle
o    Section 2. Basic structures for implementing processes
o    Section 3. Execution stream
o    Section 4. Pthreads

•    Unit 7: Communication and synchronization
o    Section 1. Need for communication  and synchronization
o    Section 2. Shared resources
o    Section 3. Not shared memory
o    Section 4. Deadlock



The material of the course will remain available in electronic format. A couple of electronic books and guidelines will lead the course.

The student can find the operating system GNU/Linux to install within the Virtual classroom. A link will be available to install GNU/Linux.

Guidelines' Shell and calls system can be found in the space of Resources of the Virtual Classroom.

The student will have access to an other classroom called OS Laboratories. In this space the student can ask doubts about programming, concret sentences as system calls, difficulties with the Linux environment, and so on.


The assessment process is based on students' own work and the assumption that this work is original and has been carried out by them.

In assessment activities, the following irregular behaviours, among others, may have serious academic and disciplinary consequences: someone else being involved in carrying out the student's assessment test or activity, or the work being not entirely original; copying another's work or committing plagiarism; attempting to cheat to obtain better academic results; collaborating in, covering up or encouraging copying; or using unauthorized material, software or devices during assessment.

If students are caught engaging in any of these irregular behaviours, they may receive a fail mark (D/0) for the assessable activities set out in the course plan (including the final tests) or in the final mark for the course. This could be because they have used unauthorized materials, software or devices (e.g. social networking sites or internet search engines) during the tests, because they have copied text fragments from an external source (internet, notes, books, articles, other student's projects or activities, etc.) without correctly citing the source, or because they have engaged in any other irregular conduct.

In accordance with the UOC's academic regulations , irregular conduct during assessment, besides leading to a failing mark for the course, may be grounds for disciplinary proceedings and, where appropriate, the corresponding punishment, as established in the UOC's coexistence regulations.

In its assessment process, the UOC reserves the right to:

  • Ask the student to provide proof of their identity, as established in the university's academic regulations.
  • Request that students provide evidence of the authorship of their work, throughout the assessment process, both in continuous and final assessment, by means of an oral test or by whatever other synchronous or asynchronous means the UOC specifies. These means will check students' knowledge and competencies to verify authorship of their work, and under no circumstances will they constitute a second assessment. If it is not possible to guarantee the student's authorship, they will receive a D grade in the case of continuous assessment or a Fail in the case of final assessment.

    For this purpose, the UOC may require that students use a microphone, webcam or other devices during the assessment process, in which case it will be the student's responsibility to check that such devices are working correctly.


You can only pass the course if you participate in and pass the continuous assessment. Your final mark for the course will be the mark you received in the continuous assessment.