操作系统中为什么需要调度?
首先硬件机制上如何保证操作系统的内核调度进程可以一定的时机可以获得CPU,来进行进程调度.?
通常我们会在软件层次上找答案.其实,是通过在CPU的硬件处理机制上实现的.CPU在执行完每个指令的周期后回扫描CPU的内部的一个中断寄存器,查询是否存在中断发生,若没有,则继续执行指令;若有,则保存当前的CPU工作环境,跳转到中断服务列程,CPU执行中断服务程序,在推出中断后,跳转到内核调度程序(这是个内核程序,但是是对所有的进程共享的,包括用户进程);此时,内核调度程序占据CPU,进行进程的调度,以决定下个将占用CPU的进程.
接下来就要谈谈什么时候会需要进行进程调度?
在教科书书说到的有几种情况:1时间片到,即每个进程所分配的时间片用完后,要跳转到调度程序; 2 占用CPU的当前运行进程提出I/O操作,发起对内核的系统调用时,在系统调用结束后,跳转到调度程序; 3 我自己的想法: 当前运行进程对所有内核系统调用的结束时都要跳转到调度程序,根据当前的调度信息来决定下一个可以占用CPU的进程. 我所指的系统调用也包括中断列程.不过对与具体的调度时机,很多书上都写的不清不楚,真不知道他们不懂,还是不屑于写出来告诉我们. 其实除了在大多数硬件中断的触发后跳转到调度程序, 每个时钟中断发生的时候,我觉得都需要跳转到调度程序.(在进入时钟中断列程中,要对进程表中的所有的进程的调度信息进行更新和对各个进程队列的处理),对更新后的进程信息进行处理以决定调度哪个进程. 通常的教科书中都将硬件物理的处理机制和软件的调度处理机制分开,在物理和逻辑两个层次上分开谈,不利于我们理解.最好是把这两个结合起来理解进程调度的工作机制.目前需要解决的是:在什么时候需要内核调度程序占据CPU来调度? 至于调度的算法那就是逻辑层次上要考虑的东西.
其实看了这么多,我也有了些小论文的想法, 因为做的方向是应用在电子电力电路上的嵌入系统控制.该应用对嵌入操作系统的性能就有些特殊的需求:首先体积要小,速度快;内核就要小,进程调度要实现抢占式任务调度,且调度切换要快.它的进程调度与通用操作系统的进程调度不同,这是因为它们的要求不一样,嵌入式通常是要求是实时,且严格的讲在电路上的控制系统应该是硬实时,而不象通用系统是非实时,或者是软实时.这跟它们对实时性的要求不同.所以我初步定个题目 "嵌入式系统和通用系统在进程调度上比较和分析,并针对特定的电路控制嵌入实时系统提出一个调度策略". 我想我从明天开始就要准备这方面的资料,分析分析,比较比较,弄篇小论文出来,,不然我都快给它凡死了.
操作系统-----进程调度
[color=Silver][/color][color=Gray][/color][color=Fuchsia][/color][color=Blue][/color][color=Aqua][/color][color=Lime][/color][size=4][font=楷体_GB2312][b]要求:实现按优先级与时间片相结合的进程调度算法
内容:
1:设计进程控制快,进程队列结构(包括:就绪队列,等待队列,运行队列)等必要的数据结构。
2:模拟操作系统进程调度的功能,编写进程调度程序,模拟的处理机分派程序,进程等待函数和进程唤醒函数。
3:编写用户程序,创建6个用户进程。
进程调度的设计方法
1。
数据结构
(1)优先级与时间片的设计
◆进程因等待放弃CPU时,优先级置为1(高优先级)
◆进程因时间片到放弃CPU时,优先级置为0(低优先级)
◆优先1对应时间片4;优先级0对应时间片10。
(2)进程控制块(PCB)的内容
进程标识3---9
进程优先级 0,1
进程优先级 0,1
进程等待时间 20
链接指针
2:程序算法
(1)PCB结构,变量与主程序
struct PCB
{
int pname;
int pri;
int runtime;
int waitting;
struct PCB*next;
}
pcb[7];
struct PCB*running,ready,wait;
int sin=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]
我们在选择虚拟主机和云服务器的时候,是不是经常有看到有的线路是BGP线路,比如前几天有看到服务商有国际BGP线路和国内BGP线路。这个BGP线路和其他服务线路有什么不同呢?所谓的BGP线路机房,就是在不同的运营商之间通过技术手段时间各个网络的兼容速度最佳,但是IP地址还是一个。正常情况下,我们看到的某个服务商提供的IP地址,在电信和联通移动速度是不同的,有的电信速度不错,有的是移动速度好。但是如果...
如今我们网友可能较多的会选择云服务器、VPS主机,对于虚拟主机的话可能很多人不会选择。但是我们有些外贸业务用途的建站项目还是会有选择虚拟主机的。今天看到的Stablehost 商家虚拟主机在黑五期间也有四折优惠,对于这个服务商而言不是特别的喜欢,虽然他们商家和我们熟悉的老鹰主机商有些类似,且在后来老鹰主机改版和方案后,Stablehost 商家也会跟随改版,但是性价比认为不如老鹰主机。这次黑色星期...
快云科技已稳步运行进两年了 期间没出现过线路不稳 客户不满意等一系列问题 本司资质齐全 持有IDC ICP ISP等正规手续 有独特的网站设计理念 在前几天刚是参加过魔方系统举行的设计大赛拿获最佳设计奖第一名 本公司主营产品 香港弹性云服务器,美国vps和日本vps,香港物理机,国内高防物理机以及美国日本高防物理机 2020年的国庆推出过一款香港的回馈用户特惠机 已作为传家宝 稳定运行 马上又到了...
调度系统为你推荐
溢出隐藏overflow:hidden:溢出隐藏了。天融信防火墙笔记本怎么登陆天融信防火墙spawning在c语言编译时出现Error spawning cl.exe,是怎么回事?faq是什么意思fans是什么意思?booth算法利用补码booth计算【xy】补,其中x=0.1110,y=-0.1101清除电脑垃圾怎样清除电脑垃圾51信用卡论坛刚才发现51信用卡管家可以查个人征信了,就查了下信用卡信用记录。这是截图,大家帮我看看我的这个逾期jsindexofjavascript 中indexof 的用法暴力破解密码用什么方法才能破解别人密码什么是句柄按键精灵的句柄是什么?
me域名 老域名全部失效请记好新域名 华为云服务 秒解服务器 河南m值兑换 789电视网 老左来了 me空间社区 股票老左 微软服务器操作系统 工信部icp备案查询 广州主机托管 北京主机托管 restart 什么是dns 认证机构 hosts文件修改 超低价 shuangshiyi dns是什么意思 更多