Tab1.h
上传用户:tianjwyx
上传日期:2007-01-13
资源大小:813k
文件大小:3k
源码类别:

操作系统开发

开发平台:

Visual C++

  1. #if !defined(AFX_TAB1_H__C707C83E_D3EA_455C_B5B4_D3E5B062C492__INCLUDED_)
  2. #define AFX_TAB1_H__C707C83E_D3EA_455C_B5B4_D3E5B062C492__INCLUDED_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. // Tab1.h : header file
  7. //
  8. #include "JobView.h"
  9. #include "MemView.h"
  10. #include "TabSheet.h"
  11. #define TOTAL_MEM 100
  12. #define TAPER 1
  13. #define PRINTER 2
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CTab1 dialog
  16. //===================请求页式管理=======================
  17. //===================进程调度=======================
  18. struct PCB
  19. {
  20.    UINT ID;
  21.    UINT Priority;
  22.    float CPUtime;
  23.    float Alltime;
  24.    UINT State;
  25.    struct PCB * next;
  26. };
  27. //===================作业调度=======================
  28. struct JCB
  29. {
  30. UINT ID;    //作业号
  31. UINT RunTime;//实际运行时间
  32.     UINT SetTime;//放入队列时间
  33. UINT TakeMem;//占用内存
  34. UINT MemSize;//内存大小
  35. float TakeTime;//要求计算时间 
  36. UINT PrintNum;//申请的打印机数量
  37. UINT TapeNum;//申请的磁带机数量
  38. };
  39. struct RC
  40. {
  41. UINT Type;     //资源类型 是打印机还是磁带机?
  42. int User;      //标识哪个作业使用了本资源
  43. int yPos;      //用于画图状态图的参数
  44. COLORREF tagColor;//区别各个作业的颜色,用于图形显示
  45. };
  46. struct FBT
  47. {
  48. UINT size;   //空闲块大小
  49. UINT addr;   //空闲块首址
  50. };
  51. class CTab1 : public CDialog
  52. {
  53. // Construction
  54. public:
  55. void ShowMemList();
  56. void AddJob(CString id, CString inputtime, CString usetime, CString mem,CString printer, CString tape);
  57. CTab1(CWnd* pParent = NULL);   // standard constructor
  58.     UINT CurJobNum;
  59. UINT CountTime;
  60. // Dialog Data
  61. //{{AFX_DATA(CTab1)
  62. enum { IDD = IDD_TAB1 };
  63. CSliderCtrl m_TimeSlider;
  64. CTabSheet m_TabView;
  65. CComboBox m_Combo2;
  66. CComboBox m_Combo1;
  67. CListCtrl m_MemList;
  68. CListCtrl m_JobList;
  69. CString m_NeedMem;
  70. CString m_NeedTime;
  71. UINT m_ReqMem;
  72. UINT m_ReqTime;
  73. CJobView m_TabJob;
  74.     CMemView m_TabMem;
  75. CString m_StartMsg;
  76. UINT nTaper;
  77. UINT nPrinter;
  78. CArray<JCB,JCB>JCBList;  //后备队列
  79. CArray<JCB,JCB>JCBWait;  //阻塞队列
  80. CArray<JCB,JCB>JCBRun;   //运行队列
  81. CArray<FBT,FBT>FBTList;  //内存自由区表
  82. RC RCList[3];   //描述资源设备使用情况的结构数组
  83. //}}AFX_DATA
  84. // Overrides
  85. // ClassWizard generated virtual function overrides
  86. //{{AFX_VIRTUAL(CTab1)
  87. protected:
  88. virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  89. //}}AFX_VIRTUAL
  90. // Implementation
  91. protected:
  92. // Generated message map functions
  93. //{{AFX_MSG(CTab1)
  94. virtual BOOL OnInitDialog();
  95. afx_msg void OnReleasedcaptureTimeSlider(NMHDR* pNMHDR, LRESULT* pResult);
  96. afx_msg void OnTimeAdd();
  97. afx_msg void OnTimeDec();
  98. afx_msg void OnBtnAdd();
  99. afx_msg void OnBtnRun();
  100. afx_msg void OnBtnDel();
  101. afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
  102. afx_msg void OnMnuRedo();
  103. //}}AFX_MSG
  104. DECLARE_MESSAGE_MAP()
  105. private:
  106. bool Apply_HardWare(UINT type,UINT user);
  107. bool IsMemEnough(int size);
  108. bool free_block(int addr,int size);
  109. int get_block(UINT size);
  110. void FreeAllMem();
  111. void AddMemItem(CString time,CString size,CString addr);
  112. UINT nListIndex;
  113. void ShowJobList();
  114. UINT ItemCount;
  115. UINT MemCount;
  116. void ShowStartTime();
  117. COLORREF JobColor[5];
  118. };
  119. //{{AFX_INSERT_LOCATION}}
  120. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  121. #endif // !defined(AFX_TAB1_H__C707C83E_D3EA_455C_B5B4_D3E5B062C492__INCLUDED_)