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

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

?? page1.cpp

?? 一個內含進程管理、內存管理、文件管理的操作系統設計實現方案
?? CPP
字號:
// Page1.cpp : implementation file
//

#include "stdafx.h"
#include "Property5.h"
#include "Page1.h"
#include "Page2.h"
#include"stdlib.h"
#include"string.h"

#include "menory.h"	//內存頭文件

#include"exe.h"
#include"queue.h"                                  //創建進程隊列數據結構
#include"systemp.h"                                  //模擬系統變量
#include"assertion.h"                                //函數聲明
#include"createxe.h"
#include"equipment_mj.h"
#include"cpu.h"
//#include"file.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CPage1 dialog


CPage1::CPage1(CWnd* pParent /*=NULL*/)
	: CDialog(CPage1::IDD, pParent)
{
	//{{AFX_DATA_INIT(CPage1)
	m_pid = 0;
	m_local_time = 0;
	m_ir = _T("??");
	m_ac = _T("??");
	m_system_time = 0;
	m_result = _T("??");
	m_exe = _T("");
	//}}AFX_DATA_INIT
}


void CPage1::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPage1)
	DDX_Control(pDX, IDC_LIST4, m_list4);
	DDX_Control(pDX, IDC_LIST3, m_list3);
	DDX_Control(pDX, IDC_LIST2, m_list2);
	DDX_Text(pDX, IDC_EDIT3, m_pid);
	DDX_Text(pDX, IDC_EDIT4, m_local_time);
	DDX_Text(pDX, IDC_EDIT5, m_ir);
	DDX_Text(pDX, IDC_EDIT6, m_ac);
	DDX_Text(pDX, IDC_EDIT2, m_system_time);
	DDX_Text(pDX, IDC_EDIT7, m_result);
	DDX_Text(pDX, IDC_EDIT_create, m_exe);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPage1, CDialog)
	//{{AFX_MSG_MAP(CPage1)
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	ON_WM_TIMER()
	ON_WM_PAINT()
	ON_BN_CLICKED(IDC_BUTTON_create, OnBUTTONcreate)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPage1 message handlers



//m_page1.OnButton2();

void CPage1::OnButton2() 
{
		// TODO: Add your control notification handler code here
		
 		OnTimer(1);
	

}

void CPage1::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	CString str[10];
	CString strLine;
	link p,q,s;
	int j,i;
	SetTimer(0,1000,NULL);

	if(count==0){initial();count++;}//系統初始
    cpu();
	m_system_time=system_time;
	m_local_time=local_time;
	m_pid=running->pid;
	m_ac=ac;
	m_ir=ir;
	
    //第一個列表控件的顯示	
	if(psw_flag==1){m_result=temp[k];psw_flag==0;}
	i=0;
	p=ready_pcb.head->next;
	while(p){
		str[i].Format("%4d",p->pid);
		 //GetDlgItem(IDC_EDIT3)->SetWindowText(strLine);
		m_list2.InsertItem(i,str[i]);
		p=p->next;	
		i++;
		}
    //第二個列表控件的顯示
	i=0;
	p=a_block_pcb.head->next;
	while(p){
		str[i].Format("%4d",p->pid);
		m_list3.InsertItem(i,str[i]);
		p=p->next;
		i++;
	}
	q=b_block_pcb.head->next;
	while(q){
		str[i].Format("%4d",q->pid);
		m_list3.InsertItem(i,str[i]);
		q=q->next;
		i++;
	}
	s=c_block_pcb.head->next;
	while(s){
		str[i].Format("%4d",s->pid);
		m_list3.InsertItem(i,str[i]);
	 	s=s->next;
		i++;
	}  
	p=a_using;
	if(p){
		str[i].Format("%4d",p->pid);
		m_list3.InsertItem(i,str[i]);
		i++;
	}
	for(j=0;j<2;j++){
		if(b_using[j]){
		str[i].Format("%4d",b_using[j]->pid);
		m_list3.InsertItem(i,str[i]);
		i++;
		}
	}
	for(j=0;j<2;j++){
		if(c_using[j]){
		str[i].Format("%4d",c_using[j]->pid);
		m_list3.InsertItem(i,str[i]);
		i++;
		}
	}


	//第二項的顯示
	i=0;
	p=a_block_pcb.head->next;
	while(p){
		str[i].Format("%4d",p->wait_time);
		m_list3.SetItem(i,1,LVIF_TEXT,str[i],0,0,0,LPARAM(0));
		p=p->next;
		i++;
	}
	q=b_block_pcb.head->next;
	while(q){
		str[i].Format("%4d",q->wait_time);
		m_list3.SetItem(i,1,LVIF_TEXT,str[i],0,0,0,LPARAM(0));
		q=q->next;
		i++;
	}
	s=c_block_pcb.head->next;
	while(s){
		str[i].Format("%4d",s->wait_time);
		m_list3.SetItem(i,1,LVIF_TEXT,str[i],0,0,0,LPARAM(0));
	 	s=s->next;
		i++;
	}  
	p=a_using;
	if(p){
		str[i].Format("%4d",p->wait_time);
		m_list3.SetItem(i,1,LVIF_TEXT,str[i],0,0,0,LPARAM(0));
		i++;
	}
	for(j=0;j<2;j++){
		if(b_using[j]){
		str[i].Format("%4d",b_using[j]->wait_time);
		m_list3.SetItem(i,1,LVIF_TEXT,str[i],0,0,0,LPARAM(0));
		i++;
		}
	}
	for(j=0;j<2;j++){
		if(c_using[j]){
		str[i].Format("%4d",c_using[j]->wait_time);
		m_list3.SetItem(i,1,LVIF_TEXT,str[i],0,0,0,LPARAM(0));
		i++;
		}
	}
	//第三個列表控件的顯示
	//第二項的顯示
    char used[5]="已用";
	i=0;
	p=a_using;
	if(p){
		m_list4.SetItem(i,1,LVIF_TEXT,used,0,0,0,LPARAM(0));
		i++;
	}
	for(j=0;j<2;j++){
		if(b_using[j]){
		m_list4.SetItem(i,1,LVIF_TEXT,used,0,0,0,LPARAM(0));
		i++;
		}
	}
	for(j=0;j<2;j++){
		if(c_using[j]){
		m_list4.SetItem(i,1,LVIF_TEXT,used,0,0,0,LPARAM(0));
		i++;
		}
	}
	//第三項的顯示
	i=0;
	p=a_using;
	if(p){
		str[i].Format("%4d",p->pid);
		m_list4.SetItem(i,2,LVIF_TEXT,str[i],0,0,0,LPARAM(0));
		i++;
	}
	for(j=0;j<2;j++){
		if(b_using[j]){
		str[i].Format("%4d",b_using[j]->pid);
		m_list4.SetItem(i,2,LVIF_TEXT,str[i],0,0,0,LPARAM(0));
		i++;
		}
	}
	for(j=0;j<2;j++){
		if(c_using[j]){
		str[i].Format("%4d",c_using[j]->pid);
		m_list4.SetItem(i,2,LVIF_TEXT,str[i],0,0,0,LPARAM(0));
		i++;
		}



	
	
	
	
	
	}

	
	
	
	
	
	
	
	
	
	
	UpdateData(FALSE);

	CDialog::OnTimer(nIDEvent);
	
}


void CPage1::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	// TODO: Add your message handler code here
	   
	// 內存顯示
	CWnd   *pWnd=GetDlgItem(IDC_STATIC_MEN);   
          CDC   *pControlDC=pWnd->GetDC();   
          pWnd->Invalidate();   
          pWnd->UpdateWindow();   
          pControlDC->SelectStockObject(WHITE_BRUSH);   
          pControlDC->Rectangle(5,0,60,512);   

		  /*
		  int i,j;      
//初始化內存	
free_table[0].address=c_start; //客戶區起始地址假定為30
 free_table[0].length=bigest-c_start;  //長度假定為512,即512b
 free_table[0].flag=1;   //初始空閑區為一個整體空閑區
 
 for(i=1;i<m;i++) 
  free_table[i].flag=0;  //其余空閑分區表項未被使用

 //已分配表初始化
 for(i=0;i<n;i++) 
  used_table[i].flag=0;  //初始時均未分配
		  
		  
		  
		 
	
		 
		  for(i=0;i<10;i++)
		  {
			if(used_table[i].flag!=0)
			{
			pControlDC->SelectStockObject(BLACK_BRUSH); 
				pControlDC->Rectangle(5,used_table[i].address,60,used_table[i].address+used_table[n].length);
			}
		  }
		 
		  for(j=0;j<0;j++)
		  {
			if(free_table[j].flag!=0)
			{
			    pControlDC->SelectStockObject(WHITE_BRUSH); 
				pControlDC->Rectangle(5,free_table[j].address,60,free_table[j].address+used_table[n].length);
			pControlDC->SelectStockObject(BLACK_BRUSH);
			pControlDC->Rectangle(5,0,60,20); 

			}

		  }
			
*/
		  
		  pWnd->ReleaseDC(pControlDC);   




	// Do not call CDialog::OnPaint() for painting messages
}
extern Status InsertListexe(exelist *l,pointer p);
extern Status InitListexe(exelist *l);

void CPage1::OnBUTTONcreate() 
{
	// TODO: Add your control notification handler code here
	exelist execute,*l;                          //可執行文件
	InitListexe(&execute);               //初始化可執行文件
	l=&execute;
    pointer p;
	char *a[]={"x=5","x++","x++","x--","!A3","!B4","x++","end"};
	for(int i=0;i<8;i++)
	{
		p=(pointer)(malloc(sizeof(exe)));
        strcpy(p->a,a[i]);
		p->next=NULL;
	    InsertListexe(l,p);

		  CWnd   *pWnd=GetDlgItem(IDC_STATIC_MEN);   
          CDC   *pControlDC=pWnd->GetDC();   
          pWnd->Invalidate();   
          pWnd->UpdateWindow();   
          pControlDC->SelectStockObject(WHITE_BRUSH);   
          pControlDC->Rectangle(5,0,60,512); 
		  pControlDC->SelectStockObject(BLACK_BRUSH);   
          pControlDC->Rectangle(5,492-10*i,60,512); 
	
	
	}
//	char *b[]={"x=3","x--","!b3","end"};
	create(&execute);	

 




}

//申請主存函數
void CPage1::distribute(int pid, int size)	//給pid,采用最佳分配算法分配size大小的空間
{
	
	int i,k; 
	int ad; 
	k=-1; 

 for(i=0;i<m;i++) //尋找空間大于size的最小空閑區登記項k 
  if(free_table[i].length>=size&&free_table[i].flag==1) 
  {
	  if(k==-1||free_table[i].length<free_table[k].length) 
		k=i;
  } 
   if(k==-1)//未找到可用空閑區,返回 
   { 
MessageBox("無可用空閑區"); 
    return; 
   } 

 //找到可用空閑區,開始分配:

 if(free_table[k].length-size<=minisize) //若空閑區大小與要求分配的空間差小于minisize大小,則空閑區全部分配;
 {  
  free_table[k].flag=0; 
  ad=free_table[k].address; 
  size=free_table[k].length; 
 } 
 else //若空閑區大小與要求分配的空間差大于minisize大小,則從空閑區劃出一部分分配
 { 
  free_table[k].length=free_table[k].length-size; 
  ad=free_table[k].address+free_table[k].length; 
 } 
 
 //修改已分配區表
 i=0; 
 while(used_table[i].flag!=0&&i<n) //尋找空表目 
  i++; 

 if(i>=n) //無表目可填寫已分配分區
 { 
MessageBox("無表目填寫已分分區,錯誤"); 

  //修正空閑區表 
  if(free_table[k].flag==0) 
   //前面找到的是整個空閑分區 
   free_table[k].flag=1; 
  else 
   {//前面找到的是某個空閑分區的一部分 
    free_table[k].length=free_table[k].length+size; 
    return; 
   } 
 } 
 else 
 {//修改已分配表
  used_table[i].address=ad; 
  used_table[i].length=size; 
  used_table[i].flag=pid; 

  //////////////將內容賦值到內存中
//	for (i=ad;i<(ad+size);i++)			//&menory[ad]為首地址
//	  menory[i]='T';

return ;
	}

}


void CPage1::reclaim(int pid)		//回收內存函數
{
	int i,k,j,s,t; 
int S,L; 

 //尋找已分配表中對應的標志位 
 s=0; 
 while((used_table[s].flag!=pid||used_table[s].flag==0)&&s<n) 
  s++; 

 if(s>=n)	//在已分配表中找不到該進程pid 
 { 
MessageBox("找不到該進程\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=0; 
  } 
  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)		//空閑區表滿,回收空間失敗,將已分配表復原 
   { 
MessageBox("主存空閑表沒有空間,回收空間失敗\n"); 
    used_table[s].flag=pid; 
    return; 
   } 

   free_table[t].address=S; 
   free_table[t].length=L; 
   free_table[t].flag=1; 
  } 

   //////////////將內容賦值到內存中
//	for (i=S;i<(S+L);i++)
//		menory[i]='0';
 return; 

}

void CPage1::Integration()	//合并碎片
{
		int i,j=0;
	int min;
	int x,y;
	struct use t;
	min=c_start;

for(x=0;x<10;x++)			//用冒泡排序將分配表按首地址從小到大排列
	for(y=0;y<10-j;j++)
		if(used_table[y].address>used_table[y+1].address)
		{	
			t=used_table[y];
			used_table[y]=used_table[y+1];
			used_table[y+1]=t;
		}

	for(i=0;i<10;i++)
	{	if (used_table[i].flag!=0)		//判斷該分配表是否有效,
		{
			if(used_table[i].address>min)	//判斷該分配表地址前是否有空閑區
			{	
				for(j=0;j<used_table[i].length;j++)	//有空閑區,則將其數據縮進
				{
				menory[min+j]=menory[used_table[i].address+j];
				menory[used_table[i].address+j]='0';
				}
				used_table[i].address=min;		//將分配表地址修改
			
			}	
				min=used_table[i].address+used_table[i].length;	//min為下個空閑區起始地址
		}
	}

	//空閑分區表初始化
	free_table[0].address=min; 
	free_table[0].length=bigest-min;
	free_table[0].flag=1;   //空閑區為一個整體空閑區
	for(i=1;i<m;i++) 
	free_table[i].flag=0;  //其余空閑分區表項未被使用

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品麻豆日日躁夜夜躁| 91啪在线观看| 国产精品一线二线三线| 麻豆免费精品视频| 国产一区三区三区| 国产不卡视频一区| 色屁屁一区二区| 欧美精品在线观看一区二区| 日韩视频一区二区三区| 欧美精品一区二区久久久| 欧美激情综合在线| 日韩**一区毛片| 蓝色福利精品导航| 91在线无精精品入口| 91精品啪在线观看国产60岁| 久久久一区二区| 亚洲综合偷拍欧美一区色| 国产一区二区在线视频| 欧美性猛片aaaaaaa做受| 国产欧美一区二区精品婷婷 | 亚洲午夜国产一区99re久久| 六月丁香婷婷色狠狠久久| 成人av网站免费观看| 欧美一级片在线| 亚洲激情自拍视频| 国产高清在线精品| 日韩欧美国产一区二区在线播放| 亚洲柠檬福利资源导航| av男人天堂一区| 久久久影视传媒| 丰满白嫩尤物一区二区| 日韩三级免费观看| 午夜伊人狠狠久久| 欧美图区在线视频| 亚洲三级久久久| 日本二三区不卡| 亚洲v日本v欧美v久久精品| 91成人免费网站| 午夜精品一区二区三区免费视频 | 亚洲欧美在线视频观看| av午夜精品一区二区三区| 国产精品久久久久久一区二区三区| 99re热视频精品| 中文在线资源观看网站视频免费不卡 | 精品在线你懂的| 久久久久久久久蜜桃| thepron国产精品| 国产一区二区三区四| 国产精品污www在线观看| 91蜜桃免费观看视频| 亚洲一区二区美女| 欧美精品黑人性xxxx| 国产一区二区在线观看免费| 国产精品每日更新在线播放网址| 色欲综合视频天天天| 美女看a上一区| 亚洲三级久久久| 91精品国产高清一区二区三区蜜臀| 久久99国产精品久久99果冻传媒| 亚洲欧美综合色| 国产情人综合久久777777| 色欧美日韩亚洲| 国产乱子轮精品视频| 日本伊人精品一区二区三区观看方式| 日韩一级二级三级精品视频| 成人动漫视频在线| 免费成人av在线| 亚洲日本在线视频观看| 精品成人免费观看| 欧美日本在线一区| 色综合色狠狠天天综合色| 国产精品一区二区91| 久久99精品一区二区三区三区| 亚洲欧美另类在线| 欧美国产一区在线| 亚洲激情第一区| 伊人一区二区三区| 亚洲欧洲国产日本综合| 国产精品丝袜一区| 亚洲免费观看在线观看| 欧美mv和日韩mv的网站| 91精品国产丝袜白色高跟鞋| 欧美天堂亚洲电影院在线播放| 97久久精品人人澡人人爽| 成人免费黄色大片| 色综合久久88色综合天天6| 色综合天天综合色综合av | 亚洲精品va在线观看| 亚洲午夜日本在线观看| 石原莉奈在线亚洲二区| 免费看欧美女人艹b| 国产乱码字幕精品高清av| 99在线精品免费| 欧美色网一区二区| 精品国产一区二区在线观看| 中文文精品字幕一区二区| 亚洲三级久久久| 青青草伊人久久| 国产美女精品在线| 91福利社在线观看| 欧美电视剧免费全集观看| 国产精品久久久久久福利一牛影视| 亚洲最新视频在线观看| 经典三级视频一区| 色婷婷av一区二区三区之一色屋| 欧美日韩精品免费| 国产欧美综合在线| 免费成人在线观看视频| 91日韩在线专区| 国产欧美1区2区3区| 日本欧洲一区二区| 色综合天天综合狠狠| 国产亚洲精品精华液| 久久99国内精品| 91麻豆精品国产无毒不卡在线观看| 国产亚洲欧美色| 国产一区二区不卡在线| 欧美mv日韩mv| 美女网站色91| 日韩欧美区一区二| 日韩**一区毛片| 日韩视频一区二区在线观看| 亚洲五月六月丁香激情| 91久久久免费一区二区| 亚洲精品ww久久久久久p站| 成人18视频在线播放| 亚洲卡通动漫在线| 精品视频免费在线| 午夜精品福利在线| 欧美吻胸吃奶大尺度电影| 亚洲图片欧美色图| 欧美挠脚心视频网站| 日韩avvvv在线播放| 欧美精品一区二区三区很污很色的| 免费日本视频一区| 精品入口麻豆88视频| 国产成人av自拍| 亚洲欧美激情视频在线观看一区二区三区 | 国产一区二区在线看| 国产人成亚洲第一网站在线播放| 成人午夜精品一区二区三区| 中文字幕日本乱码精品影院| 欧美性色黄大片| 国产综合色视频| 亚洲一区二区三区四区在线| 日韩视频在线永久播放| 国产成人av电影在线观看| 亚洲另类春色校园小说| 精品国产91洋老外米糕| 色综合天天狠狠| 久草这里只有精品视频| 一区二区三区在线播放| 国产精品污网站| 精品国产凹凸成av人网站| 色婷婷久久久综合中文字幕 | 国产午夜精品一区二区三区视频| 色综合久久久久综合| 国产乱对白刺激视频不卡| 性感美女极品91精品| 中文字幕亚洲综合久久菠萝蜜| 精品少妇一区二区三区日产乱码| 欧日韩精品视频| 处破女av一区二区| 国产一区二区电影| 麻豆精品一二三| 午夜亚洲国产au精品一区二区| 国产精品乱人伦| 欧美国产精品中文字幕| 久久久久国产精品麻豆ai换脸| 日韩视频免费观看高清完整版在线观看 | 日韩精品一二三四| 亚洲综合色区另类av| 亚洲综合无码一区二区| 亚洲美女视频一区| 一区二区在线免费观看| 亚洲精品视频观看| 一区二区三区精品在线| 午夜欧美大尺度福利影院在线看| 亚洲成av人综合在线观看| 天天影视涩香欲综合网| 久久99精品久久久久久国产越南 | 久久久久久久久久久99999| 日韩欧美中文字幕公布| 国产女主播视频一区二区| 国产欧美精品一区二区三区四区| 中文天堂在线一区| 午夜精品久久久久| 国产成人啪免费观看软件| 色哟哟一区二区在线观看| 91麻豆精品国产91久久久 | 欧美另类变人与禽xxxxx| 精品国产99国产精品| 亚洲人成亚洲人成在线观看图片| 亚洲国产精品人人做人人爽| 久久精品国产亚洲一区二区三区| 成人免费毛片app| 91精品欧美综合在线观看最新| 26uuu另类欧美| 日本伊人色综合网| 91视频观看免费|