Operating Systems
Undergraduate course, University of Giresun, Department of Computer Engineering, 2025
Operating systems are a fundamental part of modern computing. They form the foundation of every computer system. Their main role is to manage hardware and software resources efficiently. An operating system provides a platform for programs to run. It acts as a bridge between hardware and software applications. This ensures that applications can interact with hardware using a standardized interface. The operating system handles tasks like memory management, process scheduling, and input/output operations. Without it, a computer is just a collection of hardware components. These components cannot be controlled or used effectively by users. The operating system makes the computer functional and user-friendly.
Ders Öğretim Planı
Announcements
The resources:
- Modern Operating Systems, Andrew S. Tanenbaum book
- Operating System Concepts, A. SilberSchatz, P. Galvin, and G. Gagne e-book
- Operating Systems: Three Easy Pieces e-book
- Youtube Prof. Dr. Kemal Bıçakcı | Prof. Dr. Sadi Evren Şeker
- CSCI-UA.202 Operating Systems website
- Bilgisayar İşletim Sistemleri, Prof. Dr. Ali Saatçi, 2. Baskı.
- Operating System Development website
- Operating Systems From 0 to 1 pdf
Past Exams
Preface:
The world of operating systems is introduced as a key aspect of modern computing. Fundamental concepts, design principles, and implementation techniques are explored to highlight how interaction between hardware and software is enabled.
- The prerequisities for preparation pdf
- Key figures who have shaped the field pdf
- Questions & Answers from OSTEP pdf
Chapter 1: Introduction:
As the bridge between hardware and software, operating systems serve as the foundation for modern computing, providing the necessary abstractions and services to enable applications to run efficiently and securely on diverse hardware platforms.
Chapter 2: Structures:
The design and organization of an operating system’s internal components and mechanisms, collectively referred to as its structure, play a critical role in determining its performance, reliability, and functionality.
Chapter 3: Processes:
Processes serve as the cornerstone of multi-tasking and concurrency, enabling multiple applications to execute simultaneously while sharing resources efficiently and securely.
Chapter 4: Threads:
Threads, as lightweight execution units within a process, provide a powerful mechanism for achieving concurrency and parallelism in modern operating systems, enabling applications to take full advantage of multi-core processors and other hardware resources.
Chapter 5: Scheduling:
CPU scheduling is a critical component of any operating system, responsible for determining which processes and threads should be executed by the CPU at any given time, in order to maximize system throughput, responsiveness, and fairness.
Chapter 6: Synchronization:
In a multi-threaded or multi-process environment, synchronization mechanisms provide the means for coordinating access to shared resources and ensuring consistency and correctness in the face of concurrent access and modification.
Chapter 7: Deadlocks:
Deadlocks, which occur when multiple processes or threads are blocked and unable to proceed due to conflicting resource dependencies, are a common and challenging problem in operating system design and require careful consideration of resource allocation and scheduling policies to prevent and resolve.
Chapter 8: Memory management:
Memory management, which involves the allocation, monitoring, and protection of a computer’s physical memory resources, is a critical component of any operating system, providing the foundation for efficient and reliable application execution.
Chapter 9: Virtual memory:
Virtual memory, a key technique used by modern operating systems to manage memory resources, enables applications to access a larger, virtual address space than is physically available, providing a powerful mechanism for efficient memory allocation, protection, and sharing.
Chapter 10: File systems:
File systems, which provide a hierarchical organization and management scheme for data storage on disk or other persistent storage devices, are a fundamental component of any modern operating system, enabling applications to store and access data efficiently and reliably.
Chapter 11: Input/output:
I/O operations, which involve the movement of data between a computer and external devices, are a critical component of any operating system, providing the means for applications to interact with the physical world and enabling efficient and reliable data transfer.
Chapter 12: Multiple processor systems:
As multi-core processors and distributed computing systems become increasingly prevalent, the design and implementation of operating systems for multiple processor systems presents unique challenges and opportunities, requiring careful consideration of issues such as process and thread scheduling, memory management, and communication and synchronization mechanisms.
Chapter 13: Security:
Security is a critical concern in modern computing environments, and operating systems play a central role in providing the necessary mechanisms and policies to protect system resources, data, and applications from unauthorized access, modification, and other forms of attack.
Chapter 14: Multimedia:
With the growing demand for multimedia applications such as audio and video playback, real-time communication, and graphical rendering, operating systems must provide specialized support and optimizations to ensure efficient and responsive performance on a diverse range of hardware platforms.
Chapter 15: Operating system design:
Operating system design involves the careful consideration of a wide range of factors, including performance, reliability, security, compatibility, and usability, and requires a deep understanding of the underlying hardware and software components, as well as the needs and expectations of end-users and developers.
Chapter 16: Case studies:
UNIX - Linux