最近阳阳接下了一个任务:编写一个操作系统。
编写操作系统可是一个大工程,阳阳花费了很多时间在上面,他本想很快完成的,但是IOI在即,再怎么样也不能耽误了世界赛啊!但是雇主的要求有很严格,要求阳阳一定要在IOI之前完成这个系统的编写,所以他不得不找到你请求帮助,人多力量大嘛,你就帮帮他咯。
你的任务很简单,只要编写一个内存管理系统就可以了。你的程序需要支持以下9个操作:
CreateProcess(PID,Memory,Priority):新建一个过程,编号为PID,其占用的内存为Memory,优先级(称为外部优先级)为Priority;
AddMessage(PID,Priority):在过程PID中新建一个任务,其优先级(称为内部优先级)为Priority;
Run:在当前所有任务中间找出一个优先级最高的运行并输出’Run: Priority’,这里的优先级定义为其内部优先级与外部优先级的积,如果两个任务的优先级一样则优先运行PID较小的任务,如果没有任何任务则输出’Empty’;
ChangePriority(PID,NewValue):将过程PID的外部优先级改变为NewValue;
GetMemory(PID,Memory):将过程PID的内存占用增加Memory;
FreeMemory(PID,Memory):将过程PID的内存占用减少Memory;
RunProcess(PID):将过程PID中找出一个内部优先级最高的运行并输出’Run Process: Priority’,如果该过程中如果没有任何任务则输出’Empty’;
CloseMaxMemory:将当前所有过程中内存占用最高的过程关闭,占用内存一样则选择PID较小的关闭,如果当前没有任何过程则输出’Empty’;
CloseProcess(PID):将过程PID关闭。
PS:
1) 任务运行后自动被删除;
2) 对于CreateProcess,如果PID已经存在则输出’Error’,对于其他操作,如果PID不存在则输出’Error’,这种情况下该操作将被忽略;
3) 当一个过程的内存占用小于等于0时则该过程将被自动关闭;