Tab1.h
资源名称:OSDemo [点击查看]
上传用户:tianjwyx
上传日期:2007-01-13
资源大小:813k
文件大小:3k
源码类别:
操作系统开发
开发平台:
Visual C++
- #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;
- CArray<JCB,JCB>JCBList; //后备队列
- CArray<JCB,JCB>JCBWait; //阻塞队列
- CArray<JCB,JCB>JCBRun; //运行队列
- CArray<FBT,FBT>FBTList; //内存自由区表
- 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_)