栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

OS实验C语言

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

OS实验C语言

动态测试系统内存
1.实践内容说明
检测并显示系统当前物理内存和虚拟内存信息
2.程序性质
普通C程序
3.实现程序
#include
#include
#define DIV 1024
char *divisor="K";
void main()
{
MEMORYSTATUS stat;
GlobalMemoryStatus(&stat);
printf("MEMORYSTATUS结构体长度 %ld bytes n",stat.dwLength);
printf("已使用物理内存百分比 %ld%%",stat.dwMemoryLoad);
printf("总物理内存 %ld%s bytes n",stat.dwTotalPhys/DIV,divisor);
printf("可用物理内存%ld%s bytes n",stat.dwAvailPhys/DIV,divisor);
printf("总页面文件数 %ld%s bytes n",stat.dwTotalPageFile/DIV,divisor);
printf("可用页面文件数 %ld%s bytes n",stat.dwAvailPageFile/DIV,divisor);
printf("总虚拟内存 %ld%s bytes n",stat.dwTotalPageVirtual/DIV,divisor);
printf("可用虚拟内存 %ld%s bytes n",stat.dwAvailPageVirtual/DIV,divisor);
}


页置换模拟
1.实践内容说明
模拟页面置换算法,统计缺页率
2.程序性质
普通C程序
3.实现程序
#include
#define MemCapacity 3
int pageInMainMem(int page,int mainMem[],int MainCapacity);
void foldPage(int page,int mainMem[],int MainCapacity);
void main()
{
    int pageDirection[]={4,3,2,1,4,3,5,4,3,2,1,5},pageNum=12;
    int mainMem[MemCapacity]={0};
    int RequestCount=0,Request=0;
    int i,j;
    printf("时间   访问页    内存状态      缺页中断     调入页n");
    for(i=0;i     {
        printf("%3d  ",i);
        printf("     %2d    ",pageDirection[i]);
        Request=0;
        if(pageInMainMem(pageDirection[i],mainMem,MemCapacity)==-1)
        {
            foldPage(pageDirection[i],mainMem,MemCapacity);
            RequestCount++;
            Request=1;
        }
        for(j=0;j             printf("%2d",mainMem[j]);
        if(Request==1)
        {
            printf("              +     ");
            printf("     %d",pageDirection[i]);
        }
        printf("n");
    }
    printf("缺页中断次数=%dn",RequestCount);
    printf("缺页率=%d/%d%=2f%%n",RequestCount,pageNum,
        (float)RequestCount/pageNum*100);
}
int pageInMainMem(int page,int mainMem[],int MainCapacity)
{
    int i;
    for(i=0;i         if(page==mainMem[i])
            return i;
        return -1;
}
void foldPage(int page,int mainMem[],int MainCapacity)
{
    int i;
    for(i=MainCapacity-1;i>0;i--)
        mainMem[i]=mainMem[i-1];
    mainMem[0]=page;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/511435.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号