操作系统--基于Linux的存储管理操作实践超详细/设计/实验/作业/练习)
创始人
2025-05-28 03:51:34
0

目录

  • 课程名:操作系统原理及Linux应用
    • 内容/作用:设计/实验/作业/练习
    • 学习:基于Linux的存储管理操作实践
    • 一、前言
    • 二、环境与设备
    • 三、原理
    • 四、内容
    • 五、总结与分析

课程名:操作系统原理及Linux应用

内容/作用:设计/实验/作业/练习

学习:基于Linux的存储管理操作实践

一、前言

  1. 通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解,熟悉虚存管理的各种页面淘汰法。
  2. 通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。

二、环境与设备

1.软件:虚拟机VMware
2.环境:Linux系统环境

三、原理

   设计一个固定式分区分配的存储管理方案,并模拟实现分区的分配和回收过程。 
   可以假定每个作业都是批处理作业,并且不允许动态申请内存。为实现分区的分配和回收,可以设定一个分区说明表,按照表中的有关信息进行分配,并根据分区的分配和回收情况修改该表。
   设计一个可变式分区分配的存储管理方案,并模拟实现分区的分配和回收过程。 对分区的管理法可以是下面三种算法之一:首次适应算法;最坏适应算法;最佳适应算法。
   编写并调试一个段页式存储管理的地址转换的模拟程序。

四、内容

#include
#include
#include
#define NUM 4
typedef struct partiTab
{int no;int size;int firstAddr;char state;
}PARTITAB;
PARTITAB parTab[NUM];
typedef struct jcb/*定义作业控制块JCB部分信息*/
{char name[10];//作业名int size;//作业大小struct jcb *link;//链指针 
}JCB;
typedef struct
{JCB *front,*rear;
}jcbQue;
jcbQue *jcbReadyQue;
void AllocateMemory(int size)
{int i;PARTITAB p;for(i=0;ip=parTab[i];if(p.state='N' && p.size>size)parTab[i].state='Y';elseprintf("没有空闲分区,无法分配内存!\n");}
}
void createTab()
{int i;for(i=0;i//getPartiTab(PARTITAB);parTab[i].no=i+1;parTab[i].size=20;parTab[i].firstAddr=21;parTab[i].state='N';}
}
void checkTab()
{int i;printf("分区号\t大小\t起址\t状态\n");for(i=0;iprintf("%d\t",parTab[i].no);printf("%d\t",parTab[i].size);printf("%d\t",parTab[i].firstAddr);printf("%c\n",parTab[i].state);}
}
void recycleMemory(int i)
{parTab[i-1].state='N';
}
int main()
{int i;printf("\n\n\t\t*********************************************\t\t\n");printf("\t\t\t\t 存储管理实验\n");printf("\t\t\t\t 固定式分区分配存储管理\n");printf("\t\t*********************************************\t\t\n");createTab();checkTab();printf("请按任意键继续:\n");getchar();printf("每个分区装入一道作业:\n");for(i=0;iAllocateMemory((i+1)*3);}checkTab();printf("请按任意键继续:\n");getchar();printf("假如一段时间后,其中一个作业结束,回收给它分配的分区(假如该作业在第2分区)\n");recycleMemory(2);checkTab();printf("请按任意键继续:\n");getchar();printf("接着,从外存后备作业队列中选择一个作业装入该分区(假如该作业大小为10)\n");AllocateMemory(10);checkTab();return 0;
}

五、总结与分析

   好好学习,天天向上。

相关内容

热门资讯

中证A500ETF摩根(560... 8月22日,截止午间收盘,中证A500ETF摩根(560530)涨1.19%,报1.106元,成交额...
A500ETF易方达(1593... 8月22日,截止午间收盘,A500ETF易方达(159361)涨1.28%,报1.104元,成交额1...
何小鹏斥资约2.5亿港元增持小... 每经记者|孙磊    每经编辑|裴健如 8月21日晚间,小鹏汽车发布公告称,公司联...
中证500ETF基金(1593... 8月22日,截止午间收盘,中证500ETF基金(159337)涨0.94%,报1.509元,成交额2...
中证A500ETF华安(159... 8月22日,截止午间收盘,中证A500ETF华安(159359)涨1.15%,报1.139元,成交额...
科创AIETF(588790)... 8月22日,截止午间收盘,科创AIETF(588790)涨4.83%,报0.760元,成交额6.98...
创业板50ETF嘉实(1593... 8月22日,截止午间收盘,创业板50ETF嘉实(159373)涨2.61%,报1.296元,成交额1...
港股异动丨航空股大幅走低 中国... 港股航空股大幅下跌,其中,中国国航跌近7%表现最弱,中国东方航空跌近5%,中国南方航空跌超3%,美兰...
电网设备ETF(159326)... 8月22日,截止午间收盘,电网设备ETF(159326)跌0.25%,报1.198元,成交额409....
红利ETF国企(530880)... 8月22日,截止午间收盘,红利ETF国企(530880)跌0.67%,报1.034元,成交额29.0...