We will begin this course with a high-level introduction to Operating Systems (OS). The Operating System acts as a platform of information exchange between your computer’s hardware and the applications running on it. Most people are familiar with the Windows Operating System family (like Windows 10, XP, or Vista) or Apple’s suite of Operating Systems (like Catalina, Mojave, or Sierra), but for the purposes of this course, we will focus on UNIX: the open-source OS deployed all over the world in both personal and commercial systems. First, we will start with a discussion on some of the earliest Operating Systems, including those which are considered precursors to the Operating Systems that we are familiar with today. Then, we will review the general OS structure and give a basic functional overview. We will conclude this module with a discussion of the modern Operating Systems and devices that we are familiar with.
WHAT WILL YOU LEARN?
Upon successful completion of this course, students are expected to have the ability to:
- Identify the various components of a computer system and how they interact with an operating system
- Explain what an operating system does and how it is used
- Describe and explain the fundamental components of a computer operating system
- Define, restate, discuss, and explain the policies for scheduling, deadlocks, memory management, synchronization, system calls, and file systems
- Design and construct the following OS components: System calls, Schedulers, Memory management systems, Virtual Memory and Paging systems
- Illustrate, construct, compose and design solutions via C/C++ programs, and through NACHOS.
- Measure, evaluate, and compare OS components through instrumentation for performance analysis
- Describe the differences between a 32-bit and 64-bit operating system; and
- Describe and extrapolate the interactions among the various components of computing systems
- Explain the different types of operating systems and the major systems in use today