模拟存储器管理C语言,操作系统-存储器管理实验C语言.doc
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define SizeOfBlock 128
#define M 4
struct info//页表
{
int block;//物理页架号
int disk;//在磁盘上的物理块号
int flag; //内外标志
}pagelist[10];
int po;//队列标记
int t[M];
po=0;
//页表初始化
void init()
{ int i;
printf("页表初始化\n");
for(i=0;i<=9;i++)
{pagelist[i].flag=0; //所有的逻辑页都不在内存
printf("请输入第%d个逻辑页在外存的块号:",i);
scanf("%d",&pagelist[i].disk);
}
}
//地址重定位,请同学们自己完成
void work()
{
int i,logicPage,lPage,pageAddress,phsicAddress;
printf("读入四个逻辑页到内存中,并输入对应的物理页架:\n");
for(i=0;i
{
printf("读入逻辑页号:");
scanf("%d",&logicPage);
while(logicPage>=10)
{
printf("逻辑号出界!重新输入");
printf("读入逻辑号:");
scanf("%d",&logicPage);
}
printf("读入对应的物理页架:");
scanf("%d",&pagelist[logicPage].block);
pagelist[logicPage].flag=1;
}
do{
printf("读入逻辑页号和页内地址:");
scanf("%d",&lPage);
scanf("%d",&pageAddress);
if(lPage>=10)
printf("地址越界!\n");
else if(pagelist[lPage].flag==1)
{
for(i=0;i
{
if(lPage==i)
{
phsicAddress=pagelist[lPage].block*SizeOfBlock+pageAddress;
printf("物理地址是:%d\n",phsicAddress);
break;
}
}
}
else
{
printf("发生缺页中断!");
pagelist[po].disk=pagelist[po].block;
pagelist[po].flag=0;
pagelist[po].block=pagelist[lPage].block;
pagelist[lPage].flag=1;
phsicAddress=pagelist[po].block*SizeOfBlock+pageAddress;
po++;
if(po>4)
{
po=0;
}
printf("物理地址是:%d\n",phsicAddress);
}
}while(lPage!=-1);
}
/*输出菜单*/
void printfunc(void)
{printf(" **********************************\n");
printf(" * 1-虚拟页式管理的地址重定位 *\n");
printf(" * 0-exit *\n");
printf(" **********************************\n");
}
/*主函数*/
int main()
{
int choice;
printfunc();
do
{printf("please input the number:");
scanf("%d",&choice);
getchar();
switch (choice)
{case 1:
init(); //页表初始化
work();//地址重定位
printfunc();
break;
case 0:exit(0);
}
}while(1);
}
模拟存储器管理C语言,操作系统-存储器管理实验C语言.doc相关推荐
- 操作系统——存储器管理
操作系统--存储器管理 程序的装入和链接 用户程序想要在系统中运行,必须先将他装入内存,然后再将其转变为一个可执行的程序,步骤: 编译-->链接-->装入 程序的装入: 绝对装入方式:(只 ...
- 操作系统——存储器管理的功能
一. 内容总览 二. 内存空间的分配和回收 为了能将用户程序装入内存,必须为它分配一定大小的内存空间.连续分配方式是最早出现的一种存储器分配方式 该分配方式为一个用户程序分配一个连续的内存空间,即程序 ...
- c语言选择结构程序设计实验报告6,c语言-选择结构程序设计实验报告4.doc
c语言-选择结构程序设计实验报告4.doc 实验报告 实验题目:选择结构程序设计 实验目的: 了解C语言表示逻辑量的方法(以0代表"假"以非0代表"真"). 学 ...
- 操作系统-存储器管理实验
存储器管理 一.目的 本课题实验的目的是,使学生实验存储器管理系统的设计方法:加深对所学各种存储器管理方案的了解:要求采用一些常用的存储器分配算法,设计一个存储器管理模拟系统并调试运行. 二.题目 存 ...
- 操作系统存储器管理管理试验
存储器管理 一.目的 本课题实验的目的是,使学生实验存储器管理系统的设计方法:加深对所学各种存储器管理方案的了解:要求采用一些常用的存储器分配算法,设计一个存储器管理模拟系统并调试运行. 二.要求及提 ...
- 操作系统—存储器管理
存储器管理 1 存储器的层次结构 计算机执行时,几乎每条指令都涉及对存储器的访问.因此要求对存储器的访问速度跟得上处理机的运行速度.考虑到价格和现实因素,如今的计算机大都采用了多层结构的存储器系统 ...
- 操作系统——存储器管理(连续分配存储管理方式)
文章目录 一.单一连续分配 二.固定分区分配 1. 划分分区的方法 2. 内存分配 三.动态分区分配 1. 动态分区分配中的数据结构 2. 动态分区分配算法 3. 分区分配操作 四.基于顺序搜索的动态 ...
- linux 进程管理 ppt,linux操作系统-进程管理和打印管理.ppt
<linux操作系统-进程管理和打印管理.ppt>由会员分享,可在线阅读,更多相关<linux操作系统-进程管理和打印管理.ppt(25页珍藏版)>请在装配图网上搜索. 1.进 ...
- c语言des算法实验报告,C语言实现DES算法实验报告解析.doc
C语言实现DES算法实验报告解析 xx工程大学 实验报告 (2015-2016学年第一学期) 报告题目: DES加密算法 课程名称: 密码学B 任课教员: 专 业: 学 号: 姓 名: 二O一六年一月 ...
最新文章
- 特斯拉再裁员3000多人,马斯克称别无选择
- 背包九讲之四(混合三种背包问题)
- YbtOJ-森林之和【dp】
- 需要清除memcach缓存方能解决的几个报错
- Velocity 语法学习
- angular学习笔记(六)-非入侵式javascript
- Andoid Activity.getWindowManager().getDefaultDisplay().getWidth()已被废弃
- 某一天,忽然发现自己坚持不下去了。(无关计算机,只是一些自己的困惑和感想)
- 十、垃圾回收策略概览
- 软件测试人员工作计划怎么写,软件测试个人工作计划.docx
- 问题:虚拟机安装Ubuntu时,显示PXE-MOF:Exiting Intel PXE ROM.Operating Systen not found
- 2022最新7个开源Kubernetes(k8s)开发工具
- 高项47个过程及输入、输出、工具解释
- 作品交流:调制解调-勘误情况
- delphi网络时间校对
- thinkphp5.1+workman+jsonRpc
- 前端面试题——计算机网络 高频
- linux识别不了u盘格式,Linux识别不了u盘怎么办
- OAuth2学习(二)——OAuth2实战
- ubuntu16怎么升级到ubuntu18