文章目录
Unity模拟操作系统&&按优先数调度算法实现处理器调度(总代码在文末)
众所周知,Unity是一个游戏引擎,它已经是在底层上做了很多封装的结果,那么用Unity写操作系统肯定就是不可能的,但是我这里尝试用Unity模拟一些操作系统中的算法,调度,主要是熟悉Unity开发以及学习C#中的一些算法,话不多说,直入主题----
题目要求
假定系统有5个进程,每个进程用一个PCB来代表。PCB的结构为:
·进程名——如P1~P5。
·指针——按优先数的大小把5个进程连成队列,用指针指出下一个进程PCB的首地址。
·要求运行时间——假设进程需要运行的单位时间数。
·优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行。
·状态——假设两种状态:就绪和结束,用R表示就绪,用E表示结束。初始状态都为就绪状态。
(2) 开始运行之前,为每个进程确定它的“优先数”和“要求运行时间”。通过键盘输入这些参数。
(3) 处理器总是选择队首进程运行。采用动态改变优先数的办法,进程每运行1次,优先数减1,要求运行时间减1。
(4) 进程运行一次后,若要求运