Monday, December 10, 2007
a. Multiprogramming. Why is it used?
-Multiprogramming makes effifcient use of the CPU by overlapping the demands for the CPU and its I/O devices from various users. It attempts to increase CPU utilization by always having something for the CPU to execute.
b. Internal fragmentation. How does it occur?
Experiencing Internal Fragmentation Errors only when the IMG function tries to create a partition. Problem occurs when version 4.01 tries to create a partition during the image restore process. Pieces of files within a designated swap file area become fragmented.
c. External fragmentation. How does it occur?
the external fragmentation is to create a minimum swap file size that somewhat exceeds the usual size of your swap file. If your swap file exceeds the minimum, external fragmentation will occur. Setting a maximum that may be exceed is ill advised as it can crash your system if it is exceeded.
d. Compaction. Why is it needed?
e. Relocation. How often should it be performed?
relocation is the process of replacing symbolic references or names of libraries with actual usable addresses in memory before running a program. It is typically done by the linker during compilation, although it can be done at run-time by a loader. Compilers or assemblers typically generate the executable with zero as the lower-most, starting address. Before the execution of object code, these addresses should be adjusted so that they denote the correct runtime addresses.
2. Describe the major disadvantages for each of the four memory allocation schemes presented in the chapter.
3. Describe the major advantages for each of the memory allocation schemes presented in the chapter.-
question # 4
What is the cause of thrashing?
Cause of ThrashingThrashing results in several performance problems. Consider the following scenario, which is based on actual behavior of early paging systems.The operating system monitors CPU utilization. If the CPU utilization is too low, we increase the degree of multiprogramming by introducing new process to the system. A global page-replacement algorithm is used; it replaces pages without regard to the process which they belong. Now suppose that a process enters a new phase in its execution and needs more frames. Its starts faulting and taking frames away from other processes. These processes need those pages, however, and so they also fault, taking frames away from other processes. These faulting processes must use the paging device to swap pages in and out. As they queue up for the paging device, the ready queue empties. As the processes wait for the paging device, CPU utilization decreases.The CPU scheduler sees the decreasing CPU utilization and increases the degree of multiprogramming as a result. The new process tries to get started by taking frames from running processes, causing more page faults and a longer queue for the paging device. As a result CPU utilization drops even further, and CPU scheduler tries to increase the degree of multiprogramming even more. Thrashing has occurred, and system throughput plunges. The page fault rate increases tremendously. As a result, the effective memory-access time increases. No work is being done.
How does the operating system detect thrashing?
It doesn't. An operating system would have no idea that thrashing is happening. The OS would be responsible for making use of virtual memory to make up for the lack of physical RAM during a particular computing session, but would have no concept that this is causing issues with hardware.
Once thrashing is detected, what can the operating system do to eliminate it?
Thrashing is usually a symptom of low memory in your system. To minimize it, try adding more memory to your computer or try to cut down on use interface elements that use extra memory like complicated background images and detailed icons.