Operating Systems 2
| dc.contributor.author | Benaboud, Rohallah | |
| dc.date.accessioned | 2026-05-24T20:15:20Z | |
| dc.date.available | 2026-05-24T20:15:20Z | |
| dc.date.issued | 2026 | |
| dc.description.abstract | This course is an advanced study of operating system principles, intended for students who have a foundational understanding of the subject. It addresses the critical and complex challenges related to the management of concurrent processes and the resources they share. The main objective is to produce course support that is both rigorous and clear, ensuring a deep and unambiguous understanding of the concepts covered. The goal is to facilitate mastery of the principles of concurrency and to gather the necessary knowledge for designing and implementing robust, efficient, and correct multi-process and multi-threaded software. It should be noted that certain prerequisites are necessary to fully grasp the concepts presented. A foundational understanding of operating systems (process and memory management basics), as well as computer architecture, is assumed. Furthermore, strong programming skills, particularly in the C language, are required to understand and implement the practical examples. This course is organized into four main chapters: First, Chapter 1 provides a review of fundamental operating system concepts. It re-establishes the role and architecture of an OS and provides a detailed examination of the two core units of execution: processes and threads. This chapter covers their structure, lifecycle, and management, providing the essential foundation for the rest of the course. Chapter 2 describes the techniques for Process Synchronization. This chapter addresses the core challenge of concurrency: the race condition. It introduces the critical-section problem and details the various solutions, from early software algorithms (like Peterson's) to hardware support (atomic instructions) and powerful OS-level primitives like semaphores and monitors. The following chapter, Chapter 3, deals with Interprocess Communication (IPC). Once processes are synchronized, they often need to cooperate. This chapter covers the primary mechanisms that allow processes to exchange information, including shared memory, asynchronous notifications via signals, and data streaming using both unnamed and named pipes. Chapter 4 is entirely dedicated to the problem of Deadlocks. It begins by characterizing the four necessary conditions for a deadlock to occur. It then details the primary strategies for managing them: Deadlock Prevention, by structurally negating one of the conditions; Deadlock Avoidance, using the Banker's Algorithm to maintain a safe state; and finally, Deadlock Detection and Recovery. | |
| dc.identifier.uri | http://dspace.univ-oeb.dz:4000/handle/123456789/22685 | |
| dc.language.iso | en | |
| dc.publisher | University of Oum El Bouaghi | |
| dc.subject | Operating system fundamentals; Processes synchronization; Interprocess communication; Deadlocks | |
| dc.title | Operating Systems 2 | |
| dc.title.alternative | Course handout 3rd Year Bachelor's Degree in Computer Science – SI & ISIL - | |
| dc.type | Other |