|Types of Operating System|
Types of Operating System
One of the main limitations imposed on programmers in the early days of computing was the size of the computer's memory. If the program was larger than the available memory, it could not be loaded, which placed severe restrictions on program size. The obvious solution would be to increase the amount of memory available, but this would significantly increase the cost of the computer system. One way for a programmer to overcome these limitations was to use overlays. The programmer divided the program into a number of logical sections. A small portion of the program had to remain in memory at all times, but the remaining sections (or overlays) were loaded only when they were needed. The use of overlays allowed programmers to write programs that were much larger than physical memory, although responsibility for managing memory usage rested with the programmer rather than the operating system.
- The entire program and data of a process must be in the physical memory for the process to execute.
- The size of a process is limited to the size of physical memory.
- If a process is larger than the amount of memory, a technique called overlays can be used.
- Overlays is to keep in memory only those instructions and data that are needed at any given time.
- When other instructions are needed, they are loaded into space that was occupied previously by instructions that are no longer needed.
- Overlays are implemented by user, no special support needed from operating system, programming design of overlay structure is complex
When this supply becomes low, OS uses page stealing to replenish it, that is, it takes a frame assigned to an active user and makes it available for other work. The decision to steal a particular page is based on the activity history of each page currently residing in a central storage frame. Pages that have not been active for a relatively long time are good candidates for page stealing.
This is a stage which occurs in FIFO page replacement algorithm, in which a large number of page fault happens.
Task are usually assigned with priority at times it is necessary to run a certain task that has higher priority before another task although it is running therefore the running task is interrupted for some time and resumes later when the priority task has finished its execution. This is called preemptive scheduling
In non preemptive scheduling a running task is executed till. it cannot be interrupted