Operating Systems
Computer Science 354
Dickinson College
Fall Semester 1996
TTh 2:00 - 3:15
Bosler 221
Class #17 Reading Assignment:
Operating Systems Concepts (OSC)
Chapter 8 - Section 8.7
Chapter 9 - Sections 9.4-9.7
Modern Operating Systems (MOS)
Chapter 3 - Sections 3.4-3.6, 3.7.3 - Optional
Design and Implementation of the 4.4 BSD OS. (BSD)
Sections 5.12, 5.13 - Optional
Thought Questions:
- 8.7 refers to the address space of the Motorola 68000 line as being a flat address space. What is a flat address space? How is it different than the 80x86 line which uses segmentation?
- OSC 8.7.1 discusses Multics on a GE645 the following questions relate to that section.
- Why is there no need for empty segment table entries? How is this supported?
- Why is external fragmentation a bigger problem when the average segment size is large as compared to when it is small?
- Why did they decide to split the address up the way they did? In particular why is S1 8 bits and S2 10 bits?
- Why is the key value in the 16 word associative memory the concatination of the segment number and the page number? Why can it just be the page number or just the segment number?
- OSC 8.7.2 discusses 32 bit OS/2 running on a 386/486 machine, the following question relate to that section.
- What is the purpose of having segments that are private to the process? Of having segments that are shared amoung all processes?
- What is a linear address? Is it a location in physical memory or logical memory or neither?
- Why is the page offset in the linear address 12 bits long?
- The page number of the linear address is split up in to two 10 bit pieces, P1 and P2. These are used to index the Page directory and the Page tables respectively. Given that the system wants to page the page tables does this scheme seem to make effecient use of the space? How might the page directory base register be used to help this situation (see fig 8.28)?
- The offset is never checked to see if it is larger than an extent or limit register. Why isn't this checked on the 386? What are the implications of not checking the offset?
- How many pages long is the process that was used to create figure 9.7?
- What are some possible reasons that the curve in figure 9.7 does not pass through the point (4,4)? Why might you suspect that it should pass through (4,4)? Why might that not be a correct expectation?
- What is Belady's anomoly? What types of situations cause Belady's anomaly to appear? Can you come up with another reference string that doesn't cause Belady's anomaly to show up? Can you come up with another one that does cause it to show up?
- Under what condidtions could you implement an optimal page replacement algorithm?
- In the LRU algorithm the recent past is used as an approximation of the near future. What does that mean in terms of page replacement? Is it a valid assumption that the recent past is an approximation of the near future? Why or why not? / or when is it and when is it not?
- How could you consider overflow of the clock in the counter method of implementing the LRU algorithm?
- What are some of the reasons that the LFU and MFU algorithms do not approximate OPT replacement very well?
- What is the minimum number of frames that can be allocated to a process running on a machine that uses 5 level indirect addressing as mentioned in OSC 9.6.1?
- The first sentence of OSC 9.7 says that the execution of a low priority process must be suspended if the number of pages allocated to it falls below the minimum number required by the architecture. What does that mean? What type of paging scheme is the author assuming? What about a high priority process?
- Can you think of an everyday analogy to thrashing as described in OSC 9.7.1?
- Why would cacheing be useless if data accesses were random? What does this mean about the effectiveness of using a TLB to reduce the effective memory access time?
- Does a high page fault rate necessaraly indicate thrashing as suggested in OSC 9.7.3?
These pages designed and maintained by Grant Braught
Braught@Dickinson.edu