CPT304: Week 5 Final Project: Blog Post

 

Week 5 Final Project:  Blog Post

Aaron Bicknell

CPT304: Operating Systems Theory & Design (IND2151A)

Dr. Joshua Reichard

January 31, 2022


 

The course, CPT304: Operating Systems Theory & Design (IND2151A), at The Forbes School of Business & Technology has given me the opportunity to review in detail the fundamental concepts of operating systems and prompted this overview for inclusion in this blog entry. 

Computer operating systems are designed to provide services necessary for the functioning of computers and processing devices.  The textbook Operating System Concepts Essentials (2nd ed.) uses an anecdote to describe an operating system's job.  The book states that "An operating system is similar to a government. Like a government, it performs no useful function by itself.  It simply provides an environment within which other programs can do useful work" (Silberschatz et al., 2014, p. 4).  While it may not be lost on the reader that there is an insinuation that governments are useless, operating systems actually function efficiently and provide many features that allow us to leverage the capabilities of our computers.  The operating system manages the processor, memory functions, system performance, and I/O devices.  Additionally, the user interface, file and storage management, and security are other functions provided by modern operating systems.  The chart below outlines the components and functions of the operating system.


Operating System Features – Figure 1

Processes can share information as operating systems can provide the conduit for this by mapping memory locations, calculating multiple process threads to allow for parallel processing, and sharing data through memory space mapping.  Once a program executes a process, this process goes through various states from beginning to end.  These states are:

·         New: The process is being created.

·         Running: Instructions are being executed.

·         Waiting: The process is waiting for some event to occur.

·         Ready: The process is waiting to be assigned to a processor.

·         terminated: The process has finished execution.  (Silberschatz et al., 2014, p. 107.).

These process states allow the operating system to assign processor time to processes based on their status.  If these processes are multi-threaded, each thread can run as its own routine but share memory space.  There are implicit dangers of complexity when doing this; however, if we address this problem with mutual exclusion, progress, and bounded waiting, we can maintain the integrity of the critical section of the processes and the data that multiple threads may access.  The operating system juggles these memory management tasks to run our programs quickly while avoiding crashes and data corruption.   Figure 2 below illustrates the process management functionality of an operating system that allows for process data sharing.

Process Management – Figure 2

With the processing capabilities of today’s processors, one of the issues we face is the bottlenecks as we manage main memory limitations.  Main memory is limited in size by cost.  This means that we are limited in processing to only what we can fit in the main memory.  This bottleneck is alleviated by implementing virtual memory.  In this scenario, the operating system can offload contents of main memory and swap it out with data stored in virtual memory that occupies less expensive yet slower storage options.  The operating system does this by looking ahead to pre-fetch information that will be needed and loads it into space in main memory freed by offloading bits that have already been used and won't be required again until later.

A modern computer system will maintain communications between the processor, files, and data in memory and mass storage and the input/output devices of the machine. 


Bus Structure – Figure 3 (Silberschatz, et al., 2014, p. 563.)

Mass storage is usually in the form of hard drives and solid-state drives attached to the bus through their disk controllers.  Files are stored in various directory structures, but usually, they are hierarchical in nature.  The operating system reads and writes these files using algorithms to determine the best performance by writing to memory registers assigned to the bus's controllers.  This assignment allows the processor to communicate and give instructions to these device controllers.  Figure 4 below highlights the bus structure, file properties, directory types, and device connections.


I/O, Directory Structures, and File Attributes– Figure 4

If we refer to the mind map above, we can see that security is one of the file attributes that operating systems manage.  Operating systems employ security and protection schemes to ensure that our data and programs are safe and reliable.  Antivirus measures maintain a barrier of protection from malicious outside events.  In contrast, internal access control measures such as lists and domains are utilized to ensure the least privilege to keep us from accessing things we should not and allow access to the data we need.  We can refer to the following mind map to outline operating systems' methods and objectives to keep our data protected and secure.


Security and Protection concept map– Figure 5

This exercise allows us to understand the interconnectedness of the multiple facets of operating system functionality.  This knowledge will enable me to apply the concepts for troubleshooting system issues, developing systems, and maintaining computers in my profession and as a mentor for our local robotics team.  Speed and reliability are critical factors in my areas of influence.  I will be able to apply memory management, process prioritization, and security practices to ensure that any of the systems in my care are at peak performance.

 


References:

 

Bicknell, Aaron, (2022).  The Bick Pens.  CPT304 Summary Blog Post.  Retrieved from The Bick Pens (the-bick.blogspot.com)

Silberschatz, A., Galvin, P. B., & Gagne, G. (2014). Operating system concepts essentials (2nd ed.). Retrieved from https://redshelf.com/

TutorialsPoint. (n.d.).  Operating System - Memory Management.  Retrieved from https://www.tutorialspoint.com/operating_system/os_memory_management.htm

TutorialsPoint (n.d.).  Operating system – Overview.  Retrieved from https://www.tutorialspoint.com/operating_system/os_overview.htm

TutorialsPoint. (n.d.).  Operating System Scheduling Algorithms.  Retrieved from Operating System Scheduling algorithms (tutorialspoint.com)

TutorialsPoint. (n.d.).  Operating System - Security.  Retrieved from https://www.tutorialspoint.com/operating_system/os_security.htm

 

 

 

 


Comments