⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 promoni.h

📁 这是一个关于操作系统进程调度的实验
💻 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 + -