Sunday, September 18, 2022

 

Operating System Theory Final Project - CPT304 

       Summary Blog Post

         One of the key features of a contemporary operating system (OS) is the software needed to allow application programs like word and excel to run concurrently on the computer architecture. Since the CPU can only run one process at a time, the OS is used to manage when a process can access the CPU. The software used by the OS includes the code to manage; the memory, the file system, access to the CPU, and control for the I/O devices connected to the computer. The operating system memory management is needed to coordinate which applications programs will be stored in RAM and which will be stored on hard disk. The OS file system management organizes and keeps track of all programs and file on the hard disk, making it easier to access and retrieve files needed to run applications. The OS also determines when the CPU can be access by programs, devices, and other computers. Also, the OS is used to control I/O devices connected to the computer. See Figure 1.




Figure 1 - Operating System Theory Concept Map

        Operating systems enable processes to share information by allowing the contents of RAM memory, virtual memory, registers, the stack, schedulers, and multiplexors to be accessed by each process. An example of this is the storage and retrieval of information from executing a multithread user task. Also, the operating system allocates resources, provides protection, and security for the processes. “Operating system implements two basic functions below [1,2]: it must be simply use as extension machine and it must manage and distribute all kinds of resources reasonably as the manager of the computer system. In addition, some operating system also takes charge of the computer system’s safety and provides application-specific services, such as networking, graphic interface and so on [3,4].” (Jiang et. Al, (2010), page 2). See Figure 2 for example of OS processes and threads.

 

Figure 2 - Hierarchy of Operating System Subsystems


         Because the physical address space in a computer is limited to the size of the registers, caches, and RAM., resources such as code, data and files are shared. The total amount of memory stored on these devices is often not large enough to load and run all jobs to be executed. To solve this issue, memory-management can use virtual memory algorithms that uses the basic hardware to hold address and data information of files in the secondary storage unit that need to be bind to logical memory addresses and moved to an actual memory address when executed. These files are stored in a file system to be accessed by the OS when needed. See Figure 3.

Figure 3 – Memory Management


        The objective of file systems management, mass storage, and I/O code in the OS is to organize information in files on the secondary storage media, and to send and receive information from devices connected to the computer so it is easy to retrieve. The goal is to configure files in a format that will be efficient, fast, and easy locate, and allow a user to read, write, modify, or delete them from the hard disk. Also, the file systems management will allow the user to set parameters of a file that includes a file name, identifier, file type, size, logical address (location) on the hard disk. In addition, the time, date, user identification, are defined in a table when the directory list command is used. There are four basic types of directory structures, they are the single-level directory, the two-level directory, the tree-structure directory, and the acyclic-graph directory. Because of issues with overwriting file for the single-level directory, limited expansion for the two-level directory, and redundant files in the tree-structure directory, I would use the acyclic-graph directory structure. The Acyclic-graph directory allows sharing of directories and subdirectories. "With a shared file, only one actual file exists, so any changes made by one person are immediately visible to the other. Sharing is particularly important for subdirectories; a new file created by one person will automatically appear in all the shared subdirectories." (Silberschatz, A., Et al, p. 497). See Figure 4.

  



Figure 4 – Acyclic-graph File System

        One of the key mechanisms used by the OS to control access to devices is the controller. Controllers are a scaled down computer with only the necessary features and capabilities to do the functions it was design for such as, read the input from the keyboard or output data to the screen. Controllers can be found inside memory devices like RAM, Hard disks, the tape drive that runs the backup tapes, and in USB drives. In addition, controllers are used to control the flow of data on busses like the data bus and direct memory access (DMA) bus, the control the display devices like LCD monitors, and they control the input and output of data to the computer with network interface cards, serial ports, SCSI ports and more. See Figure 5.    

Figure 5 – Files, Mass Storage, and I/O Management using Controllers

 

        For future courses or jobs that involve software projects that need to interface with an OS, I would use the knowledge learn about processes and threads to maximize the capabilities of a uniprocessor or multiprocessor by including code that will allow processes or tasks to share resources and defined in the system architecture. Another thing I would include are the device libraries to provide code for controllers connected to the input and output devices needed. In cases where multi-users are required, an acyclic-graph file system would be used to allow common files to be shared and I would include protection and security measures such as passwords, encryption, and restrict user access as needed using permissions setup by the system administrator. 



Reference

Jiang, H., Gao, W., Wang, M., See, S., Yang, Y., Liu, W., and Wang, J. (2010), Research of an architecture of operating system kernel based on modularity concept, Mathematical and Computer Modelling, Volume 51, Issues 11–12, Pages 1421-1427, ISSN 0895-7177, https://doi.org/10.1016/j.mcm.2009.10.006. (https://www.sciencedirect.com/science/article/pii/S0895717709003

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

 







Featured Post

  Operating System Theory Final Project - CPT304         Summary Blog Post            One of t he key features of a contemporary operating...

Popular Posts