Teaching Methodologies
Classes are taught on a theoretical-practical basis, using computers and digital tools, in a dynamic teaching-learning process, fundamentally interactive and appealing to the development of the student’s critical sense.
A “Blended learning” model will be used, centered on the student, based on the development of activities and with classes entirely dedicated to the application of concepts.
Learning Results
Goals:
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.
Learning Outcomes:
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, including cooperative multitasking programming.
Acquisition of programming knowledge in Shell Script.
Program
1. Introduction to Operating Systems
1.1 Concept of Operating System
1.2 Historical evolution of OS
1.3 Characteristics and key concepts of today’s operating systems
1.4 Structure of Operating Systems
2. Processes and Threads
2.1 CPU Scheduling
2.2 Concurrent Programming
2.3 Interprocess Communication and Synchronization
3. Deadlocks
3.1 Acquisition of resources
3.2 Introduction to deadlocks
3.3 Detecting and recovering from deadlocks
3.4 Deadlock prevention
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, Virtualization and Cloud
Internship(s)
NAO
Bibliography
1. A. Silberschatz, P. B. Galvin, and G. Gagne (2021) “Operating System Concepts”, 10th Ed., John Wiley & Sons, Inc., ISBN: 9781119320913
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 ISBN13: 978-0134424071
4. R. Love (2013) “Linux System Programming”, 2nd Ed., O’Reilly & Media Inc. ISBN: 978-1449339531
5. Pedro Costa (2024) “Apontamentos Teóricos e Práticos de Sistemas Operativos”, Coimbra Business School | ISCAC, Polytechnic ofCoimbra.