Operating Systems Theory and Design Final

                                            Features of Contemporary Operating Systems 

      Operating systems are built to act as an interface between the software and hardware in a computer system. The very core of an operating system is known as the kernel. It operates behind the scenes managing processes, memory, files, and input/output devices. The kernel operates in a privilege mode that is separate from the user mode. This  prevents the user or any applications from directly accessing hardware which can cause major problems. Most modern operating systems are modular and use various smaller systems to manage all the resources and software a computer uses. Resource allocation is an important part of what an operating system does. All the parts of the operating system come together to run efficiently, reliably, and with a degree of scalability to keep the computer running optimally. 

Process Sharing and Information Exchange 

Another important job an operating system must do is allow processes to share and exchange information with other processes. Active processes are managed using Process Control Block (PCB), which holds important information such as: process state, program counter, CPU registers, and memory allocation. While most operating systems today support multi-threaded and single-threaded, older operating systems only supported single-threaded systems. This meant that only one process could occur at a time, whereas multi-threading allows for multiple concurrent processes to run at once. This method is more efficient for the computer, but introduces problems that require synchronization to fix. The operating system has to synchronize the processes through methods like locks or software solutions to allow only one thread to execute on a critical section at a given time. Using things like scheduling algorithms, synchronization tools, and communication mechanisms the operating system is able to share information to other parts of the computer safely. 

Main Memory and Virtual Memory 

Memory is a necessary component that allow computers to function. Being able to manage the memory in a computer system effectively is extremely important as it effects the performance of the system. There is a limited amount memory available and every process uses memory, being able to effectively allocate memory is crucial for an operating system to keep the system operating at optimal performance. Main memory is the primary memory used for computers, also known as physical memory. The operating system tracks memory usages between processes and allocates memory for upcoming requests accordingly. Virtual memory acts like an extension of physical memory without using any physical memory. It gives each process its own virtual address to operate in. Using the paging method, the operating system can map a virtual address to a physical one. This allows programs that would not normally be able to execute to do so because they can now fit into a memory address, just not the main memory. Virtual memory also allows for inactive pages to be moved into secondary storages like hard drives and pull active pages. This maximizes the amount of memory that is available to use at once, increasing overall performance. 

  

Files, Mass Storage, and I/O 

The role that the operating system plays in regards to files, mass storage, and I/O are that it allows for data to be transferred, stored, and retrieved when requested. The file system organizes the files using types of directories, these files systems also have the ability to access and affect these files in ways such as read, write, and delete. Mass storage devices are devices like hard drives, solid state drives, and magnetic tapes. They provide non-volatile storage so the files on them will be there even if the computer is powered off and on again. The operating system manages mass storage by using disk scheduling algorithms. I/O operations use drivers to “talk” to the hardware and software to complete the request. 

 

Access Control 

The operating system is in charge of determining who or what has access to specific files, applications, and resources. It ensures certain applications cannot access specific files, or certain users cannot access critical parts, like the kernel. Using access control lists and capability lists the operating system sets what process can be affected by an operation. The CIA triad is a means of security that protects the operating system along with the rest of the computer from malicious code or acts from malicious users. Confidentiality, integrity, and availability are the means the CIA triad protects a computer. 

My Recommendation 

I will take the knowledge learned from this course and use it to fully understand what my operating system is capable of. Understanding how operating systems work will allow me to better choose a new operating system if I choose to switch to a new operating system. I now know what type of operating system I would want for certain jobs, and I will use it to my advantage. The knowledge of operating systems will also help me in future programming classes because I now know that I need to be aware of how the operating system works when I write my code. 

 

Comments

Popular Posts

Post #7 E-commerce Sites

Post #4 Travelling Through a Network