- 0
- 0
- 约5.09千字
- 约 57页
- 2021-09-04 发布于江苏
- 举报
第六章 存储管理;6.1 存储管理功能;6.1 存储管理功能(Cont.);6.2 内存资源管理;;字位映象图(bit map);空闲页面表;空闲页面链;动态异长分区的分配;最先适应算法(First Fit);最佳适应算法(Best Fit);最坏适应算法(Worst Fit);UNIX存储分配--FF;malloc(mp,size)
struct map, *mp;
{ register int a;
register struct map *bp;
for(bp = mp; bp-m_size; bp++){
if (bp-m_size = size) {
a=bp-m_addr;
bp-m_addr =+ size;
if ((bp-m_size =- size) == 0)
do {
bp++;
(bp-1)-m_addr = bp-m_addr;
}while((bp-1)-m_size = bp-m_size);
return(a);
}
}
return(0);
};mfree(mp,size,aa)
struct map *map;
{ register struct map bp;
register int t,a;
a = aa;
for(bp=mp; bp-m_addr=a bp-m_size !=0; bp++);
if(bpmp (bp-1)-m_addr+(bp-1)-m_size == a) { //与前合并
(bp-1)-m_size =+ size;
if (a+size == bp-m_addr){ //前后合并
(bp-1)-m_size =+ bp-m_size;
while (bp-m_size) {
bp++;
(bp-1)-m_addr = bp-m_addr;
(bp-1)-m_size = bp-m_size;
}
}
}; }else{
if (a+size == bp-m_addr bp-m_size) { //与后合并
bp-m_addr =- size;
bp-m_size =+ size;
} else if (size) do { //无合并
t = bp-m_addr;
bp-m_addr = a;
a = t;
t = bp-m_size;
bp-m_size = size;
bp++;
}while (size = t);
}
};6.2.3 碎片处理;6.3 存储管理方式;6.3.1 界地址管理方式;6.3.1 界地址管理方式;6.3.1 界地址管理方式;6.3.1 界地址管理方式;6.3.2 分页式存储管理(paging);6.3.2 分页式存储管理;3. 进程空间与内存空间对应关系;4. 所需表目:;逻辑地址(p,d
原创力文档

文档评论(0)