Operating Systems

« Return

Objectives

The operating system is the core component of any computer system. Therefore, aim of this course is to provide students with the fundamental concepts that underpin the design of current operating systems. We will study the models of computation offered by operating systems, your organization, primitive operations and elementar programming. Some of these concepts will be consolidated with details of real systems.

Thus, it is intended that the student knows the basic concepts underlying operating systems, with emphasis on their mechanisms and algorithms, as well as the internal structure of the operating systems most relevant. Set at the system level, using all the features of operating systems taking into account the sequential programming models and competitor.

Program

Learning outcomes

1. To understand the fundamental concepts of operating systems.
2. To understand the internal structure and operation of the operating systems.
3. To know how to use the security mechanisms provided by the operating systems.
4. To understand the computing models offered by the operating systems.
5. To know how to use the programming interfaces available in the operating systems.


Syllabus

1. Basic concepts about operating systems
1.1. Structure and functions of an operating system
1.2. Evolution of operating systems
2. Processes and Scheduling
2.1. Processes and Threads
2.2. Scheduling Algorithms
2.3. Synchronization Algorithms
2.4. Communication between Processes and Interlock
3. Memory Management
3.1. Pagination
3.2. Segmentation
3.3. Virtual Memory
4. Storage management
4.1. Organization of a file system.
4.2. Indexing, Directories and Free Space Management
5. Inputs and outputs
5.1. Input and output (I/O) architectures.
5.2. Peripheral management
6. Security architectures and mechanisms
6.1. Isolation (confinement)
6.2. Authentication and authorization
7. The computational model of Linux
7.1. System overview
7.2. Shell Programming
7.3. C Programming


Teaching Methodologies

Lectures

Exposition of concepts and presentation of examples.
Assessments at the end of each chapter.


Laboratory classes

Exploration of the features of the Linux operating system: use of the command line interface; building shell scripts; coding of programs in C.

Using learning management system Moodle, where resources are available and various activities to supplement classroom.


Bibliography

Essential

Abraham Silberschatz, Peter Baer Galvin, Greg Gagne. Operating System Concepts, 9th Edition. John Wiley & Sons. 2012
José Alves Marques, Paulo Ferreira, Carlos Ribeiro, Luís Veiga, Rodrigo Rodrigues. Sistemas Operativos. FCA. 2012.

Complementary

Andrew S. Tanenbaum. Modern Operating Systems, 4th Edition. Pearson. 2014.

Fernando Pereira, Rui Guerreiro. LINUX: Curso Completo. 7ª Edição. FCA. 2015
William Stallings; Operating Systems: Internals and Design Principles, 8th Edition, Prentice Hall, 2014.

Code

0105935

ECTS Credits

6

Classes

  • Práticas e Laboratórios - 30 hours
  • Teóricas - 30 hours