Sunday, June 20, 2021

Course 9 (Operating Systems Theory & Design) Final Project - Summary Blog Post

 OS Theory Concept Map


Jesse Neubauer

Ashford University/University of Arizona Global Campus

CPT304: Operating Systems Theory & Design (IND2121A)

Bret Konsavage, instructor

June 21st, 2021


For the final section of your project, you will provide a summary blog post to share any new insights you have gained about operating systems theory throughout the course and to resolve this focus question: What are the fundamental concepts that underlie operating systems?

Describe features of contemporary operating systems and their structures:

Features - 
Can bring a computer from unpowered to operational
Can render an interface between the user and the computer, either graphically or via terminal prompts
Can accept inputted data/signals and produce new data/signals for output
Can save data in non-volatile storage
Can pull data into accessible memory for use
Can process program executions - multiple simultaneously
Can allocate available resources (processors, power, bandwidth, memory space, and more)
Can prioritize the usage of resources
Can protect system from corruption and unintentional overwriting
Can secure system from external threats

Structures -
Bootstrap program
Kernel
System programs/middleware/subsystems:
  • Input/Output subsystem
  • Disk subsystem 
  • Network daemon
  • File system management
  • Access matrix
Discuss how operating systems enable processes to share and exchange information:
Operating systems maintain an access matrix, which determines which domains have which types of access to which objects. Processes are considered a domain, and information would be considered objects. Processes may access information if they have read/write capabilities for it. Processes may share and exchange information by using common resources like physical memory addresses, and by coordinating with each other through methods like the Critical Section solution, controlled by the control unit and process control blocks.



Explain how main memory and virtual memory can solve memory management issues.
Memory management often runs into the issue of not having enough room to hold all required data in memory at a time. Main memory is added on to the cache memory of a CPU's registers, thus providing much larger capacities of volatile memory. Virtual memory allows for large programs to hold only the relevant piece of instruction in memory at a time, so that main memory does not have to be as large as many large, contemporary programs.



Explain how files, mass storage, and I/O are handled in a modern computer system:
Mass storage is a type of non-volatile memory, usually on a magnetic disk hard drive or flash-memory solid-state drive. The reading device for the storage is controlled by the operating system, which will instruct it to navigate to the physical storage locations of requested data. Files are kept in the mass storage, and are the user-interface representation of physical storage locations. Files also have a corresponding address location, such as "K:\Pictures\Drawings" which is a local-only unique address, similar to a URL for a website. Input/Output is handled through the I/O subsystem, which is part of the OS kernel. Each type of hardware connected to the CPU must have a corresponding set of drivers, device-specific software designed to make sense of the signals they receive from the device's controller, the hardware responsible for receiving the signals transmitted from the main body of each device.




Outline the mechanisms necessary to control the access of programs or users to the resources defined by a computer system:
As mentioned earlier, the main mechanism to control access is known as an access matrix. Both programs/processes and users are considered to be domains, and resources are among the many objects considered in the access matrix.
There will be a default level of access for each object, which will be higher for some than for others. The more integral/important an object is, the more secure it will be kept, and the less access it will keep as its default level.


Recommend how you will use these concepts about operating systems theory in future courses and/or future jobs:
I don't yet know, as I haven't learned enough about the context for these concepts or the content of future jobs to have any idea how these concepts will become relevant. I really wish this course (and the course preceding it, CPT 301 Computer Organization & Architecture, had been much later in the degree curriculum, so that students like me would have more context and familiarity with their use and inclusion. I still don't even know what the big deal is about Linux!

Screenshots pulled from:

Schoolwork assignments incoming

These first few posts are part of this assignment:  "Throughout this course, you will create an Information Technology Blog with seven ...