📄 promoni.h
字号:
// ProMoni.h: interface for the CProMoni class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_PROMONI_H__81B44D1D_B1E9_4B18_B70D_3C4938E5C8BA__INCLUDED_)
#define AFX_PROMONI_H__81B44D1D_B1E9_4B18_B70D_3C4938E5C8BA__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//#include<afxtempl.h>
struct PCB
{
int pid; //进程号
int pri; //进程优先数
int time; //进程所需运行时间
int status; // 进程状态 0就绪,1 执行,-1完成
};
struct RecordInfo
{
// int m_clock; //时钟序列
int pid;
int pri;
int time;
RecordInfo *next;
};
class CProMoni
{
public:
CProMoni();
virtual ~CProMoni();
void InsertRQ(PCB* p); //将p所指的进程插入到就绪队列中
void InsertFQ(PCB* p); //将p所指的进程插入到完成队列中
void ProSchedule(); //进程调度函数
void ProRun(); //运行函数
void Display(CDC* pDC); //以表格形式输出运行过程
bool GetFinishFlag();
bool OpenLogFile(); //打开日志文件
void CloseLogFile(); //关闭日志文件
bool WriteLogToFile(); //向日志文件中写入数据
void RecordAllInfo(); //记录进程调度的过程信息
void DisplayRecordInfo(CDC *pDC);
void ClearAllRecord();
private:
PCB *m_pRunning; //指向当前运行的进程
CPtrList m_readyList; //就绪队列
CPtrList m_finishList; //完成队列
bool m_finish; //完成标志
CString m_LogFileName; //日志文件名
CStdioFile m_LogFile; //日志文件
public:
int m_clock; //时钟序列
CPtrList m_ReadyInfoList;
CPtrList m_RunInfoList;
CPtrList m_FinishInfoList;
};
#endif // !defined(AFX_PROMONI_H__81B44D1D_B1E9_4B18_B70D_3C4938E5C8BA__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -