第二次作业

OS concept ver7课本第8章、第九章的习题：

8.3 Given ?ve memory partitions of 100 KB, 500 KB, 200 KB, 300 KB,and
600 KB (in order), how would each of the ?rst-?t, best-?t, and worst-?t
algorithms place processes of 212 KB, 417 KB, 112 KB, and 426 KB (in
order)?Which algorithm makes the most ef?cient use of memory?

8.4 Most systems allow programs to allocate more memory to its address
space during execution.Data allocated in the heap segments of programs
is an example of such allocated memory. What is required to support
dynamic memory allocation in the following schemes:
a. contiguous-memory allocation
b. pure segmentation
c. pure paging

8.12 Consider the following segment table:
Segment Base Length
0 219 600
1 2300 14
2 90 100
3 1327 580
4 1952 96
What are the physical addresses for the following logical addresses?
a. 0,430
b. 1,10
c. 2,500
d. 3,400
e. 4,112

9.5 Assume we have a demand-paged memory. The page table is held in
registers. It takes 8 milliseconds to service a page fault if an empty page
is available or the replaced page is not modi?ed, and 20 milliseconds if
the replaced page is modi?ed. Memory access time is 100 nanoseconds.
Assume that the page to be replaced is modi?ed 70 percent of the time.
What is the maximum acceptable page-fault rate for an effective access
time of no more than 200 nanoseconds?


9.13 A page-replacement algorithm should minimize the number of page
faults. We can do this minimization by distributing heavily used pages
evenly over all of memory, rather than having them compete for a small
number of page frames.We can associatewith each page frame a counter
of the number of pages that are associated with that frame. Then, to
replace a page, we search for the page frame with the smallest counter.
a. De?ne a page-replacement algorithmusing this basic idea. Specif-
ically address the problems of (1) what the initial value of the
counters is, (2) when counters are increased, (3) when counters
are decreased, and (4) how the page to be replaced is selected.
b. Howmany page faults occur for your algorithmfor the following
reference string, for four page frames?
1, 2, 3, 4, 5, 3, 4, 1, 6, 7, 8, 7, 8, 9, 7, 8, 9, 5, 4, 5, 4, 2.
c. What is the minimumnumber of page faults for an optimal page-
replacement strategy for the reference string in part b with four
page frames?

1. 请证明LRU算法不会存在belady现象。

2. 请证明或详细说明FIFO/CLOCK/Enhanced CLOCK是否有belady现象？


实验相关
------------------

1 lab1的proj1的ucore的代码中是否有使用了绝对地址（编译期间指定的绝对内存地址）？

2 lab2 的ucore的小os的load addr和link addr分别是多少?

3 ucore用了哪个数据结构来管理空闲内存，位于内存什么地方，占多少空间？

4 请考虑在ucore中实现second chance/enhanced clock页替换算法的设计思路。主要描述如何利用相关x86相关硬件、如何设计数据结构，大致要实现哪些函数，函数的大致功能和整体流程。 

5 实现enhanced clock algorithm中，
IF before clock sweep: (used,dirty) = (1,1), THEN after clock sweep: (used, dirty)=(0,1).
如果把上述转换改为：
IF before clock sweep: (used,dirty) = (1,1), THEN after clock sweep: (used, dirty)=(1,0).
是否可行？

6 在clock算法实现中，pte中的uesd bit位是否可以让os来设置1 or 0 ? 为什么？

7 在enhanced clock算法中的dirty bit位是否可以让os来设置1 or 0 ? 为什么？

8 如果在ucore中实现精确的LRU算法，如何设计？需要硬件和OS分别完成什么事情？

9 如果在ucore中实现工作集页替换算法和缺页频率替换算法，如何设计？


