亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? xf.cpp

?? 里面是有關C++的程序
?? CPP
字號:
#include"stdio.h"
#include<iostream.h>
#include<string.h>
#include <stdlib.h>
#include <time.h>
#define n 10 //模擬實驗中允許的最大進程數為n
#define m 10 //模擬實驗中允許的最大分區個數為m
#define M_SIZE 10000 

struct 
{	
float address; //分配給進程的起始地址
float length; //分配給進程的空閑區長度,單位為字節
int flag;    //分配區表標志,用"0"已分配,用"1"表示未分配
}Used_Table[m]; //分配分區表


struct 
{ 
float address; //空閑區起始地址
float length; //空閑區長度,單位為字節 
int flag;    //空閑區表登記欄標志,用"0"表示已分配,用"1"表示未分配
}Free_table[m]; //空閑分區表

float stand_length(int k)//隨機產生一個分區大小的函數
{
float  st_length[20];
srand((unsigned)time(NULL));//srand()函數產生一個當前時間開始的隨機種子
for (int i=0;i<20;i++)
st_length[i]=float (rand()%1000);
return st_length[k];
}


float process_length(int k)//隨機產生一個進程大小的函數
{
float  pt_length[20];
srand((unsigned)time(NULL));//srand()函數產生一個當前時間開始的隨機種子
for (int i=0;i<20;i++)
pt_length[i]= float (rand()%500);
return pt_length[k];
}



int process_num()//隨機產生一個進程個數的函數
{
int num;
int A[10]={1,2,3,4,5,6,7,8,9,10};
srand((unsigned)time(NULL));
num=rand()%10;
return A[num];
}

char srand_name(int k)//隨機產生一個進程的名字
{

char A[26]={'A','B','C','D','E','F','G','H','I',
  'J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
  return A[k];

}

void allocate(char PRS_NAME,float X_K) //采用最優分配算法為進程PRS_NAME分配X_K大小的空間
{ 
int i,k; 
float ad; 
k=-1; 
for(i=0;i<m;i++) //尋找空間大于X_K的最小空閑區登記項k
if(Free_table[i].length>=X_K&&Free_table[i].flag==1) 
if(k==-1||Free_table[i].length<Free_table[k].length) 
k=i; 
if(k==-1)//未找到可用空閑分區,返回
{ 
printf("無可用空閑區\n"); 
return; 
} 
//找到可用空閑區,開始分配:
//若空閑區大小與要求分配的空間差小于M_SIZE大小,則空閑區全部分配;
//若空閑區大小與要求分配的空間差大于M_SIZE大小,則從空閑區劃出一部分分配
if(Free_table[k].length-X_K<=M_SIZE) 
{ 
Free_table[k].flag=0; 
ad=Free_table[k].address; 
X_K=Free_table[k].length; 
} 
else 
{ 
Free_table[k].length=Free_table[k].length-X_K; 
ad=Free_table[k].address+Free_table[k].length; 
} 
//修改已分配區表
i=0; 
while(Used_Table[i].flag!=0&&i<n) //尋找空表目
i++; 
if(i>=n) //無表目填寫已分分區
{ 
printf("無表目填寫已分分區,錯誤\n"); 
//修正空閑區表 
if(Free_table[k].flag==0) 
//前面找到的是整個空閑分區  
Free_table[k].flag=1; 
else 
{//前面找到的是某個空閑分區的一部分  
Free_table[k].length=Free_table[k].length+X_K; 
return; 
} 
} 
else 
{//修改已分配表 
Used_Table[i].address=ad; 
Used_Table[i].length=X_K; 
Used_Table[i].flag=PRS_NAME; 
} 
return; 
}//內存分配函數結束 

void reclaim(char PRS_NAME) //回收進程名為PRS_NAME的進程所占內存空間 
{ 
int i,k,j,s,t; 
float S,L; 
//尋找已分配表中對應登記項 
s=0; 
while((Used_Table[s].flag!=PRS_NAME||Used_Table[s].flag==0)&&s<n) 
s++; 
if(s>=n)//在已分配表中找不到名字為PRS_NAME的進程
{ 
printf("找不到該進程\n"); 
return; 
} 
//修改已分配表
Used_Table[s].flag=0; //取得歸還分區的起始地址S和長度L
S=Used_Table[s].address; 
L=Used_Table[s].length; 
j=-1;k=-1;i=0; 
//尋找回收分區的空閑上下鄰,上鄰表目k,下鄰表目j
while(i<m&&(j==-1||k==-1)) 
{ 
if(Free_table[i].flag==1) 
{ 
if(Free_table[i].address+Free_table[i].length==S)k=i;//找到上鄰
if(Free_table[i].address==S+L)j=i;//找到下鄰
} 
i++; 
} 
if(k!=-1) 
if(j!=-1) 
// 上鄰空閑區,下鄰空閑區,三項合并
{ 
Free_table[k].length=Free_table[j].length+Free_table[k].length+L; 
Free_table[j].flag=1; 
} 
else 
//上鄰空閑區,下鄰非空閑區,與上鄰合并
Free_table[k].length=Free_table[k].length+L; 
else 
if(j!=-1) 
//上鄰非空閑區,下鄰為空閑區,與下鄰合并
{ 
Free_table[j].address=S; 
Free_table[j].length=Free_table[j].length+L; 
} 
else //上下鄰均為非空閑區,回收區域直接填入
{ 
//在空閑區表中尋找空欄目 
t=0; 
while(Free_table[t].flag==1&&t<m) 
t++; 
if(t>=m)//空閑區表滿,回收空間失敗,將已分配表復原
{ 
cout<<"內存空閑表沒有空間,回收空間失敗"<<endl; 
Used_Table[s].flag=j; 
return; 
} 
Free_table[t].address=S; 
Free_table[t].length=L; 
Free_table[t].flag=1; 
} 
return; 
}


//主函數
void main( ) 
{ 
int i,a; 
float p_length; 
char p_name; 
//空閑分區表初始化:
int t_P;
Free_table[0].address=10000;
for(t_P=0; t_P<m; t_P++)
{
Free_table[t_P].length=stand_length(t_P); 
Free_table[t_P].flag=1; 
}

for(t_P=1;t_P<m;t_P++)
{
Free_table[t_P].address=Free_table[t_P-1].address+Free_table[t_P-1].length;
}//空閑分區表初始化結束
//已分配表初始化:
for(i=0;i<n;i++) 
Used_Table[i].flag=0; 
cout<<"--------------模擬固定分區存儲管理的分配與回收------------"<<endl<<endl;
cout<<"*********************功能選項*****************************"<<endl;
cout<<"*     0——退出               1——隨機產生進程并分配內存*"<<endl;
cout<<"*     2——回收進程和內存     3——顯示內存分配記錄      *"<<endl;
cout<<"**********************************************************"<<endl;
while(1) 
{ 

cout<<"輸入選擇的功能項(0--3) :"<<endl;
cin>>a;
switch(a) 
{ 
case 0: return;///a=0選擇退出程序結束 
case 1: //選擇a=1,開始隨機的產生進程并分配空間
	{
int p_num=process_num();
cout<<"隨機產生"<<p_num<<"個進程"<<endl;
int p_p;
cout<<"進程名    進程大小"<<endl;
for(p_p=0;p_p<p_num;p_p++)
{
p_name=srand_name(p_p);
p_length= process_length(p_p);
cout<<p_name<<"           "<<p_length<<endl;
allocate(p_name,p_length);//分配內存空間 
}
cout<<"要查看內存分配請在提示命令出現后輸入'3'回車"<<endl;
	}
break; 
case 2: //a=2回收內存空間 
cout<<"輸入要回收分區的進程名"; 
cin>>p_name; 
reclaim(p_name);//回收內存空間 
break; 
case 3: //a=3顯示內存情況
//輸出空閑分區表和已分配分區表的內容
cout<<"輸出空閑區表:"<<endl;
cout<<"------------------------------------------------------"<<endl;
cout<<"起始地址 分區大小 標志(0—已分配,1—未分配)"<<endl; 
for(i=0;i<m;i++) 
printf("%6.0f%9.0f%6d\n",Free_table[i].address,Free_table[i].length, Free_table[i].flag); 
cout<<"已分配分區表:"<<endl;
cout<<"------------------------------------------------------"<<endl;
cout<<"起始地址 分區大小 進程名"<<endl;
for(i=0;i<n;i++) 
if(Used_Table[i].flag!=0) 
printf("%6.0f%9.0f%6c\n",Used_Table[i].address,Used_Table[i].length, Used_Table[i].flag); 
break; 
default:
cout<<"沒有該選項,請輸入正確的選項!"<<endl; 
}
}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一本到| 久久国产精品无码网站| 日韩精品中午字幕| 欧美色视频一区| 91久久人澡人人添人人爽欧美| 国产成人一级电影| 国产成人免费高清| 成人激情免费网站| 99热精品一区二区| 91久久精品一区二区三区| 色婷婷国产精品久久包臀 | 亚洲午夜影视影院在线观看| 国产精品视频一二三区| 国产欧美一区二区精品性| 国产欧美va欧美不卡在线| 国产精品系列在线| 亚洲免费在线播放| 亚洲成va人在线观看| 日本中文字幕一区二区有限公司| 亚洲成人动漫一区| 九九在线精品视频| 盗摄精品av一区二区三区| 91美女片黄在线观看| 欧美日韩一级二级| 国产网站一区二区| 一区二区三区小说| 久久精品国产亚洲一区二区三区| 国产麻豆精品在线观看| av不卡免费电影| 91.麻豆视频| 国产日韩精品久久久| 亚洲人成网站精品片在线观看| 亚洲精品国产一区二区精华液| 亚洲成a天堂v人片| 国产91在线观看丝袜| 欧美色偷偷大香| 亚洲国产精品高清| 亚洲一区二区三区在线| 国内久久精品视频| 在线观看91视频| 久久精品夜夜夜夜久久| 一区av在线播放| 国产精品69久久久久水密桃| 色综合久久久网| 欧美精品一区二区三区蜜桃 | 亚洲一区二区3| 国产乱人伦偷精品视频不卡| 91国偷自产一区二区开放时间 | 丁香婷婷综合五月| 欧美喷水一区二区| 18涩涩午夜精品.www| 麻豆专区一区二区三区四区五区| 99久久久精品| 亚洲精品在线电影| 日本欧美韩国一区三区| 91久久国产最好的精华液| 久久九九99视频| 全部av―极品视觉盛宴亚洲| 91丨porny丨最新| 国产亚洲欧美日韩在线一区| 日韩激情中文字幕| 欧美色图第一页| 国产精品国产馆在线真实露脸| 污片在线观看一区二区| 91美女片黄在线观看| 国产精品网站在线播放| 国模套图日韩精品一区二区| 欧美视频在线一区| 亚洲欧美成人一区二区三区| 国产成人aaaa| 国产午夜亚洲精品午夜鲁丝片| 蜜桃精品视频在线| 欧美日韩日日夜夜| 一区二区三区在线影院| 91在线国产福利| 最新国产成人在线观看| 不卡视频一二三四| 亚洲欧美综合色| 91色.com| √…a在线天堂一区| 9人人澡人人爽人人精品| 亚洲国产精品传媒在线观看| 国产精品1区二区.| 欧美高清在线一区| 99免费精品视频| 中文字幕的久久| 成人免费电影视频| 中文字幕在线不卡视频| 东方欧美亚洲色图在线| 久久久亚洲欧洲日产国码αv| 另类专区欧美蜜桃臀第一页| 欧美一区二区免费视频| 国产盗摄女厕一区二区三区| 26uuu精品一区二区 | 欧美不卡激情三级在线观看| 欧美aaaaa成人免费观看视频| 日韩欧美高清一区| 国产麻豆精品久久一二三| 欧美激情中文字幕一区二区| 99精品欧美一区二区三区综合在线| 久久精品亚洲一区二区三区浴池 | 夜夜嗨av一区二区三区中文字幕 | 欧美激情中文不卡| av福利精品导航| 日韩精品高清不卡| 中文在线资源观看网站视频免费不卡| 成年人网站91| 日韩电影免费在线| 中文欧美字幕免费| 欧美日韩色一区| 国产ts人妖一区二区| 亚洲一区影音先锋| 久久久久久久网| 91福利在线导航| 国产精品亚洲一区二区三区妖精 | 欧美一区二区三区婷婷月色| 国产一区中文字幕| 亚洲精品久久久蜜桃| 精品国偷自产国产一区| 国产91对白在线观看九色| 亚洲美女少妇撒尿| 在线成人av网站| 91香蕉视频在线| 国产精品 日产精品 欧美精品| 亚洲欧美日韩一区| 久久久夜色精品亚洲| 在线播放视频一区| 91麻豆国产在线观看| 国产在线播放一区| 午夜国产精品一区| 日韩美女久久久| 国产午夜精品久久| 日韩欧美在线一区二区三区| 91久久精品网| 91麻豆成人久久精品二区三区| 精品亚洲国内自在自线福利| 亚洲国产欧美在线| 亚洲视频网在线直播| 国产欧美一区二区精品婷婷 | 丁香亚洲综合激情啪啪综合| 日韩精品一级二级| 亚洲午夜久久久久久久久电影网| 欧美高清在线精品一区| 久久久久久久久久久久久夜| 91精品国产入口| 欧美日韩国产经典色站一区二区三区| 99久久久久久| 91免费国产在线观看| 成人h动漫精品一区二| 国产精品白丝jk白祙喷水网站| 日韩高清不卡在线| 五月婷婷色综合| 亚洲高清在线精品| 亚洲午夜激情网页| 亚洲a一区二区| 午夜精品123| 欧美aaaaa成人免费观看视频| 天天综合日日夜夜精品| 亚洲电影在线播放| 午夜免费久久看| 免费高清在线一区| 美女视频黄a大片欧美| 久久精品99国产精品日本| 人妖欧美一区二区| 国产美女一区二区| 国产69精品久久久久毛片| 成人午夜在线视频| 91视频免费看| 欧美丝袜丝nylons| 欧美一区二区福利在线| 精品电影一区二区三区 | 91蜜桃婷婷狠狠久久综合9色| 91免费观看国产| 在线播放国产精品二区一二区四区| 欧美日韩精品欧美日韩精品| 欧美一级精品在线| 久久久久综合网| 日韩美女视频一区二区 | 国产在线视频精品一区| 国产麻豆9l精品三级站| 97se狠狠狠综合亚洲狠狠| 在线观看91视频| 精品久久国产字幕高潮| 中文字幕亚洲区| 日日夜夜免费精品视频| 国产主播一区二区三区| 不卡的电影网站| 91麻豆精品国产91| 国产精品免费丝袜| 亚洲成人tv网| 国产精品自拍一区| 欧美亚洲图片小说| 久久精品这里都是精品| 亚洲成人一区在线| 国产91在线观看| 欧美一区二区精品| 亚洲情趣在线观看| 国产中文字幕精品| 69堂成人精品免费视频| 国产精品久久夜|