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.


Assessment at the UOC is, in general, online, structured around the continuous assessment activities, the final assessment tests and exams, and the programme's final project.

Assessment activities and tests can be written texts and/or video recordings, use random questions, and synchronous or asynchronous oral tests, etc., as decided by each teaching team. The final project marks the end of the learning process and consists of an original and tutored piece of work to demonstrate that students have acquired the competencies worked on during the programme.

To verify students' identity and authorship in the assessment tests, the UOC reserves the right to use identity recognition and plagiarism detection systems. For these purposes, the UOC may make video recordings or use supervision methods or techniques while students carry out any of their academic activities.

The UOC may also require students to use electronic devices (microphones, webcams or other tools) or specific software during assessments. It is the student's responsibility to ensure that these devices work properly.

The assessment process is based on students' individual efforts, and the assumption that the student is the author of the work submitted for academic activities and that this work is original. The UOC's website on academic integrity and plagiarism has more information on this.

Submitting work that is not one's own or not original for assessment tests; copying or plagiarism; impersonation; accepting or obtaining any assignments, whether for compensation or otherwise; collaboration, cover-up or encouragement to copy; and using materials, software or devices not authorized in the course plan or instructions for the activity, including artificial intelligence and machine translation, among others, are examples of misconduct in assessments that may have serious academic and disciplinary consequences.

If students are found to be engaging in any such misconduct, they may receive a Fail (D/0) for the graded activities in the course plan (including final tests) or for the final grade for the course. This could be because they have used unauthorized materials, software or devices (such as artificial intelligence when it is not permitted, social media or internet search engines) during the tests; copied fragments of text from an external source (the internet, notes, books, articles, other students' work or tests, etc.) without the corresponding citation; purchased or sold assignments, or undertaken any other form of misconduct.

Likewise and in accordance with the UOC's academic regulations, misconduct during assessment may also be grounds for disciplinary proceedings and, where appropriate, the corresponding disciplinary measures, as established in the regulations governing the UOC community (Normativa de convivència).

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

  • Ask students to provide proof of their identity as established in the UOC's academic regulations.
  • Ask students to prove the authorship of their work throughout the assessment process, in both continuous and final assessments, through a synchronous oral interview, of which a video recording or any other type of recording established by the UOC may be made. These methods seek to ensure verification of the student's identity, and their knowledge and competencies. If it is not possible to ensure the student's authorship, they may receive a D grade in the case of continuous assessment or a Fail grade in the case of the final assessment.

Artificial intelligence in assessments

The UOC understands the value and potential of artificial intelligence (AI) in education, but it also understands the risks involved if it is not used ethically, critically and responsibly. So, in each assessment activity, students will be told which AI tools and resources can be used and under what conditions. In turn, students must agree to follow the guidelines set by the UOC when it comes to completing the assessment activities and citing the tools used. Specifically, they must identify any texts or images generated by AI systems and they must not present them as their own work.

In terms of using AI, or not, to complete an activity, the instructions for assessment activities indicate the restrictions on the use of these tools. Bear in mind that using them inappropriately, such as using them in activities where they are not allowed or not citing them in activities where they are, may be considered misconduct. If in doubt, we recommend getting in touch with the course instructor and asking them before you submit your work.


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.