导读 大家好,小俊来为大家解答以上问题。进程调度,进程调度很多人还不知道,现在让我们一起来看看吧!1、高级调度:也称为作业调度。2、它的主

大家好,小俊来为大家解答以上问题。进程调度,进程调度很多人还不知道,现在让我们一起来看看吧!

1、高级调度:也称为作业调度。

2、它的主要功能是按照一定的算法从一批输入作业中选择若干个作业,分配必要的资源,如内存和外设,为其设置相应的用户作业进程和系统进程(如输入输出进程),最后将它们的程序和数据转移到内存中,等待进程调度程序进行调度,作业完成后做后处理工作。

3、低层调度:也称为进程调度,它的主要功能是按照一定的算法将CPU分配给就绪队列中的一个进程。

4、执行底层调度功能的程序称为进程调度程序,它实现了CPU在进程间的切换。

5、进程调度运行频率很高,在分时系统中往往几十毫秒运行一次。

6、它是进程调度操作系统中最基本的调度。

7、一般操作系统都要有进程调度,其策略直接影响整个系统的能量计算。

8、中间调度:也称为交换调度。

9、为了避免同时存储在内存中的进程数量过大,有时需要将一些进程从内存中移到外存中,以减少多个程序的数量。

10、因此,设置了中间调度。

11、特别是在采用虚拟存储技术或分时系统的系统中,经常要增加中间调度级。

12、所以中间调度的作用就是把一些暂时不可用的程序从内存交换到外存,在内存使用紧张的时候等待。

13、当将来内存中有足够的空闲空间时,用适当的进程替换内存并等待进程调度。

14、引入中间调度的主要目的是提高内存利用率和系统吞吐量。

15、 其实就是内存管理中的交换功能。

16、先说进程调度策略(参考资料):一、如何保证操作系统的内核调度进程能在某个时间得到CPU对于进程调度?通常我们在软件层面找到答案。

17、其实是通过CPU的硬件处理机制来实现的。

18、CPU执行每个指令周期后,扫描CPU内部的一个中断寄存器,检查是否有中断,如果没有,继续执行指令;如果是,保存当前CPU工作环境,跳转到中断服务例程,CPU执行中断服务例程。

19、中断发起后,跳转到内核调度程序(这是一个内核例程,但被所有进程共享,包括用户进程);此时,内核调度程序占用CPU,并调度进程以确定下一个将占用CPU的进程。

20、接下来,什么时候需要进程调度?教材中提到了几种情况:33601时间片到了,即每个进程用完分配的时间片后,要跳转到调度器;2.当当前运行的占用CPU的进程提出I/O操作并向内核发起系统调用时,在系统调用结束后跳转到调度程序;3我自己的想法:3360在所有内核系统调用结束时,当前运行的进程要跳转到调度器,根据当前的调度信息决定下一个可以占用CPU的进程。

21、我所指的系统调用也包括中断调度。

22、但是很多书都不清楚具体的调度时机。

23、我真不知道他们是不是不懂。

24、我还是懒得写出来告诉我们。

25、其实除了大部分硬件中断触发后跳转到调度器,我觉得我每次时钟中断发生都需要跳转到调度器。

26、(在进入时钟中断队列时,我需要更新进程表中所有进程的调度信息,处理每个进程队列),对更新后的进程信息进行处理,决定调度哪个进程。

27、通常在教科书中,硬件的物理处理机制和软件的调度处理机制是分开的,不利于我们的理解。

28、最好把两者结合起来理解进程调度目前的工作机制,需要解决的是3360什么时候需要内核调度程序占用CPU进行调度?至于调度算法,是要在逻辑层面考虑的事情。

29、其实看了这么多,对小论文还是有一些想法的,因为做这个的方向是应用于电子电源电路的嵌入式系统控制。

30、这种应用对嵌入式操作系统的性能有一些特殊的要求。

31、3360首先要小,要快;内核要小,进程调度要实现抢占式任务调度,调度切换要快。

32、它的进程调度不同于通用操作系统的进程调度,因为它们的要求不同。

33、嵌入式系统通常要求实时性,严格来说电路上的控制系统应该是硬实时的,而不是像通用系统那样的非实时性。

34、或者软实时。

35、这与他们对实时性的要求不同。

36、因此,我暂定了一个题目《进程调度,上嵌入式系统与通用系统的比较分析及针对特定电路控制嵌入式实时系统的调度策略》。

37、我想我会把这些资料准备好,从明天开始分析对比,弄个小论文,不然我就杀了它。

38、操作系统-进程调度[color=silver][/color][color=gray][/color][color=fuchsia][/color][color=blue][/color][color=aqua][/color][color=lime][/color][size=4][font=italics _ GB 2312][b]要求:实现优先级与时间片相结合的进程调度算法。

39、内容:1。

40、设计必要的数据结构,如快速流程控制和流程队列结构(包括就绪队列、等待队列和运行队列)。

41、2.模拟操作系统进程调度,的功能编写进程调度程序,模拟处理器调度程序,进程等待功能和进程唤醒功能。

42、3.编写用户程序并创建6个用户进程。

43、进程调度1的设计方法。

44、 数据结构(1)优先级和时间片的设计进程因等待而放弃CPU时,优先级设为1(高优先级)进程因时间片而放弃CPU时,优先级设为0(低优先级)优先级1对应时间片4;优先级0对应于时间片10。

45、(2)进程控制块(PCB)进程标识的内容3-9进程优先级0,1进程优先级0,1进程等待时间20链接指针2:程序算法(1)PCB结构、变量和主程序struct PCB { int pnameint priint运行时;等待中;struct PCB * next} PCB[7];struct PCB *正在运行,就绪,等待;国际标准n=0; main() { 创建PCB[3]--PCB[9]并插入ready队列;/*pname分别为3--9, pri=0,runtime=10,waittime=0 */ for(;;)/*系统程序,完成初始化和处理机分派功能 */ {cast{sig=0:swtch; sig=1:waiter; sig=3:proc3; sig=4:proc4; sig=5:proc5; sig=6:proc6; sig=7:proc7; sig=8:proc8; sig=9:proc9;} } } (2) 进程调度程序 swtch() { while(ready==NULL)wakeup(); 移出就绪队列第一个PCB; 送running指针; 若pri=1,则runntime=4,否则runtime=10; 将running→pname 送sig } (3) 将进程等待函数 wait() {将运行进程插入wait队列,优先数置1; sig=0; } (4) 进程唤醒函数 wakeup() { 将wait队列中所有的PCB中waittime减1; 将wait队列中的所有的waittime=0的PCB揭除; 插入到ready队列中第一个优先级为0的PCB前面 }[/b][/font][/size]。

本文到此结束,希望对大家有所帮助。