Thursday, December 13, 2007

Assignment 3

1.Expain the following:
a.Multiprogramming.Why is it used?
Multiprogramming is a feature of an OS which allows running multiple programs simutaneously on 1 CPU. So, say, you may be typing in word, listning to music while in background IE is downloading some file & anti-virus program is scanning. These all happen simultaneously to you. Actually programs dont run simultaneously, but OS divides time for each program acccording to priorities. When the chance of that program comes it runs, after the stipulated time is over, next program runs & so on. Since this process is so fast that it appears programs are running simultaneously.
b. Internal fragmentation.How this it occur?
Internal fragmentation occurs when storage is allocated without ever intending to use it. This space is wasted. While this seems foolish, it is often accepted in return for increased efficiency or simplicity. The term "internal" refers to the fact that the unusable storage is inside the allocated region but is not being used.
c.External fragmentation.How does it occurs?
d.Compaction.Why is it needed?
Compaction is very needed because it is the process of collecting fragments of available memory space into contiguous in block by moving programs and data in acomputer's memory disks, or known as garbage collection.
e.Relocation.How often should it be performed?
It depend on the process of address refferences in program

page 104Exercises:
4.What is the cause of thrashing?
Thrashing is caused by under allocation of the minimum number of pages required by a process, forcing it to continuously page fault.B:How does the operating system detect thrashing?The system can detect thrashing by evaluating the level of CPU utilization as compared to the level of multiprogramming.C:Once thrashing is detcted, what can the operating system do to iliminate it?It can be eliminated by reducing the level of multiprogramming.
5.What purpose does the referenced bit serve in a demand paging system?
The main idea here was to have the operation system maintain its own array of reference bits (that's the easy part) the tricky part is that the OS must somehow learn about the accesses made to pages. The best way to do this was to mark pages as invalid so that an access to the page causes a trap to the OS, which can do the bookkeeping (of course, the OS must keep extra information around to be able to tell which page table entries are truly invalid). The clock algorithm could reset the invalid bit when it checked an accessed page. The extra costs are additional traps to the OS just for normal references (depend on how fast your clock moves) and extra complexity in the OS.

No comments: