操作系统实验四实验报告动态分区分配算法

更新时间:2023-05-10 15:51:32 阅读: 评论:0

操作系统实验四
实验题目动态分区分配算法
实验学时】:4学时
实验目的
通过这次实验,加深对动态分区分配算法的理解,进一步掌握首次适应算法、循环首次适应算法、最佳适应算法和最坏适应算法的实现方法。
实验内容及要求
问题描述:
设计程序模拟四种动态分区分配算法:首次适应算法、循环首次适应算法、最佳适应算法和最坏适应算法的工作过程。假设内存中空闲分区个数为n,空闲分区大小分别为P1, ,Pn,在动态分区分配过程中需要分配的进程个数为m(mn),它们需要的分区大小分别为S1, ,Sm,分别利用四种动态分区分配算法将m个进程放入n个空闲分区,给出进程在空闲分区
中的分配情况。
程序要求:
1)利用首次适应算法、循环首次适应算法、最佳适应算法和最坏适应算法四种动态分区分配算法模拟分区分配过程。
2模拟四种算法的分区分配过程,给出每种算法进程在空闲分区中的分配情况。
3)输入:空闲分区个数n,空闲分区大小P1, ,Pn,进程个数m,进程需要的分区大小S1, ,Sm
4)输出:首次适应算法,循环首次适应算法,最佳适应算法,最坏适应算法,最终内存空闲分区的分配情况。
实现源代码:
#include<iostream>
#include<fstream>
#include<iomanip>
#include<string>
#define max 100
using namespace std;
int work_num;
int zone_num;
struct Data{
    int data;
    char  name;
};
Data *d=new Data[max];
struct Table{
    int data;
    char array[max];
    int length;
};
Table *T=new Table[max];
Table *temp=new Table[max];
void Init()
{
    ifstream  inf("");
    int i,j;
    char ch;
    inf>>work_num;
    cout<<"作业数:"<<work_num<<endl;
    inf>>zone_num;
    cout<<"空闲分区数:"<<zone_num<<endl;
    cout<<" 作业为 :";
    for(j=0;j<work_num;j++)
    {
        (ch);
        d[j].name=ch;
        cout<<tw(4)<<d[j].name;
    }
    cout<<endl;
    cout<<"作业大小:";
    for(i=0;i<work_num;i++)
    {
        inf>>d[i].data;
        cout<<tw(4)<<d[i].data;
    }
    cout<<endl;
    cout<<"空闲分区:";
    for(j=0;j<zone_num;j++)
    {
        inf>>T[j].data;
        temp[j].data=T[j].data;
        T[j].length=0;
        temp[j].length=0;
        cout<<tw(4)<<T[j].data;
    }
    cout<<endl;
}
void renew()
{
    int j;
    for(j=0;j<zone_num;j++)
    {
        T[j].data=temp[j].data;
        T[j].length=temp[j].length;
    }
}
void re()
{
    int i;
    for(i=0;i<zone_num;i++)
    {
        T[i].array[T[i].length]='#';
    }
}
void show()
{
    int i,j;
    re();
    for(i=0;i<zone_num;i++)
    {
        if(T[i].data==temp[i].data)
            cout<<tw(4)<<T[i].data;
        el
        {
            cout<<tiosflags(ios::right)<<tw(4)<<T[i].data<<tw(1);
            for(j=0;j<T[i].length;j++)
            {
                if(T[i].array[j]=='#')

本文发布于:2023-05-10 15:51:32,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/879568.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:算法   分区   适应   分配   动态   空闲   实验   进程
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图