Contemporary Operating Systems and their Structures
Contemporary Operating Systems and their Structures
An operating system is software that helps the user to “operate” the computer’s hardware (Silberschatz, et al., 2014, p. 1). Hardware on its own is not very user friendly; operating systems allow the user to interact with the computer without having to have a background in IT. Today, operating systems have many other roles in the computer system. Modern day operating systems are also involved in process management, memory management, storage management, and protection and security.
The structure of an operating system can vary greatly between different computers and systems; however, all consist of a kernel. The kernel is the one program always running on the computer (Silberschatz, et al., 2014, p. 6). Operating systems also include a user interface, this is the defined point that the user sees to interact with the computer. The architecture of an operating system is not one set design, there are different models and many today are hybrids. Structures include a simple structure, a layered approach, microkernels, and modules. The simple structure “has no distinction between user and kernel modes, allowing all programs direct access to the underlying hardware” (Operating-system Structures, n.d.). Layered approach breaks the OS into layers and each layer relies on the services of the lower layers. Microkernels remove all non-essential tasks from the kernel and use system applications to complete those tasks. Finally, modules have a small core kernel like microkernels, but use object-oriented modules to perform clearly defined tasks, although they can contact other modules (Operating-system Structures, n.d.).
How Operating Systems Enable Processes to Share and Exchange Information
Operating systems manage processes, which are programs in execution. One role of the operating system is to manage the computer’s processes by creating and terminating, scheduling, and maintaining efficiency. The OS controls a process by using the Process Control Block, or PCB, to store the context of each process (Mishra, 2023). The OS also has the role of creating, scheduling, and terminating processes. In terms of maintaining efficiency, “process management is needed for achieving fair resource allocation among processes along with multitasking” (Mishra, 2023). A thread is a set of instructions that is being executed within a process. Originally, processes were single threaded and only allowed one instruction to be executed at a time. Most common these days are multithreaded processes, which have more than one thread and can allow for multitasking (Silberschatz, et al., 2014, p. 164).
How Main Memory and Virtual Memory Can Solve Memory Management Issues
Another one of the operating system’s main tasks is to manage the computer’s memory and ensure that memory space is allocated efficiently. A computer’s memory is generally made up of three types, in a hierarchical fashion. At the top is the cache memory, which is the fastest and closest to the CPU, easiest to locate. However, it is also the smallest and most costly, and therefore cannot hold much data. The main memory holds the data and instructions that the computer is currently working on, however, it is volatile and will lose the data when the computer is turned off (Computer – Memory, n.d.). It is larger and less expensive than the cache, but still costly and cannot hold nearly enough. Finally, the third memory type is the secondary memory, which usually comes in the form of a hard disc. It is the slowest but also the largest and the least expensive, so it can hold a lot of programming data.
In general, the entire process needs to be in memory in order to execute. This can take a lot of memory space and if a user is trying to run multiple processes at once, it may not be possible. Virtual memory “allows the execution of processes that are not completely in memory” (Silberschatz, et al., 2014, p. 371). The virtual memory goes through a process of memory mapping, during which the memory management unit (MMU) maps it to an available physical address. Memory mapping can use several different techniques, including single contiguous mapping, which maps the entire process to one physical region, multiple contiguous mapping, which divides the virtual address into regions and maps to a corresponding physical region, and segmentation, which divides the virtual address into segments and uses a table to map to a physical address. By using virtual memory mapping, the operating system utilizes the available memory space in the most efficient way possible allowing multiprogramming and file sharing.
How Files, Mass Storage, and I/O are Handled in a Modern Computer System
In addition to memory management, the OS is also responsible for storage management. Files are collections of related information created by the user and then organized into folders or directories. The file system maps these files and folders onto the physical device since the main memory cannot accommodate permanent data and programs (Silberschatz, et al., 2014, p. 439). The user utilizes input and output to tell the operating system when a request is needed to or from a disk. The device controller is meant to establish communication between the system and the I/O device. Per the YouTube video, titled Input Output Management, by Tutorialspoint, the controller provides a low-level interface for the I/O device and issues certain control commands that may not be interpretable by the operating system but are understood by the device (Tutorialspoint, 2018, 0:09:12). Then, the device driver is a software component that acts as an interpreter between the hardware (the I/O device and the device controller) and the computer system.
The Mechanisms Necessary to Control the Access of Programs or Users to the Resources Defined by a Computer System
The OS must protect and secure the computer, programs, and resources at all levels: human, physical, network, and the operating system itself. The goals of protection started initially as a way to ensure that all users (even those who may be untrustworthy) can safely share a logical or physical space (Silberschatz, et al., 2014, p. 601). It safeguards against access violations (intentional or unintentional). It has evolved to ensure system reliability by providing a mechanism for the enforcement of resource use within policies. Two main principles of protection are the principle of least privilege, in which programs, users/m, and systems should only be given enough privileges to perform their current tasks, and the need-to-know-principle, through which a process should only be given access to the resources that it needs to complete its task (Silberschatz, et al., 2014, p. 602 – 603). Mechanisms are in place to enable privileges when needed and disable when not. Processes should only be allowed to access resources for which it has authorization.
An access matrix shows the abstract model of protection with rows accessing domain, columns representing objects, and each entry providing the access rights for that set. Access rights can be things like read, write, execute, or print. Allowing changes to be made requires three additional operations: copy, and owner, which regulate the change of columns, and control, which is the mechanism to change the entries in a row (Silberschatz, et al., 2014, p. 611).
Security works along with protection but also considers the outside environment. It utilizes many tools, such as cryptography, encryption, and user authentication, to ensure that the system remains secure. Cryptography and encryption both utilize keys to ensure that messages are kept safe. User authentication is something that nearly everyone is familiar with and can take the form of a password, multi-factor authentication, or even biometrics such as a fingerprint scan (Silberschatz, et al., 2014, p. 665).
How Concepts about Operating Systems Theory Can Be Used in Future Courses and/or Future Jobs
When considering a degree in Information Technology or a career in the field, it is crucial to understand the structure of a computer and the interactions that take place inside. The operating system plays a huge role in the computer system and manages many important pieces, such as process management, memory management, storage management, and protection and security. Every job in IT has to consider the role of the operating system. For example, a system administrator must maintain network file systems, and create and manage system permissions and user accounts, both of which are concepts that involve the OS (Coursera, 2023). Cyber security jobs must consider the operating system’s protection and security in order to perform their job. Understanding the operating system and the roles it plays is very important for a future in IT.
References
Computer - Memory. Tutorialspoint. (n.d.). https://www.tutorialspoint.com/computer_fundamentals/computer_memory.htm
Coursera. (2023, June 15). What does a system administrator do? career guide. Coursera. https://www.coursera.org/articles/what-is-a-system-administrator-a-career-guide
Mishra, S. (2023, June 30). Introduction to Process Management in OS. Coding ninjas studio. https://www.codingninjas.com/studio/library/introduction-to-process-management
Operating-system structures. Operating Systems: Structures. (n.d.). https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/2_Structures.html
Silberschatz, A., Galvin, P. B., & Gagne, G. (2014). Operating system concepts essentials (2nd ed.). Retrieved from https://www.vitalsource.com
[Tutorialspoint]. (2018, January 19). Input Output Management [Video]. YouTube. https://www.youtube.com/watch?v=Gg8yOzP8ENY


Comments
Post a Comment