Operating Systems

Base Knowledge

Although there is no defined precedences, the student should have basic knowledge in several areas, namely algorithms and programming, computer architecture and mathematical logic, problem interpretation, algorithmic modelling and representation (at least procedural/structured) of problem solutions.

Teaching Methodologies

Classes are taught in a theoretical-practical regime, using computers and digital tools. A dynamic teaching and learning process will be used, fundamentally interactive, with support for digital tools and based on the “Scrum” and “Flipped Classroom” methodologies (type of “Blended learning”), student-centred, provision of teaching materials in advance, development of activities and classes almost entirely aimed at applying the concepts.

 

Learning Results

Study of operating systems, including their organization, services provided and their programming. More specifically, process management, communication between processes, deadlock situations, process scheduling, memory management, file systems, input and output management and protection and security. Introduction to Shell script programming and cooperative multitasking programming.

Acquisition of fundamental knowledge used in the design of modern operating systems.

Identification of potential risk events inherent to concurrent programming and use of appropriate control mechanisms.

Acquisition of practical knowledge about Linux-based operating systems and ability to use the main services provided by the operating system for application development, covering cooperative multitasking programming.

Acquisition of programming knowledge in Shell Script.

 

 

Program

1. Functions of an Operating System
2. Operating Systems Structure
3. Processes and Threads
            3.1 CPU Scheduling
            3.2 Concurrent Programming
            3.3 Interprocess Communication and Synchronization
            3.4 Deadlocks
4. Memory Management
            4.1 Main memory
            4.2 Virtual memory

5. Storage Management
            5.1 Mass-Storage Structure
            5.2 I/O
            5.3 File System
6.
Security and Protection
7. Distributed Systems and Virtualization

Curricular Unit Teachers

Internship(s)

NAO

Bibliography

1. A. Silberschatz, G. Gagne, and P. B. Galvin (April 2018) “Operating System Concepts”, 10th Ed., John Wiley & Sons, Inc., ISBN: 978-1119320913

2. W. Stallings (2018) “Operating Systems: internals and design principles”, 9th Ed., Pearson ISBN-13: 978-0134670959

3. K. A. Robbins, S. Robbins (2015) “UNIX SYSTEMS Programming: Communication, Concurrency, and Threads”, 2nd Ed., Pearson ISBN-13: 978-0134424071

4. R. Love (2013) “Linux System Programming”, 2nd Ed., O’Reilly & Media Inc. ISBN: 978-1449339531

5. Pedro Costa (2023) “Apontamentos Teóricos e Práticos de Sistemas Operativos”, Coimbra Business School | ISCAC, Polytechnic of Coimbra.