OS_作业2
第一题1. 动态内存分配需要对内存分区进行管理,一般使用位图和空闲链表两种方法。128MB的内存以n字节为单元分配,对于链表,假设内存中数据段和空闲区交替排列,长度均为64KB。并假设链表中的每个节点需要记录32位的内存地址信息、16位长度信息和16位下一节点域信息。这两种方法分别需要多少字节的存储空间?哪种方法更好?
内存:$128MB = 2^{27}B$
位图法(一个位来表示其状态(空闲或已分配))
储存空间:$\frac{2^{27}}{n*8}B$
链表法(每个空闲区都有一个节点来记录信息)
数据段和空闲区个数:$\frac{2^{27}}{2^{16}*2}=2^{10}$
储存空间:$2^{10}*2^3=2^{13}B$
两种方法需在不同要求下进行选择,没有绝对的更好。
位图法:
时间成本低:操作简单,直接修改其位图值即可
空间成本固定:不依赖于内存中的程序数量
没有容错能力:如果一个分配单元为1,不能肯定应该为1还是因错误变成1。
空闲链表法:
空间成本:取决于程序的数量。
时间成本:链表扫描通常速度较慢,还要进行链表项的插入、删除和修改。
有一 ...
OS_作业3
第一题
(1)进程整个的地址空间为 $2^{32}$ 字节,一页有 $2^{22}$ 字节
(2)
第一级页表的起始基地址:
根据页表项宇地址空间是线性映射的,0x80000000对应0x80000000 >> 12个页表项
由于一个页表项占4B空间,偏移为0x80000000 >> 12 * 4,即0x200000
起始基地址为0x80200000
通过逻辑地址0x80200000读出第一级页表所在的物理页框号(0x80200800存入数据为0x80200000该起始基地址,绕了两圈又回来了)
注:根据线性映射,每个虚拟地址都存在于某个页表内,可能是页目录项所在页表还是页表项所在页表。但是每个虚拟地址存在其对应的物理地址的条件是其对应的每一级页表都存在相应的的物理页表可供查询。
(3)
0x0访问缺失
0x00803004
页目录项的物理地址:0x1008
页表项的物理地址:0x500c
获取的物理地址:0x20004
0x00402001
页目录项的物理地址:0x1004
页表项的物理地址:0x1008
获取的物理地址:0x5001
注:根据实 ...
OS_作业4
第一题
读者写者问题(写者优先): 1)共享读; 2)互斥写、读写互斥; 3)写者优先于读者(一旦有写者,则后续读者必须等待,唤醒时优先考虑写者)。
123456789101112131415161718192021222324252627282930var mutex, wmutex, rwmutex:psemaphore;var readcount:integer;begin seminit(mutex.v,1;wmutex.v,1;rwmutex.v,1); readcount:=0; cobegin procedure reader; begin P(rwmutex); P(mutex); if readcount=0 then P(wmutex); readcount:=readcount+1; V(mutex); V(rwmutex); read P(mutex); readcount:=readcount-1; if readcount=0 then V(wmutex); V(mutex); end procedure ...
OS_作业5
第一题
(1)
先来先服务:
P1 -> P2 -> P3 -> P4 -> P5
短作业优先:
P2 -> P4 -> P3 -> P5 -> P1
非抢占式的优先数(最高响应比优先FRRF):
P1 -> P2 -> P4 -> P3 -> P5
10 1 1 2 5
轮转法:
P1 -> P2 -> P3 -> P4 -> P5 -> P1 -> P5 -> P1 -> P5 -> P1
P1:2 P2:1 P3:2 P4:1 P5:2 P1:2 P5:2 P1:2 P5:1 P1:4
(2)
先来先服务:
P1:周转时间 10,等待时间 0
P2:周转时间 11,等待时间 10
P3:周转时间 13,等待时间 11
P4:周转时间 14,等待时间 13
P5:周转时间 19,等待时间 14
平均周转时间:\frac{10 + 11 + 13 + 14 + 19}{5} = 13.4
短作业优先:
P1:周转时间 19,等待时间 9
P2:周转时间 ...
OS_作业6
第一题
分析磁盘访问数据的时间。假设磁盘请求以柱面 10、35、20、70、2、3 和 38 的次序进入磁盘驱动器。寻道时磁头每移动一个柱面需要5ms,以下各算法所需的寻道时间是多少:
(1) 先来先服务
(2) 最短寻道时间优先
(3) SCAN 算法
(4) LOOK 算法
说明:假设以上三种情况磁头初始位置为 15。对于(3)和(4),磁头当前向大柱面号方向运行,磁盘最大柱面号为 85。
(1)磁头移动的次序:
15 -> 10 -> 35 -> 20 -> 70 -> 2 -> 3 -> 38
寻道时间:$(5 + 25 + 15 + 50 + 68 + 1 + 35)*5=995$
(2)磁头移动的次序:
15 -> 10 -> 3 -> 2 -> 20 -> 35 -> 38 -> 70
寻道时间:$(5+7+1+18+15+3+32)*5=405$
15 -> 20 -> 10 -> 3 -> 2 -> 35 -> 38 -> 70
寻道时间:$ ...