XSL Content

Introduction to Operating Systems26022

Centre
Faculty of Informatics
Degree
Bachelor's Degree in Informatics Engineering
Academic course
2023/24
Academic year
2
No. of credits
6
Languages
Spanish
Basque
Code
26022

TeachingToggle Navigation

Distribution of hours by type of teaching
Study typeHours of face-to-face teachingHours of non classroom-based work by the student
Lecture-based4050
Applied laboratory-based groups2040

Teaching guideToggle Navigation

Description and Contextualization of the SubjectToggle Navigation

The subject "Introduction to Operating Systems" focuses on the functional description of operating systems, through its system calls interface, which presents it to the (systems) programmer as a virtual machine that largely hides the complexity of the underlying hardware. This training is complemented by other subjects in the Computer Engineering specialty of the Degree in Informaics Engineering: "Operating Systems" focuses on fundamental techniques and models in the design of operating systems, aimed at managing the different system resources, in order to understand the need for compromises in the design and configuration of the operating system; "Administration of Systems and Networks" focuses on presenting and developing the main aspects associated with the administration of computer systems, in an approach oriented towards the functions of the administrator and also regarding the user who makes use of this type of system; finally "Design of Operating Systems and Real Time", which is currently not taught, deals with the implementation of the system.



The skills and knowledge acquired in this course prepare students to work in system software/application development, code library design, and high-level programs that interact with the operating system. These skills can also be valuable in software design, development, and maintenance, and in understanding best practices and techniques for producing high-quality software. It gives the option to work in the field of software development for embedded systems, such as medical devices, automotive and consumer electronics. Finally, it is worth to say that this subject is the base of other advanced subjects in operating systems through which students can prepare to work in computer security and software development of operating systems.



The subject "Introduction to Operating Systems" is a compulsory subject included in the curriculum of the Degree in Informatics Engineering and is taught in the second year. For the good use of this subject, it is highly recommended to have passed "Computer Structure" and "Basic Programming", both taught in first year.

Skills/Learning outcomes of the subjectToggle Navigation

At the end of the course, the students should be able to:

- Know the characteristics of the different types of operating systems such as time-sharing systems, distributed systems, real time, etc.

- Identify the interfaces provided by an operating system

- Develop Linux utilities for applications from its system call interface

- Manage the fundamental concepts of operating systems (files, access protection, processes, threads, communication and synchronization elements)

- Manage the functionality of its components (manage the process, memory, and input-output subsystems)



Other important aspects that are going to be promoted are the ability to find the information and tools necessary to solve the problems that arise, and the ability to accurately describe the functionality of the developed utilities, so that they can be used by other users or developers.

Theoretical and practical contentToggle Navigation

Unit 1: Introduction

- Functional vision of an Operating System (OS)

- Functions and Interfaces of an OS

- Types of OSs according to their functionality (Evolution and Classification)

- Current market for OSs

- Lab: Basic Shell Tasks as User and Administration Interface



Unit 2: System call mechanism

- Operating Sytem's Support architecture (I/O)

- I/O routine call mechanism

- Resident routines

- OS access mechanism: system calls



Unit 3: Input-output and files

- Introduction to the concepts of Device Independence and redirection

- Operation modes on devices and files

- Organization of the file system. Namespaces, directories

- I/O “Buffering”: libraries functions vs. system calls

- Advanced access to device properties

- System calls for I/O and C standard library functions

- Exercises on I/O and lab work



Unit 4: User management and security

- Multi-user systems

- Protection mechanisms

- Security-related system calls

- Exercises on user management and securiry and lab work



Unit 5: Memory management

- Loading and placement of programs in systems with one or more programs in memory

- Support for virtual memory systems: physical and virtual addressing

- Static and dynamic relocation. Reentrant code

- Static and Dynamic link libraries

- Calls to the operating system related to program loading and memory management

- Compilation practices, memory management, static and dynamic link libraries, and program loading



Unit 6: Process control

- Concept of execution flow and context. Context switching

- Multiprogrammed and multithreaded systems

- Concept of process (Unix model), states and transition graph

- Processes' scheduling and basic scheduling policies

- System calls and library functions related to process and thread control

- Practical work: process execution in background from the Shell, process monitoring, simple and multprogrammed shell, multithreaded examples



Unit 7: Communication and synchronization between processes and threads

- Concepts of concurrency, shared resource, race condition and exclusive access

- Critical sections of code. Basic mechanisms for exclusive access to critical sections

- Communication with message passing through mailboxes. Communication and synchronization via threads

- System calls related to communication and synchronization between processes and threads

- Resource management model based on the client-server scheme. Examples of resource managers (drivers)

- Practical work: communication and synchronization between processes (using pipes) and threads

MethodologyToggle Navigation

This course is based on the functional vision of operating systems and the application programming interface (API). Therefore, although always based on the theoretical concepts that support it, it will have a large practical component. For this, various teaching methodologies will be used, from master classes to more active methodologies such as PBL (Project Based Learning) or pBL (Problem Based Learning) and laboratory activities.

Assessment systemsToggle Navigation

  • Continuous Assessment System
  • Final Assessment System
  • Tools and qualification percentages:
    • The percentages and types of evaluation are specified in the following sections. (%): 100

Ordinary Call: Orientations and DisclaimerToggle Navigation

CONTINUOUS ASSESSMENT



The evaluation systems that are contemplated are the continuous evaluation system and the final evaluation system. The continuous assessment system is the one that will be used preferably, as indicated in the current regulations of the UPV/EHU. The student who, fulfilling the conditions to continue in the continuous evaluation system, decides to opt for the final evaluation, must inform the teacher(s) within the terms and manner indicated below: via eGela, through the corresponding link in the evaluation section, at the latest two days after knowing the results of the second partial exam.



The continuous evaluation mode is based on the following three evaluation tests:

- Individual evaluation questionnaires: 60%

- Practical Works: report with the developed code, specifications, verification results of the practice proposals and interview: 30%

- (Others) Specific individual assessment questionnaires on the work carried out: 10%



To pass the subject it is necessary that the student:

- Completes and submits all assessment tests

- Gets at least 40% of the evaluation of each of the tests

- The final average mark with all the evaluation tests is at least 5 out of 10



FINAL EVALUATION



For those who do not follow the continuous evaluation, the following evaluation mechanism is foreseen:

- Final individual written test (theoretical questions, practical exercises, code analysis, design/programming of utilities...): 80%

- The realization and delivery of a practical work and an interview about it: 20%



To pass the subject it is necessary that each student:

- Completes and submits all assessment tests

- Gets at least 40% of the evaluation of each of the tests

- The final average grade with all the tests is at least 5 out of 10

Extraordinary Call: Orientations and DisclaimerToggle Navigation

In the extraordinary call evaluation will be similar to the final evaluation of the ordinary call:

- Final individual written test (theoretical questions, practical exercises, code analysis, design/programming of utilities...): 80%

- The realization and delivery of a practical work and an interview about it: 20%



To pass the subject it is necessary that each student:

- Completes and submits all assessment tests

- Gets at least 40% of the evaluation of each of the tests

- The final average grade with all the tests is at least 5 out of 10

Compulsory materialsToggle Navigation

Subject eGela online classroom, Linux operating system (there will be access to Linux through a server), manuals, tools and C programs that will be provided through eGela (Moodle service from UPV/EHU).

BibliographyToggle Navigation

Basic bibliography

Remzi H. & Andrea C. Arpaci-Dusseau:

Operating Systems: Three Easy Pieces - http://pages.cs.wisc.edu/~remzi/OSTEP/



Abraham Silberschatz, Peter B. Galvin, Greg Gagne:

Operating System Concepts (Tenth edition), John Wiley & Sons, 2018.



Francisco Manuel Márquez García:

UNIX. Programación Avanzada 3a Edición. Rama, 2004.



BrianW. Kernighan, Rob Pike:

The Unix Programming Environment, Prentice-Hall, 1984.

In-depth bibliography

Andrew S. Tanenbaum:
Modern Operating Systems (4th Edition), Prentice-Hall, 2014.

Mark Rochkind:
Advanced Unix Programming, Addison-Wesley, 2004.

William Stallings:
Operating Systems: Internals and Design Principles (Eighth edition), Prentice Hall, 2014.

Web addresses

www.linux.org: forums, tutorials and many other stuff about Linux

www.gnu.org: all about the gnu operating system

www.die.net: the Linux manual online

Examining board of the 5th, 6th and exceptional callToggle Navigation

  • ALVAREZ BALBAS, GONZALO
  • CORTIÑAS RODRIGUEZ, ROBERTO
  • LARREA ALAVA, MIKEL

GroupsToggle Navigation

01 Teórico (Spanish - Mañana)Show/hide subpages

Calendar
WeeksMondayTuesdayWednesdayThursdayFriday
16-30

10:30-12:00 (1)

09:00-10:30 (2)

Teaching staff

01 Applied laboratory-based groups-3 (Spanish - Mañana)Show/hide subpages

Calendar
WeeksMondayTuesdayWednesdayThursdayFriday
16-30

14:00-15:30 (1)

Teaching staff

01 Applied laboratory-based groups-1 (Spanish - Mañana)Show/hide subpages

Calendar
WeeksMondayTuesdayWednesdayThursdayFriday
16-30

12:00-13:30 (1)

Teaching staff

01 Applied laboratory-based groups-2 (Spanish - Mañana)Show/hide subpages

Calendar
WeeksMondayTuesdayWednesdayThursdayFriday
16-30

12:00-13:30 (1)

Teaching staff

46 Teórico (Basque - Tarde)Show/hide subpages

Calendar
WeeksMondayTuesdayWednesdayThursdayFriday
16-30

15:30-17:00 (1)

14:00-15:30 (2)

Teaching staff

46 Applied laboratory-based groups-1 (Basque - Tarde)Show/hide subpages

Calendar
WeeksMondayTuesdayWednesdayThursdayFriday
16-30

17:00-18:30 (1)

Teaching staff

46 Applied laboratory-based groups-2 (Basque - Tarde)Show/hide subpages

Calendar
WeeksMondayTuesdayWednesdayThursdayFriday
16-30

17:00-18:30 (1)

Teaching staff

46 Applied laboratory-based groups-3 (Basque - Tarde)Show/hide subpages

Calendar
WeeksMondayTuesdayWednesdayThursdayFriday
16-30

12:00-13:30 (1)

Teaching staff