Operating System Course Outline PDF
Document Details
Uploaded by Deleted User
Tags
Summary
This document provides an outline for an Operating System course, covering key areas like Introduction to Operating Systems, Computer System Structure, Processes, CPU Scheduling, Memory Management, and Introduction to Cloud Computing. It seems to be a set of lecture notes or course material rather than an exam paper.
Full Transcript
OS Course Outlines Introduction to Operating Systems Computer System Structure and Organization Operating Systems Structure Processes CPU Scheduling Deadlocks Memory Management Introduction to Cloud Computing Memory Management Need of Memory M...
OS Course Outlines Introduction to Operating Systems Computer System Structure and Organization Operating Systems Structure Processes CPU Scheduling Deadlocks Memory Management Introduction to Cloud Computing Memory Management Need of Memory Management In systems with multiple programs running in parallel, there could be many processes in memory at the same time, and each process may have specific memory needs. Processes may need memory for various reasons: First, the executable itself may need to be loaded into memory for execution. This is usually the instructions or the code that needs to be run. The second item would be the data part of the executable. These could be hardcoded strings, text, and variables that are referenced by the process. The third type of memory requirement could arise from runtime requests for memory. These could be needed from the stack/heap for the program to perform its execution. The OS and the kernel components may also need to be loaded in memory. Additionally, there may be a specific portion of memory needed for specific devices (Ex: printer spooling). Address Binding The program each time executed it is loaded in a different memory location (according to the available spaces at time loading). And so, when the process in waiting state for I/O operation it may be swapped out from main memory to virtual memory (part from secondary storage), and when the waiting state changed to ready, the process must swapped in to main memory which – almost cases- another location in the main memory. That means the addresses of the variables which used in the program, may be changed many times at the runtime!!! To solve this problem, the common solution is to map the program’s compiled addresses to the actual address in physical memory. Logical Address Vs. Physical Address A program will have variables, instructions, and references that are included as part of the source code. The references to these are usually referred to as the symbolic addresses. When the same program gets compiled, the compiler translates these addresses into relative addresses (Logical Address). This is important for the OS to then load the program in memory with a given base address and then use the relative address from that base to refer to different parts of the program. In general, there is not enough physical memory to host all programs at the same time. This leads to the concept of virtual memory that can be mapped to physical memory. The memory management unit is responsible for translating virtual addresses or logical addresses to physical addresses. File Systems Directory Name Space Access Control There are different access levels that can be applied at file and directory levels. The OS provides different access control IDs and permissions to different users on the system. Also, each file may also have different levels of permissions to Read, Write, Modify, and so on. For example, there may be specific files that we may want anyone to be able to access and Read but not Write and Modify. The file system provides and manages the controls to all files when accessed at runtime. These may also be helpful when more than one user is using the same system. Concurrency and Cleanup Control There are many cases when the OS needs to ensure that a file is not moved or deleted when it is in use. For example, if a user is making changes to a file, the OS needs to ensure that the same file cannot be moved or deleted by another application or process. In this case, the OS would cause the attempt to move or delete the file to fail with an appropriate error code. As a programmer, it is appropriate to access a file with the required access level and mode (Read/Write). This also helps to be in line with the concurrency needs of the OS and guards against inconsistent updates. Concurrency and Cleanup Control The OS needs to be able to periodically clear temporarily created files that may no longer be required for the functioning of the system. This is typically done using a garbage collector on the system. Many OSs mark unused files over a period of time and have additional settings that are exposed, which the user can set to clean up files from specified locations automatically.