Monday, November 29, 2021

Full Concept Map

Click Here for Full Concept Map 

Section 1: Operating Systems

     An Operating System is a way to allow a user to utilize the computing power of computer hardware. Operating Systems work as a mediator between the User and the Hardware to help the User accomplish what they are trying to do. They come in several different styles such as a GUI interface which utilizes a mouse and graphics to assist the user with their input. Others such as Linux use command line to maximize computing power without having to render graphics for the user. There are pros and cons to all types of Operating Systems. As our technology evolves so do our operating systems, many systems now feature voice commands eliminating the need for a keyboard. These types of advancements require new and updated operating systems to continue to make the technology we have usable.

    In my Concept Map, I decided to show how a particular piece of user input would travel. The input would be give by the user through the Operating system's GUI or Command Line. Then the Operating system would communicate with the system hardware to allocate resources to perform the task. Followed by the execution of the task and then going back to a monitor to display the results. So all the communication is bi-directional between the User and Hardware with the Operating system working as the middleman in between







Section 2: Processes

    Processes are very interesting and I enjoyed learning about their architecture. Before reading I wasn't sure what the difference between a program and a process. A program is a set of instructions that are in an inactive state, waiting to be executed by a user. A Process is a program that has been activated by the user via an executable file.

    Processes can be in several different states, the process state and other information are held together in a process control block. The block holds data including the destination and return address of the process. All the above information describes a single-threaded process.

    In a multithreaded architecture the process control block (PCB) can also maintain information about multiple threads of processes. So a PCB could have several processes running all at the same time. Most OS today use a multithreaded architecture, allowing the user to have several processes running even if they are not being actively used, while freeing up space for the processor. 

    Each process has a piece of code called the critical section. While code in the critical section is being executed, no other process can be executing in it's critical section. Only one critical section piece of code can be processed at a time. Therefore the critical-section problem is to define a way to have each process cooperate and allow the processor to complete each critical section code. The conditions for solving the critical-section problem are mutual exclusion, which states that only one critical section can be processed at a time. Second, progress, which determines how each process will determine if they can enter their critical section. Thirdly, bounded waiting, which limits how many times a process can request to enter it's critical section.

    For my concept map I decided to show how a Mutex lock would work when requesting and releasing the lock before and after processing the critical section.



Section 3: Paging

    Paging is a memory allocation method that is used by many different operating systems. Paging is constructed by arranging physical memory and logical memory into fixed-size blocks. For physical memory these blocks are referred to as Frames, and for logical memory they are referred to as Pages. When a program from the backing store is executed and loaded into memory an available frame and page are allocated to that job. The logical use of pages allows a full 64-bit address to be added to the job but only taking up a fraction of the physical space that would be required. Paging can be vastly complicated and there are several different types of paging that allow for different types of priorities on jobs being executed.



Section 4: File Systems

    I chose to show the structure of an Acyclic-graph directory. I think this is one of the major ideas around files systems is that it allows each user to have their own files and folders while still being able to share specific files with other people. This allows people to both keep things organized and private within their own files while still being able to be collaborative and work with other individuals on specific files. I wasn't sure how to incorporate it into my concept map but I was really intrigued by some of the I/O information we read this week. Just imagining how complex some of the interrupt systems can be and how to make things work even when they are waiting for input or instructions. 



Section 5: Protection and Security

    All items in our computer storage need protection. Whether it's from internal or external threats all of our data is critical and needs to be protected. There are several different methods or approaches to maintaining file integrity. One of which is an Access Matrix, this table holds information about files for who should have the ability to access which files. A matrix can be organized in many different ways making it flexible to define for each physical location or each specific user.