OS Theory Concept Map

 

OS Theory Concept Map

Operating Systems (OS) are built to assist the computer in running all programs as efficiently as possible. The OS is also used to give users the ability to interact with the computer in an easier way. Computers must have an environment to execute programs in the best way possible and also manage all of the resources that are available to the computer in the best possible method. When controlling the programs, it serves to supervise the user programs and manage the operation and control devices (Silberschatz, Galvin, & Gagne 1.1). The OS is an essential requirement for computing in today’s technological world.


            The OS uses threading when executing code for a program. Threading “improves application performance through parallelism” and can really assist in the allocation of resources when running a program (TutorialPoint 2023). Programmers can use parallelism to take advantage of multiprocessors and let programs run faster and with less error. Multiple threads can be ran at the same time for simultaneous execution of code. The OS makes use of memory management and file management in these processes, as well. With today’s current networks, network management plays a major role in OS development, as well. Multi-threading in the “many to many model” is an efficient way to send out multiple threads.

            Single and multi-thread models are different variations of how programs are written. In a single thread model, the instructions are completed one set at a time. In a multi-thread model, multiple sets of instructions can be completed at one time. Critical-section problems can occur when multiple threads are trying to access the same resource. Peterson's solution is a method that was designed to be the software solution for this problem. The solution is an algorithm that was created to allow multiple threads to access the same resource without conflicting (Wikipedia 2023). The solution involves two variables and the use of a "bool" in the programing. The solution allows for mutual exclusion. Attached is the diagram for this week's interactive assignment. 

            Processes go through several changes in its life cycle. A process is an active set of instructions that are executing, versus a passive program (Geek 4 Geeks 2023). Much like the discussion post that we created for this week's topic, the states of a process are as follows:

  • ·       New: The process is ready to be created and picked up by the OS.
  • ·       Ready: The process is ready to run. The process is preparing to go to the CPU.
  • ·       Run: The process is executed by the CPU.
  • ·       Wait: Stored in memory, waiting for input, or until the process is complete. 
  • ·       Terminate: The process is ended, and the PCB is deleted.


The Process Control Block (PCB) is created for the process to keep track of the status of the process. The PCB might contain information like the program counter, stack pointer, algorithms, or more (Dusey 2023). As Geek for Geek points out, the PCB is deleted after the program has terminated. The PCB can help make programs more efficient and faster. Also, the PCB can help to synchronize multiple processes (as shown in the attached diagram) and is crucial to the performance of the OS.



        Logical addresses refer to a virtual address. Logical addresses are created by the CPU and exist only in the abstract (Silberschatz, Galvin, & Gagne 7.1). Physical addresses refer to actual addresses existing on the memory. The concept map also has a diagram showing the process that the CPU takes to get to the physical addresses. The Memory Management Unit (MMU) is responsible for the run-time or processes and is part of the hardware of the computer (Zitoc 2019). Physical addresses and virtual addresses can vary on the execution times and may have differences. Memory can be paged but needs certain requirements to support the hardware in checking the read/write privileges (Silberschatz, Galvin, & Gagne 8.5).

        File System Management helps to efficiently organize files for the OS. Users can delete, edit, create, copy, or otherwise manipulate files on the computer. File Management creates directories of structures to hold files in folders. Users have the right to access files based on their security settings that have been created. Many times, files will automatically be deleted when a user logs out (Silberschatz, Galvin, & Gagne 9.1). Different types of directory structures are created depending on how the system settings are set for users.

Single-level directory structures start with the root directories and follow directly to the files in each directory. Two-level directories start with the root at the user’s root, following the subdirectories. The subdirectories will hold the files that were created only by the user.  Tree directories are similar to two-level directories but allow the user to have directories stored within directories. See the attached diagram for illustration. Users can navigate the different directories and files using various input methods.

Protection, in general, refers to keeping something safe from harm. Computer files are no different and need protecting, as well, especially when the files and objects contain sensitive information. Domain access refers to granting different parts of the OS file system different rights to different users, depending on who needs access to what information (Baeldung 2023). The Access Matrix that is created for users allows files to be protected and also lets the system administrator define rights to specific users. Geeks for Geeks provides a great example of an Access Matrix:


        In this example, Domain 1 can only read files 1 and 3. These users would not be able to access or even see File 2, or have print access. With Read/Write access, the user is able to delete and view the files. In this example, some users may only have print access. This matrix allows for files to be protected, or shared, with users that need access to the information only. However, if all of the access rights are removed from one object, then there is no access that is allowed to that file (Silberschatz,Galvin,& Gagne 13.8). 

In general, files would be protected on this network by allowing users to only have access to certain files. But other layers of security are important on the system, as well. VPNs are often used to protect networks from outside threats. Encryption layers help to protect information from anyone that does not have the key to view the information. Security on any network is important and should be taken seriously.





References

Baeldung. (May 17, 2023). Domains of Protection in OS. Retrieved from                                                         https://www.baeldung.com/cs/domains-of-protection-in-                                                                             os#:~:text=2.,it%20provides%20isolation%20and%20protection.

Dusey, A. (May 3, 2023). States of a Process in Operating Systems. Geeks for Geeks. Retrieved                     from https://www.geeksforgeeks.org/states-of-a-process-in-operating-systems/#

Geeks for Geeks. (April 24, 2023). Introduction of Process Management. Geeks for Geeks.                      Retrieved from https://www.geeksforgeeks.org/introduction-of-process-management/

OS Memory Management. (February 25, 2019). Zitoc. Retrieved from http://zitoc.com/os-memory-                management/Links to an external site.

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

TutorialsPoint. (2023). Operating System – Multi-Threading. Retrieved                                                             from http://www.tutorialspoint.com/operating_system/os_multi_threading.htm#

Wikipedia. (March 27, 2023). Peterson's Algorithm. Retrieved from                                                                 https://en.wikipedia.org/wiki/Peterson%27s_algorithm

Comments

Popular posts from this blog

Employee Management System - Simple Project

Explicit and Implicit Variables

Creating Tables in MySQL