www.pudn.com > OSDemo.rar > Tab1.h


#if !defined(AFX_TAB1_H__C707C83E_D3EA_455C_B5B4_D3E5B062C492__INCLUDED_) 
#define AFX_TAB1_H__C707C83E_D3EA_455C_B5B4_D3E5B062C492__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
// Tab1.h : header file 
// 
#include "JobView.h" 
#include "MemView.h" 
#include "TabSheet.h" 
#define TOTAL_MEM 100 
#define TAPER 1 
#define PRINTER 2 
///////////////////////////////////////////////////////////////////////////// 
// CTab1 dialog 
//===================请求页式管理======================= 
 
//===================进程调度======================= 
struct PCB 
{ 
   UINT ID; 
   UINT Priority; 
   float CPUtime; 
   float Alltime; 
   UINT State; 
   struct PCB * next; 
}; 
//===================作业调度======================= 
struct JCB 
{ 
	UINT ID;    //作业号 
	UINT RunTime;//实际运行时间 
    UINT SetTime;//放入队列时间 
	UINT TakeMem;//占用内存 
	UINT MemSize;//内存大小 
	float TakeTime;//要求计算时间  
	UINT PrintNum;//申请的打印机数量 
	UINT TapeNum;//申请的磁带机数量 
}; 
 
 
struct RC 
{ 
	UINT Type;     //资源类型 是打印机还是磁带机? 
	int User;      //标识哪个作业使用了本资源 
	int yPos;      //用于画图状态图的参数 
	COLORREF tagColor;//区别各个作业的颜色,用于图形显示 
}; 
struct FBT 
{ 
		UINT size;   //空闲块大小 
		UINT addr;   //空闲块首址 
}; 
class CTab1 : public CDialog 
{ 
// Construction 
public: 
	void ShowMemList(); 
	void AddJob(CString id, CString inputtime, CString usetime, CString mem,CString printer, CString tape); 
	CTab1(CWnd* pParent = NULL);   // standard constructor 
    UINT CurJobNum; 
	UINT CountTime; 
// Dialog Data 
	//{{AFX_DATA(CTab1) 
	enum { IDD = IDD_TAB1 }; 
	CSliderCtrl	m_TimeSlider; 
	CTabSheet	m_TabView; 
	CComboBox	m_Combo2; 
	CComboBox	m_Combo1; 
	CListCtrl	m_MemList; 
	CListCtrl	m_JobList; 
	CString	m_NeedMem; 
	CString	m_NeedTime; 
	UINT	m_ReqMem; 
	UINT	m_ReqTime; 
	CJobView m_TabJob; 
    CMemView m_TabMem; 
	CString	m_StartMsg; 
	UINT nTaper; 
	UINT nPrinter; 
	CArrayJCBList;  //后备队列 
	CArrayJCBWait;  //阻塞队列 
	CArrayJCBRun;   //运行队列 
	CArrayFBTList;  //内存自由区表 
	RC RCList[3];   //描述资源设备使用情况的结构数组 
	//}}AFX_DATA 
 
 
// Overrides 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(CTab1) 
	protected: 
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support 
	//}}AFX_VIRTUAL 
 
// Implementation 
protected: 
 
	// Generated message map functions 
	//{{AFX_MSG(CTab1) 
	virtual BOOL OnInitDialog(); 
	afx_msg void OnReleasedcaptureTimeSlider(NMHDR* pNMHDR, LRESULT* pResult); 
	afx_msg void OnTimeAdd(); 
	afx_msg void OnTimeDec(); 
	afx_msg void OnBtnAdd(); 
	afx_msg void OnBtnRun(); 
	afx_msg void OnBtnDel(); 
	afx_msg void OnContextMenu(CWnd* pWnd, CPoint point); 
	afx_msg void OnMnuRedo(); 
	//}}AFX_MSG 
	DECLARE_MESSAGE_MAP() 
private: 
	bool Apply_HardWare(UINT type,UINT user); 
	bool IsMemEnough(int size); 
	bool free_block(int addr,int size); 
	int get_block(UINT size); 
	void FreeAllMem(); 
	void AddMemItem(CString time,CString size,CString addr); 
	 
	UINT nListIndex; 
	void ShowJobList(); 
	UINT ItemCount; 
	UINT MemCount; 
	void ShowStartTime(); 
	COLORREF JobColor[5]; 
}; 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Visual C++ will insert additional declarations immediately before the previous line. 
 
#endif // !defined(AFX_TAB1_H__C707C83E_D3EA_455C_B5B4_D3E5B062C492__INCLUDED_)