Operating Systems Theory and Design Final CPT304
Aaron Johansen
CPT304: Operating Systems Theory & Design
Instructors name: Joshua Reichard
Date: March, 29th, 2021
Describe features of contemporary operating systems and their structures.
During the past five weeks of the CPT304 operating system theory and design course, I have learned a considerable amount about operating systems. Throughout this course, we have created multiple concept maps that show the fundamental concepts of an operating system.
An operating system serves three main purposes which are to act as an important intermediary between the hardware and the user, computer resource allocation, and lastly making sure the computer runs efficiently.
Operating systems serve various functions which include a user interface, program execution, Input/Output operations, resource allocation, protection, and security. Below are the major functions of the operating system along with a brief description.
User interface: Can be a Graphical User Interface or command-line interface that the user can see, it is basically a visual representation of the hardware that the user can interact with.
Program execution: The operating system helps programs run and execute efficiently and smoothly.
I/O operations: Input and Output operations allow for the execution of I/O instructions ensuring efficient operation.
Resource Allocation: Used to allocate memory resources depending on what the operating system needs to do.
Protection and Security: Help protect the hardware of the computer ensuring all system resources are controlled and secured.
Discuss how operating systems enable processes to share and exchange information.
Processes are how a computer gets things done and executes files. A process in a computer program is the occurrence that is being executed by one or many threads. Basically when a program executes the process has different states. Below is a list of the different processes along with a concept map:
- New: The process is being created.
- Running: Instructions are being executed.
- Waiting: The process is waiting for some event to occur (such as an I/O completion or reception of a signal).
- Ready: The process is waiting to be assigned to a processor.
- Terminated: The process has finished execution.
A process control block is a data structure maintained by the Operating System for every process
- Process state – Current state of the process new, running, waiting, etc.
- Process privileges – allows/denies access to system resources
- CPU registers – Various CPU registers
- CPU scheduling information- prioritization for scheduling
- Memory-management information – Allocated memory depending on the process
- Accounting information – The amount of CPU usage used, clock time elapsed
- I/O status information – I/O devices allocated to process
In single-threaded motivations for programs, one command is processed at a time. With multi-threaded models, it allows multiple parts of a program to execute simultaneously. Kernels are generally multi-threaded. An example of this is below
Explain how main memory and virtual memory can solve memory management issues.
Memory management is a very important part of the operating system. Memory must be used wisely for the CPU to run efficiently.
The base and the limit register define logical address space and are an important part of the memory management system. Only the operating system can load the base and limit registers. This helps add protection to the memory space as well. Below is a hardware address protection with base and limit registers.
This is a relocation register that uses dynamic relocation. According to the textbook "The value in the relocation register is added to every address generated by a user process at the time the address is sent to memory"(Silberschatz, Galvin, & Gagne, 2014, section 7.4)
According to the textbook, "The run-time mapping from virtual to physical addresses is done by a hardware device called the memory-management unit(MMU)"(Silberschatz, Galvin, & Gagne, 2014, section 7.4). Virtual and physical address space are independent of each other, also virtual address space may be the same as the physical address space it depends on whether the virtual address space is being used by the physical address space. It seems like virtual address space is used when it is needed. According to the textbook, “Entire sections of virtual address space are frequently unused, and multilevel page tables have no entries for these spaces, greatly decreasing the amount of memory needed to store virtual memory data structures"(Silberschatz, Galvin, & Gagne, 2014, section 7.6).
Below is my concept map of the memory management with main memory.
Explain how files, mass storage, and I/O are handled in a modern computer system.
The objectives and functions of a file system interface serve many purposes but the main things are it helps with collecting files, storing related data, directory structure, and file protection. Having a file system interface also makes using a computer more convenient. According to the textbook, "A file is a named collection of related information that is recorded on secondary storage"(Silberschatz, A., et al. 2014, p. 478). The basic supported operations of a file system include creating a file, writing a file, reading a file, repositioning within a file, deleting a file, and truncating a file. The main objective of the filesystem is to have the ability to store data and files for easy system recall and the organization of the files.
Below are my unique diagrams of each of the different directory structures
Single level directory:
This type of directory is simple yet very inefficient because all of the files in the same directory must have unique names.
Two-level directory:
This type of directory allows multiple users and each user has its own user file directly.
Tree-structured directory:
The tree has a root directory in every file in the system as a unique path. This is the most common directory structure.
General-graph directory:
This type of directory structure helps with file links both hard links and soft links and helps avoid traversing shared sections which help with performance.
Outline the mechanisms necessary to control the access of programs or users to the resources defined by a computer system.
The mechanisms necessary to control the access of programs to the resources defined by a computer system are ACLs (Access Control Lists) and C-lists(Capability lists).
Access control lists are a permission-based system that gives people in the organization different levels of access to files and information. Accountability is one of the strengths of ACLs. Access control lists will have every user and what kind of access they have for the file in one place so it is easier to find. Another strength of an access control list is that the administrator has the capability of which domain can access the object and what operations are allowed.
One of the strengths of c-lists for security is efficiency because you don’t have to traverse the list to gain access like in the ACL which is one of ACL’s weaknesses. According to the textbook, "To execute operation M on object Oj, the process executes the operation M, specifying the capability (or pointer) for object Oj as a parameter. Simple possession of the capability means that access is allowed"(Silberschatz, Galvin, P. B., & Gagne, G., 2014, p. 613). One of the weaknesses of the c-list is that it lacks accountability because all of the user catalogs and every object that has this possession of the capability have to be looked at.
According to the textbook, "Most systems use a combination of access lists and capabilities. When a process first tries to access an object, the access list is searched. If access is denied, an exception condition occurs. Otherwise, a capability is created and attached to the process"(Silberschatz, Galvin, P. B., & Gagne, G., 2014, p. 614). In my opinion, it makes sense to use both since they both have their advantages and disadvantages.
How security is used to protect programs, systems, and networks from threats.
Security is used to protect programs, systems, and networks from threats by implementing security defenses such as firewalls, biometrics, username and password with multi-factor authentication, administration security policies, and one-time passcode. There are many other ways to protect systems and networks from threats but these are the most common. A lot of companies nowadays use certified ethical hackers to try and hack their network to see how vulnerable their firewall and security policies are so they can get a risk assessment of what needs to be fixed to prevent malicious attacks. They use pen tests or penetration tests to try to exploit programs that may be out of date or have a known security flaw to gain access, they also try to gain access through open ports in the firewall. There is also a lot of network systems that have honeypots to lure hackers to it so security experts can gain more information about the attack or attacker. Security is becoming more and more important with the amount of new technology coming out and is a vital part of technology.
Recommend how you will use these concepts about operating systems theory in future courses and/or future jobs
The concepts I have learned throughout this course are invaluable. It is nice to know what is happening behind the scenes when an operating system is running and how software such as an operating system interacts with the hardware of a computer that allows for efficient and convenient use for the end-user. These concepts will help me have a better understanding of how computers work as well as help me navigate through all the different technological topics with future courses. I hope to one day use this information in the future as a software developer or possibly as a security specialist to protect operating systems from malicious attacks. Knowing the basics of a computer's operating system as well as some of the advanced topics will make my future career/ jobs much easier.
References:
Operating System - Processes - Tutorialspoint. (n.d.). Www.tutorialspoint.com.
https://www.tutorialspoint.com/operating_system/os_processes.htm
Silberschatz, A., Galvin, P. B., & Gagne, G. (2014). Operating system concepts essentials (2nd ed.).
Retrieved from https://redshelf.com/












Comments
Post a Comment