This study guide will help you get ready for the final exam. It discusses the key topics in each unit, walks through the learning outcomes, and lists important vocabulary terms. It is not meant to replace the course materials!
A computer operating system (OS) is a type of abstract virtual machine that handles diverse computer hardware. The computer operating system serves as a platform that exchanges computer information or computer code between your computer's hardware and the applications running on it. A specific, universal, operating system standard does not exist: the computer operating system is basically whatever the vendor ships and updates.
The computer operating systems basically coordinates and manages computer information. It settles conflicting requests, facilitates and manages machine facilities, prevents errors and improper use, serves as a file system, and operates a windowing system where the graphical user interface (GUI) presents data in a window format to the user interface (UI).
The operating system does many, many things simultaneously, and that is it's real value. To give us some appreciation of those many, many things an OS does pretty much all at the same time, the below list is not exhaustive, but provides an idea of some of the many things and operating systems does more, or less, simultaneously:
Two popular proprietary operating systems are the Microsoft Windows operating system family (Windows 10, XP, and Vista), and the Apple suite of operating systems (Catalina, Mojave, and Sierra).
UNIX is an open-source operating system that is deployed all over the world in personal and commercial systems. It is free, non-proprietary, and open-to-all which means that any user is able to see and change the source code as they would like.
Linux, a popular open source operating system, is a close relative to Unix. Several versions of Linux exist. Open source means that the source code is free and open. This means that users have the permission to reuse, revise, remix and redistribute it. In practical terms this means computer programmers are free to fix bugs, improve functions, or adapt the software to suit their own needs.
Operating systems are massive. For example, Microsoft Windows has 50 million lines of code and is terribly complex. Large scale coding is also like an interlocking puzzle: moving or changing one piece often affects other pieces in significant and unpredictable ways.
For example, technicians soon learn that when they upgrade a computer operating system, an element that worked previously is subject to breaking down, even when it was not the main focus of their initial upgrade. You may need to stamp out or correct the bugs, including new and unintentional ones you created when you upgraded the old version of the OS.
Resiliency and variety are great features of computer operating systems because they amplify each other concurrently. These features supplement the complexity of the OS.
Reliability often requires monotony since repeating one, and only one, single task, is less likely to fail or break down. This is especially important in medical equipment. Incredible reliability repeats over and again and uses a simple computer program.
An application, or application program, is simply a software program that runs on your computer or mobile device. Web browsers, email programs, word processors, games, and utilities are all applications.
Note that the computer operating system (OS) can crash an application (app), and an app can crash an OS. Programmers try to make sure applications and programs cannot read/write the memory of other applications/programs of the OS. This is because operating systems have certain definitive duties, requirements, or functions. One of these core functions is to keep computing going, separately from each other so they do not affect or crash each other.
Review this material in the two lectures What Is an Operating System? and Operating Systems History, Services, and Structure by John Kubiatowicz.
Different components of a computer system include:
The computer operating system:
When computers first came on the market, manufacturers focused on the single computing machine, which was not connected to other computers (if there were any). When computers became smaller and less expensive, we began to focus more on how to connect with other users and share information. The end device became small, cheap, and easy to replace. The network, on the other hand, became unique and irreplaceable while the importance of the end device became negligible.
Distributed computing is a model where we share software system components among multiple computers to improve efficiency and performance. Distributed computing, using the narrowest of definitions, is limited to programs with components shared among computers within a limited geographic area.
This model could mean incorporating multiple servers in a single location data center, or multiple servers geographically dispersed, so the time for communication (latency) among communicating machines is negligible.
Understanding the value and effectiveness of an OS helps us appreciate what this critically important piece of software does for us on our desktop machines and mobile devices. Different devices require different operating systems, according to their operation, computing resources, hardware, and software.
For example, a mobile device requires a different operating system than a desktop or larger machine because it is more constrained in terms of power, battery, memory, storage, and computing power. All of these things must operate together effectively according to their size constraints, in accordance with their size, performance, and capacity.
Rapid changes in hardware, such as the advances in computing technology from 1950–1980 and today, compels rapid change in operating systems.
Review this material in the two lectures which provide an excellent introduction to operating systems: What Is an Operating System? and Operating Systems History, Services, and Structure by John Kubiatowicz and Computer System Overview: Part 1 by Jinzhong Niu.
Computers do not use the base ten numbering system like we do. They use a base two system which means they have two states: on or off, one or zero, as opposed to base ten which uses 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9. Like a lightbulb that only switches on or off, computers only understand two things: one and zero.
The computer engineers and mathematicians who first invented computers could not replicate the base ten system we use. They realized you can represent any number by using a number as a base (two in computer terms or 10 for humans), and raising that number to an exponent, written as 2x. If you lack a font that shows exponents in superscript, you can write these numbers as 2^x or 2exp(x).
Because computers use, and have always used, a base 2 assumption, counting in computing always uses multiples of two (an exponent of 2x). For example, 32 = 25, 64 = 26, 128 = 2256. This is why you always see numbers with exponents with computers, rather than 5, 10, 15, 20, 25, 100, 1,000, 10 = 101, 100 = 102, or 1,000 = 103.
A computer that uses a 64-bit processor can address twice as many bits as one that uses a 32-bit processor, and can perform twice as many calculations during the same time period. This greater performance allows us to realize more dramatic computing abilities for applications, such as gaming, graphics, HD (high definition), and video.
It is important to understand the difference between 32-bit and 64-bit computing environments because the application you want to run may not work on a 32-bit system. Your application simply requires too much computing power and will not work with a 32-bit processor.
Review this material in the lecture Operating Systems History, Services, and Structure by John Kubiatowicz and 32-bit and 64-bit Explained, and 32-bit and 64-bit Frequently Asked Questions.
Some different operating systems include: iOS, iPadOS, Linux, macOS, Solaris, Unix, and Windows.
Different software producers created different systems to achieve different goals with different types of hardware. For example Apple built macOS for its iMac desktop, iPadOS for its iPad, and iOS for its smartphones.
Each hardware environment has different abilities, which may be greater or weaker. Their goals require a unique operating system, such as the need to fit a computer device into a certain size or shape (a form factor) or to perform certain functions.