中易网

cpu的三级调度是啥意思?

答案:2  悬赏:70  
解决时间 2021-02-16 19:21
cpu的三级调度是啥意思?
最佳答案
所谓调度就是选出待分派的作业或进程。

处理机调度的主要目的就是为了分配处理机。

在不同的操作系统中所采用的调度方式并不完全相同。有的系统中仅采用一级调度,而有的系统采用两级或三级,并且所用的调度算法也完全可能不同。

一般说来,作业从进人系统到最后完成,可能要经历三级调度:高级调度、中级调度和低级调度。

(1)高级调度:又称作业调度。其主要功能是根据一定的算法,从输人的一批作业中选出若干个作业,分配必要的资源,如内存、外设等,为它建立相应的用户作业进程和为其服务的系统进程(如输人、输出进程),最后把它们的程序和数据调人内存,等待进程调度程序对其执行调度,并在作业完成后作善后处理工作。

(2)中级调度:为了使内存中同时存放的进程数目不至于太多,有时就需要把某些进程从内存中移到外存上,以减少多道程序的数目,为此设立了中级调度。特别在采用虚拟存储技术的系统或分时系统中,往往增加中级调度这一级。所以中级调度的功能是在内存使用情况紧张时,将一些暂时不能运行的讲程从内存对换到外存上等待。当以后内存有足够的空闲空间时,再将合适的进程重新换人内存,等待进程调度。引人中级调度的主要目的是为了提高内存的利用率和系统吞吐量。它实际上就是存储器管理中的对换功能。

(3)低级调度:又称进程调度。其主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。执行低级调度功能的程序称做进程调度程序,由它实现CPU在进程间的切换。进程调度的运行频率很高,在分时系统中往往几十毫秒就要运行一次。进程调度是操作系统中最基本的一种调度。在一般类型的操作系统中都必须有进程调度,而且它的策略的优劣直接影响整个系统的计能。
全部回答
进程调度源程序如下: jingchendiaodu.cpp #include "stdio.h" #include <stdlib.h> #include <conio.h> #define getpch(type) (type*)malloc(sizeof(type)) #define null 0 struct pcb { char name[10]; char state; int super; int ntime; int rtime; struct pcb* link; }*ready=null,*p; typedef struct pcb pcb;     sort() { pcb *first, *second; int insert=0; if((ready==null)||((p->super)>(ready->super))) { p->link=ready; ready=p; } else { first=ready; second=first->link; while(second!=null) { if((p->super)>(second->super)) { p->link=second; first->link=p; second=null; insert=1; } else { first=first->link; second=second->link; } } if(insert==0) first->link=p; } } input() { int i,num; clrscr(); printf("\n 请输入进程号?"); scanf("%d",&num); for(i=0;i<num;i++) { printf("\n 进程号no.%d:\n",i); p=getpch(pcb); printf("\n 输入进程名:"); scanf("%s",p->name); printf("\n 输入进程优先数:"); scanf("%d",&p->super); printf("\n 输入进程运行时间:"); scanf("%d",&p->ntime); printf("\n"); p->rtime=0;p->state='w'; p->link=null; sort(); } } int space() { int l=0; pcb* pr=ready; while(pr!=null) { l++; pr=pr->link; } return(l); } disp(pcb * pr) { printf("\n qname \t state \t super \t ndtime \t runtime \n"); printf("|%s\t",pr->name); printf("|%c\t",pr->state); printf("|%d\t",pr->super); printf("|%d\t",pr->ntime); printf("|%d\t",pr->rtime); printf("\n"); } check() { pcb* pr; printf("\n **** 当前正在运行的进程是:%s",p->name); disp(p); pr=ready; printf("\n ****当前就绪队列状态为:\n"); while(pr!=null) { disp(pr); pr=pr->link; } } destroy() { printf("\n 进程 [%s] 已完成.\n",p->name); free(p); } running() { (p->rtime)++; if(p->rtime==p->ntime) destroy(); else { (p->super)--; p->state='w'; sort(); } } main() { int len,h=0; char ch; input(); len=space(); while((len!=0)&&(ready!=null)) { ch=getchar(); h++; printf("\n the execute number:%d \n",h); p=ready; ready=p->link; p->link=null; p->state='r'; check(); running(); printf("\n 按任一键继续......"); ch=getchar(); } printf("\n\n 进程已经完成.\n"); ch=getchar(); }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
每条染色体上都有染成不同颜色的区域,每个区
力帆特约服务站襄阳鑫顺利店地址在哪,我要去
涡虫眼点是干什么的
请问Driver Utility Ver.1.5是什么东西?
奔腾电脑地址在什么地方,想过去办事
上海莱尼线束普工工资待遇
TPLINK 710N型迷你无线路由的设备接入上线是
求助:s7-300里面的FB块打不开怎么办?
泰宁餐馆(东新三路)怎么去啊,有知道地址的么
Svi胜威国际拆分盘是怎么赚钱的
gcd使用block需要注意什么
南达养生堂怎么去啊,有知道地址的么
每周放弃几个小时来帮助别人英文
正方五金这个地址在什么地方,我要处理点事
医疗保险每月个人缴交的金额不定吗?
推荐资讯
河马的洗澡方式是什么?犀牛的洗澡方式又是什
加油站以(人民南路店)怎么去啊,有事要去办理
红梦小提琴教学中心地址有知道的么?有点事想
X LOVERS的罗马音,歌手是Alice
求excel中随机生成时间的公式
vivoice这款手机多少钱
苏州面积最大的镇
塑料餐盒是什么材料?
两年前在驾校交了学费 还没去学过 没去考过
生化为什么开游戏老是一闪一闪的
快手网红拍段子的 视频软件 可以添加音乐 还
非智能手机中的游戏怎样卸载
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?