资源简介
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库使用方法和经典例程
相关资源
- 操作系统 4种经典同步互斥问题
- 广工操作系统课设:多道批处理系统
- 操作系统抢占式动态优先级调度算法
- 操作系统课设__多道批处理系统两级调
- 计算机操作系统实验报告,C语言实现
- 操作系统基本分页存储系统
- 操作系统实验报告处理机调度算法的
- 安徽大学操作系统实验九最终考试内
- 动态分区分配方式的模拟
- 操作系统电梯调度算法
- nachos操作系统实验三
- 用C\\C++实现操作系统经典同步问题,
- NUR算法和OPT算法实现-----操作系统实验
- 操作系统模拟实现单级目录的文件系
- FCFS和SJF调度算法C++
- 进程同步操作系统实验三,带实验报
- 操作系统的理发师问题解决文件打包
- 操作系统调度算法c语言实现
- 操作系统实验-计算机进程管理和进程
- 操作系统课程设计之进程调度源代码
- 操作系统 动态分区存储管理方式的
- 《 Linux操作系统下C语言编程入门》
- 操作系统内存分配C++实现
- 操作系统 读者写者问题c++
- 操作系统实习-快速文件系统
- 操作系统实习:动态分区分配C++实现
- 操作系统c语言模拟作业调度实验
- 进程调度时间片轮转+优先级进程调度
- 操作系统课程设计 文件管理系统模拟
- spooling模拟系统代码.docx
评论
共有 条评论