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 2022/2023. 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 assessment process is based on the student's personal work and presupposes authenticity of authorship and originality of the exercises completed.

Lack of authenticity of authorship or originality of assessment tests, copying or plagiarism, the fraudulent attempt to obtain a better academic result, collusion to copy or concealing or abetting copying, use of unauthorized material or devices during assessment, inter alia, are offences that may lead to serious academic or other sanctions.

Firstly, you will fail the course (D/0) if you commit any of these offences when completing activities defined as assessable in the course plan, including the final tests. Offences considered to be misconduct include, among others, the use of unauthorized material or devices during the tests, such as social media or internet search engines, or the copying of text from external sources (internet, class notes, books, articles, other students' essays or tests, etc.) without including the corresponding reference.

And secondly, the UOC's academic regulations state that any misconduct during assessment, in addition to leading to the student failing the course, may also lead to disciplinary procedures and sanctions.

The UOC reserves the right to request that students identify themselves and/or provide evidence of the authorship of their work, throughout the assessment process, and by the means the UOC specifies (synchronous or asynchronous). For this purpose, the UOC may require students to use a microphone, webcam or other devices during the assessment process, and to make sure that they are working correctly.

The checking of students' knowledge to verify authorship of their work will under no circumstances constitute a second assessment.


This course can only be passed by taking a final exam (EX), whose mark is combined with the final mark of the compulsory practical (Pr). If the final practical mark is different from N (absent), the course mark will be different from N (absent). The continuous assessment mark (CA) complements the combined mark of the final exam (EX) and the practical (Pr). The formula for accrediting the course is as follows: (EX + Pr) + CA.