
Explore the process concept, its components such as text, data, heap, and stack, and the process control block that stores state, memory limits, and input and output information for execution.
Explore process scheduling, including ready, job, and device queues, long and short term schedulers, multiprogramming, time sharing, context switching, and swapping.
Explore process synchronization and mutual exclusion via the Peterson solution for two processes, covering the critical section with software, hardware, and programming language constructs like mutexes, spinlocks, and semaphores.
Explore virtual memory as an extension of main memory that separates logical and physical addresses, enabling processes to execute with parts not fully loaded and translated via page tables.
Demand paging loads pages only as needed from secondary memory into RAM, using a page table to mark valid and invalid entries and swap pages in and out.
Explore demand paging and its impact on virtual memory, page faults, and performance, including how memory access time and disk reads shape the effective access time.
The course will provide an introduction to Operating Systems (OS), their design and implementation. We will discuss the goals of an OS, and some successful and not-so- successful OS designs. Understanding operating systems is an increasingly important skill in the current job market. According to research from the U.S. Bureau of Labor Statistics, computer support specialist jobs are projected to grow 6 percent by 2031, and many of these positions require a strong knowledge base in operating systems. An operating system is the most important software that runs on a computer. It manages the computer's memory and processes, as well as all of its software and hardware. It also allows you to communicate with the computer without knowing how to speak the computer's language. The operating system directs the input and output of data, keeps track of files, and controls the processing of computer programs, allocating computer resources to various functions. The operating system also serves as an interface between the computer and the user. Most computer programs complete a task and then end.The main objectives of an operating system include Efficiency, Hardware abstraction, Convenience, and System resource management.However, they also come with disadvantages including complexity, susceptibility to vulnerabilities, and potential for system failures.