Operating Systems

The following is an overview of Operating Systems. This is one of the most important topics in computer science and is worth reviewing at a granular level. I do recommend you read this post and let me know if you have any questions.

In general, the operating system can be considered the most important software that runs on any computer. It is in charge of managing a computer’s inner workings. This includes memory, processors, devices and file system. It essentially allows you to communicate with the computer without having to know any computer language. It is formally defined as a set of programs that (after being initially loaded into the computer by a boot program) controls all other programs in a computer and that manages a computer’s internal workings. This includes memory, processors, internal and peripheral devices, the file system, etc. Other devices include mobile devices, a network router, a storage array, a car, a television, and maybe even washing machines

Operating systems are essentially designed to make the best out of the computer’s resources. Efficiency is the main goal. They provide an abstract layer between (virtualized or physical) hardware and software applications. In general, low level hardware management that is needed by applications is usually handled by the operating system. This includes: process management, memory management, interrupt management, multi user management, file locking and file sharing

Operating systems also provide services to applications in the form of an API. This stands for Application Programming Interfaces. It works for file management, I/O interfaces  like video and keyboard) hardware drivers (like printer drivers) and other hardware. As we progress through this powerpoint we will discuss in more detail the capabilities of the operating system and compare a couple of them such as Windows and Mac.

As a quick overview I am sure you all know that in most computer systems, multiple processes are running simultaneously, while the system is physically only capable of running one process at a certain time. Operating Systems are able to create the illusion of multiple running processes in parallel by scheduling each process to run only during a small time frame (preemptive multitasking). Usually the operating system decides if a running process is to be suspended in favor of another process, or if that process can keep running for a while. However some issues involve frequent amount of process switching can generate a lot of overhead. On the other hand, processes that run for a long time can make the system start to perform much slower. This can be combatted with an algorithm that ensures that each process gets its fair share of CPU space.  

In terms of file systems, Operating Systems virtualize the complexities of handling disk blocks by providing a file system to applications that consist of directories/folders with files. In general, Operating Systems hide the complexity of file management. It is also able to manage the security of these files. In general, most operating systems can handle multiple types of files systems on multiple disks at the same time and the user or application would have no idea which file system is used. Some of these files include: FAT, NTFS, UFS, VxFS, EXT,  and NSS.

In terms of Memory Management, Operating system manages the available memory in a system and allocates and deallocates memory on behalf of applications and manages what happens when the amount of requested memory exceeds the physical amount of memory.

In conclusion, I would like to go over all the major points we touched upon today. In general, operating Systems can be considered the most important software that runs on your computer. Consider it as the backbone of all you do on your computer at the moment. No matter what OS you pick, it allows your computers to execute all the relevant action and commands. Remember that it is a set of programs that control all your computer’s inner workings.

Managing these inner workings is the main capability of Operating Systems. This includes process scheduling, files management and memory management. Operating Systems are able to create the illusion of multiple running processes in parallel by scheduling each process to run only during a small time frame (preemptive multitasking). In terms of file systems, Operating Systems virtualize the complexities of handling disk blocks by providing a file system to applications that consist of directories/folders with files. In terms of Memory Management, Operating system manages the available memory in a system and allocates and deallocates memory on behalf of applications and manages what happens when the amount of requested memory exceeds the physical amount of memory.