Operating Systems

Undergraduate course, Giresun University, Department of Computer Engineering, 2026

operating systems Operating systems are a fundamental part of modern computing. Operating systems manage hardware resources and provide abstractions and services for application software. They coordinate processor time, memory, storage, devices, and communication while supporting protection, isolation, and controlled resource sharing. 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.

Ders Öğretim Planı

Ders Öğretim Planı (PDF)


Announcements

No current announcements.


Course resources:


Past Exams


Preliminary Materials:

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.

  • Prerequisites 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:

A deadlock occurs when a set of processes or threads waits indefinitely for resources held by one another. This chapter covers deadlock conditions, resource-allocation graphs, prevention, avoidance, detection, and recovery.


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 gives each process an isolated virtual address space and maps virtual addresses to physical memory or secondary storage. It supports memory protection, controlled sharing, flexible allocation, and demand paging.


Chapter 10: File systems:

File systems organize named data and metadata and provide abstractions for storing, retrieving, protecting, and sharing information across persistent, networked, virtual, or memory-backed storage.


Chapter 11: Input/output:

The operating system manages communication between applications and hardware or virtual devices through drivers, interrupts, buffering, caching, and device-independent I/O interfaces.


Chapter 12: Multiprocessor Systems:

Multiprocessor systems introduce challenges involving parallel scheduling, cache coherence, synchronization, processor affinity, load balancing, and memory-access topology across multicore, SMP, and NUMA architectures.


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