论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
此设计报告是对操作系统中进程调度的两种算法,即静态优先权调度算法和需要时间片的转法进行了描述,并分析了它们的工作机理。
最高优先权调度算法的基本思想是把CPU分配给就绪队列中优先权最高的进程。静态优先数是在创建进程时确定的,并在整个进程运行期间不再改变。
简单轮转法的基本思想是:所有就绪进程按 FCFS排成一个队列,总是把处理机分配给队首的进程,各进程占用CPU的时间片相同。如果运行进程用完它的时间片后还未完成,就把它送回到就绪队列的末尾,把处理机重新分配给队首的进程,直至所有的进程运行完毕。
然后用具体语言模拟了一个进程调度的程序。用户可以自己输入产生进程,然后选择调度方式进行调度。所用的语言为VisualBasic.Net,结果显示了调度运行过程。
问题描述和分析 ……………………………………………… 4
算法设计 …………………………………………………… 5
源代码及说明 ………………………………………………… 5
结果与分析 ………………………………………………………17
参考文献……………………………………………………… 18
一、问题描述和分析
问题描述
CPU调度是多道程序操作系统的基础,几乎所有计算机资源在使用前都要被调度,因此,CPU调度对于操作系统来说非常重要。
假如操作系统中存在若干进程,这些进程,将会被按照指定的调度方式,由CPU进行调度。
本程序,用来模拟实现操作系统中的两种调度方法,即:优先权调度和轮转法调度。
下面对四种调度方法进行描述
优先权调度(priority-scheduling algorithm):在这种方式下,每一个进程都有一个优先权与其关联,具有最高优先权的进程会被分配到CPU,具有相同优先权的进程按FCFS顺序调度。
(科教作文网http://zw.nseAc.com)
二、算法设计
主要设计思想
在主程序中,通过选择结构,调用两种调度算法。
各种调度算法实现
首先建立一个进程类, 然后建立一个调度类,通过这个类来执行调度算法。再建立一个链表,用来存放这些进程。
优先权调度:在优先权调度中,每产生一个进程,程序会记录进程的优先权,然后按产生的先后顺序插入。当当前进程结束时,程序从链表中取出一个优先权最高的进程执行。
轮转法调度:由用户定义一个时间片。在每个时间片中,程序执行一个进程。当时间片结束后,程序将结束当前执行的进程,从链表中调入下一个进程,并将当前执行的进程插入到链表尾部。整个链表相当于一个循环队列。
三、源代码及说明
1优先级调度算法源代码
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim d As Integer
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If Label7.Width < 200 Then
Label7.Visible = True (科教范文网http://fw.NSEAC.com编辑发布)
Label7.Width += 10
Label17.Visible = True
Label16.Visible = False
Label18.Visible = False
Else
Label17.Visible = False
Label18.Visible = False
Label16.Visible = True
a = 6
End If
If a < b And a < c And a < d Then
Timer1.Enabled = True
End If
If b < a And b < c And b < d Then
&n