资源简介
c 实现操作系统的分页管理 空闲分区链 实验课编写的可能会有些逻辑错误 可以运行
代码片段和文件信息
#include
using namespace std;
int position_now=0;
int scale_now=640;
typedef struct Work_node
{
int work;
int position;
int scale;
struct Work_node *pNext;
}WORK_NODE*PWORK_NODE;// WORK_NODE等价于struct Work_node;PWORK_NODE等价于struct Work_node*;数据类型
PWORK_NODE work_first=(PWORK_NODE)malloc(sizeof(WORK_NODE));
PWORK_NODE work_tail=work_first;
int work_count=0;
void Insert_List_work(int workint scale)
{
PWORK_NODE m=(PWORK_NODE)malloc(sizeof(WORK_NODE));
m->work=work;
m->scale=scale;
m->position=position_now;
m->pNext=NULL;
if(work_count==0)
work_first=work_tail=m;
else
{
work_tail->pNext=m;
work_tail=m;
}
work_count++;
}
void Delete_List_work(int work)
{
PWORK_NODE p=work_first;
PWORK_NODE m=work_first;
while(p->work!=work)
{
m=p;
p=p->pNext;
}
position_now=p->position;
scale_now=p->scale;
if(p==work_first)
{
work_first=p->pNext;
}
else
{
m->pNext=p->pNext;
}
work_count--;
}
typedef struct Space_node
{
int position;
int scale;
struct Space_node *pNext;
}SPACE_NODE*PSPACE_NODE;// SPACE_NODE等价于struct Space_node;*PSPACE_NODE等价于struct Space_node*;数据类型
PSPACE_NODE space_first=(PSPACE_NODE)malloc(sizeof(SPACE_NODE));
int space_count=1;
void Allocate_List(int scale)
{
if(scale_now==640)
{
PSPACE_NODE m0=(PSPACE_NODE)malloc(sizeof(SPACE_NODE));
m0->position=0;
m0->scale=640;
m0->pNext=NULL;
space_first=m0;
}
PSPACE_NODE p=space_first;
if(p->scale p=p->pNext;
p->position+=scale;
p->scale-=scale;
position_now=p->position;
scale_now=p->scale;
}
////////////////首次适应算法///////////////////////
/*
void Free_List()
{
PSPACE_NODE m=(PSPACE_NODE)malloc(sizeof(Space_node));
m->position=position_now;
m->scale=scale_now;
PSPACE_NODE p=space_first;
PSPACE_NODE n=space_first;
while(p->position {
n=p;
p=p->pNext;
}
if(p==space_first)
{
if(m->position+m->scale==p->position)
{
p->position-=m->scale;
p->scale+=m->scale;
}
else
{
space_first=m;
m->pNext=p;
space_count++;
}
}
else if(n->position+n->scale==m->position)
{
n->scale+=m->scale;
free(m);
}
else if(n==space_first)
{
space_first=m;
m->pNext=p;
space_count++;
}
else
{
m->pNext=p->pNext;
n->pNext=m;
space_count++;
}
}*/
/////////////////////////////////////////////
////////////////////最佳适应算法/////////////////////////
void Free_List()
{
PSPACE_NODE m=(PSPACE_NODE)malloc(sizeof(Space_node));
m->position=position_now;
m->scale=scale_now;
PSPACE_NODE t=space_first;
int flag=
- 上一篇:mfc虚拟桌面
- 下一篇:MFC美化-SkinSharp库使用方法和经典例程
相关资源
- 操作系统c语言模拟文件管理系统844
- 操作系统课设 读写者问题 c语言实现
- ROS操作系统入门讲义
- Linux操作系统下C语言编程从零开始
- 操作系统存储管理实验报告c/c++
- 操作系统课程设计(银行家算法)附
- 现代操作系统第三版高清
- C++操作系统课设-进程管理
- 哲学家进餐问题的c++模拟实现
- 操作系统课程设计(生产者-消费者存
- 操作系统——5个实验.zip
- 操作系统进程管理实验
- 操作系统—页面置换算法C++实现
- 操作系统 内存管理 模拟 图形界面
- 银行家算法 mfc 含源代码 界面 操作系
- 操作系统生产者消费者问题MFC动态实
- 操作系统课程设计:Windows 命令接口之
- 操作系统课程大作业-文件管理系统
- C语言实现最低松弛度优先算法源代码
- 操作系统信号量PV经典问题:沉睡的理
- 基于C++的银行家算法模拟实现
- 生产者消费者问题源码-MFC实现-进程模
- 操作系统实验 进程调度 高响应比优先
- 操作系统文件管理C++代码实现
- 嗜睡的理发师进程同步与实现c++
- 安徽大学操作系统实验八基于扫描的
- 安徽大学操作系统实验四主存空间的
- 操作系统——银行家算法
- 操作系统_生产者消费者c++、mfc实现
- 磁盘调度c++模拟实现计算机操作系统
评论
共有 条评论