实验五 存储管理实验
#include"stdio.h" #include"stdlib.h" #include"time.h" struct wuli{int wuli_number;char pname; /*已分配区表登记栏标志,用"0"表示空栏目*/ }; /*内存表*/ struct wuli wuli_table[20]={0}; struct page{ char pname;//进程名称int psize;//进程大小 int pagetable[10];//进程页表 };//页表 struct page page_table[10]={0};int allocate(int wulisize,int i,int pagesize);//为进程分配内存空间 int reclaim(int wulisize,char pname);//释放进程占用的空间void output(); int main() {int pagesize;//分页大小int wulisize=80;//内存大小char pname;int xuanze;//操作选择int i;printf("输入页面大小:\n");scanf("%d",&pagesize);//初始化for(i=0;i<20;i++){wuli_table[i].wuli_number=i;wuli_table[i].pname='0';}for(i=0;i<10;i++){page_table[i].pname='0';}//初始化后的内存空间有一部分已经被使用 srand((unsigned)time(NULL));for(i=0;i<7;i++){int number=rand()%19+1;wuli_table[number].pname='a';wulisize--;}output();//进入存储分配while(wulisize!=0){printf("选择操作\n1.分配 2.回收\n");scanf("%d",&xuanze);if(xuanze==1){for( i=0;i<10;i++){if(page_table[i].pname=='0'){getchar();printf("输入进程名称:");scanf("%c",&page_table[i].pname);getchar();printf("输入进程大小:");scanf("%d",&page_table[i].psize);break;}}wulisize=allocate(wulisize,i,pagesize);}else{printf("输入进程名称:");getchar();scanf("%c",&pname);wulisize=reclaim(wulisize,pname);}output();}return 0; }int allocate(int wulisize,int i,int pagesize) {int k;int j;for(k=0;k<(page_table[i].psize/pagesize);k++){for( j=0;j<20;j++){if(wuli_table[j].pname=='0'){wuli_table[j].pname=page_table[i].pname;page_table[i].pagetable[k]=j;wulisize--;break;}}}return wulisize; }int reclaim(int wulisize,char pname) {int j;int k;for( j=0;j<20;j++){if(wuli_table[j].pname==pname){wuli_table[j].pname='0';wulisize++;}}for (j=0;j<10;j++){if(page_table[j].pname==pname){page_table[j].pname='0';page_table[j].psize=0;for(k=0;k<10;k++){page_table[j].pagetable[k]=0;}break;}}return wulisize; }void output(){int i;printf("————————内存分配情况——————————\n");printf("物理块号 进程名\n");for(i=0;i<20;i++){printf("%d %c\n",wuli_table[i].wuli_number , wuli_table[i].pname);} }
转载于:https://www.cnblogs.com/badgood/p/4600862.html
实验五 存储管理实验相关推荐
- 操作系统实验五--存储管理
文章目录 操作系统实验五--存储管理 一.实验目的 二.实验内容 三.设计原理及相关算法 四.结果分析 五.源代码 操作系统实验五–存储管理 一.实验目的 1.了解虚拟存储技术的特点,掌握请求页式存储 ...
- 计算机网络实验五,计算机网络(实验五).docx
计算机网络(实验五).docx 实验五一.实验内容在这个实验室里,我们将探讨ICMP 协议得几个方面由 Ping 项目产生得P 信息Tracer ute程序生成得C消息关于 CM 信息得格式与内容.在 ...
- 计算机系统(1) 实验五 中断实验
计算机系统(1) 实验五 中断实验 一.实验目的 二.实验背景及要求 (一)实验背景: (二)实验要求:实现三部分程序 1.用户程序: 2.键盘中断处理程序: 3.操作系统使能代码: 三.实验步骤 1 ...
- C#面向对象程序设计课程实验五:实验名称:C#面向对象技术
C#面向对象程序设计课程实验五:实验名称:C#面向对象技术 实验内容:C#面向对象技术 一. 实验目的及要求 二.实验环境 三.实验内容与步骤 3.1.实验内容:测试类,实现多态 3.2.实验步骤 3 ...
- <微机原理>[汇编语言]-[实验五] 定时器实验
实验五 定时器实验 一.实验目的 学习定时器的工作原理及使用方法. 学习定时器的初始化程序.应用程序的编写和调试. 二.实验仪器 Keil5 普中A2开发板 stc-isp 三.实验内容 数码管间隔一 ...
- 广州大学计算机网络实验五,计算机网络实验五.doc
计算机网络实验五 广州大学学生实验报告 开课学院及实验室:计算机学院,电子信息楼416A室 2014年 12 月 10日 学院计算机科学与教育软件学院年级/专业/班计科122姓名庞彬学号1206100 ...
- 南京晓庄学院java实验五_Java实验四和实验五
实验四 类的继承性和多态性 [开发语言及实现平台或实验环境] Windows2000 或XP,JDK1.6与Jcreator4.0 [实验目的] 1. 掌握OOP方式进行程序设计的方法, 2. 了 ...
- 操作系统实验五 存储管理
★观前提示:本篇内容为操作系统实验内容,代码等内容经测试没有问题,但是可能会不符合每个人实验的要求,因此以下内容建议仅做思路参考. 目录 一.实验目的 二.实验内容 三.具体实现 四.实验总结 一.实 ...
- GIS二次开发:实验五 综合实验
一.实验目的 1.掌握栅格数据读取与另存: 2.掌握地图制图工具的实现: 3.基于遥感影像的森林资源信息管理与更新系统的实现 二.实验仪器与设备 计算机.visual studio 软件.ArcGIS ...
- 实验五 MapReduce实验:单词计数
实验指导: 5.1 实验目的 基于MapReduce思想,编写WordCount程序. 5.2 实验要求 1.理解MapReduce编程思想: 2.会编写MapReduce版本WordCount: 3 ...
最新文章
- 15天Python入门-3-流程控制-选择结构
- 【Web安全】先进技术WebSocket下安全测试
- 【杂谈】2020年有三AI计算机视觉培养计划详解,该不该学怎么学CV的简单讨论...
- 33. 脱壳篇-重建输入表
- Java跨域请求cooking共享,关于HTML5中的sessionStorage和localStorage
- ubuntu1204 dvd 用tweak后界面起不来 swap设置4g足够32位系统软件用
- npm卸载全局安装的第三方插件注意事项
- linux(Ubuntu)系统解决校园网锐捷客户端联网问题
- 前端开发必备,【项目实战】
- 项目经理和产品经理的区别
- 《网络渗透技术》 强烈推荐
- macOS: 卸载 Flash Player 迎接 2021
- 使用 meson 编译代码
- Android新浪微博实训报告,完成一份新浪微博目标用户分析报告
- 教你自动识别查询快递单号的全部物流信息
- 机器学习之One-Hot Encoding详解
- Android画布放大缩小,android画板---涂鸦,缩放,旋转,贴纸实现
- IPhone 视图切换的的2种方法
- GEE5:kNDVI植被指数的获取
- 映射和反射的概念及应用方法
热门文章
- 手机能识别sim卡但是没信号_一篇文章扫盲手机SIM卡相关知识
- nginx中的共享内存的3种方式
- 2018年英语计算机职称考试,2018年高级职称计算机考试内容介绍
- docker中运行mysql5.7,使用navicat链接报错10061/10060
- 【渝粤教育】国家开放大学2018年秋季 1141t工程经济与管理 参考试题
- 有监督的神经网络模型
- JD_Source Code for problem 1259
- error: #error regenerate this file with a newer version of protoc.
- 推荐系统000111
- from django.core.context_processors import crsf报错