- 博客(0)
- 资源 (7)
- 收藏
- 关注
单处理器系统的进程调度
实验二 单处理器系统的进程调度
1.实验目的
加深对进程概念的理解,明确进程和程序的区别;
深入了解系统如何组织进程、创建进程;
进一步认识如何实现处理器调度。
2.实验预备知识
进程的概念;
进程的组织方式;
进程的创建;
进程的调度。
3.实验内容
编写程序完成单处理机系统中的进程调度,要求采用时间片轮转调度算法。实验具体包括:首先确定进程控制块的内容,进程控制块的组成方式;然后完成进程创建原语和进程调度原语;最后编写主函数对所作工作进程测试。
4.提示与讲解
这个实验主要要考虑三个问题:如何组织进程、如何创建进程和如何实现处理器调度。
考虑如何组织进程,首先就要设定进程控制块的内容。进程控制块PCB记录各个进程执行时的情况。不同的操作系统,进程控制块记录的信息内容不一样。操作系统功能越强,软件也越庞大,进程控制块记录的内容也就越多。这里的实验只使用了必不可少的信息。一般操作系统中,无论进程控制块中信息量多少,信息都可以大致分为以下四类:
① 标识信息
每个进程都要有一个惟一的标识符,用来标识进程的存在和区别于其他进程。这个标识符是必不可少的,可以用符号或编号实现,它必须是操作系统分配的。在后面给出的参考程序中,采用编号方式,也就是为每个进程依次分配一个不相同的正整数。
2012-04-06
高响应比优先调度算法
实验一 批处理系统的作业调度
1.实验目的
加深对作业概念的理解;
深入了解批处理系统如何组织作业、管理作业和调度作业;
2.实验预备知识
作业的概念;
作业的创建;
作业的调度。
3.实验内容
编写程序完成批处理系统中的作业调度,要求采用响应比高者优先的作业调度算法。实验具体包括:首先确定作业控制块的内容,作业控制块的组成方式;然后完成作业调度;最后编写主函数对所作工作进程测试。
4.提示与讲解
操作系统根据允许并行工作的道数和一定的算法从系统中选取若干作业把它们装入主存储器,使它们有机会获得处理器运行,这项工作被称为“作业调度”。实现这部分功能的程序就是“作业调度程序”。
作业调度的实现主要有两个问题,一个是如何将系统中的作业组织起来;另一个是如何进行作业调度。
为了将系统中的作业组织起来,需要为每个进入系统的作业建立档案以记录和作业相关的信息,例如作业名、作业所需资源、作业执行时间、作业进入系统的时间、作业信息在存储器中的位置、指向下一个作业控制块的指针等信息。这个记录作业相关信息的数据块称为作业控制块(JCB),并将系统中等待作业调度的作业控制块组织成一个队列,这个队列称为后备队列。一个作业全部信息进入系统后,就为其建立作业控制块,并挂入后备队列。当进行作业调度时,从后备队列中查找选择作业。
由于实验中没有实际作业,作业控制块中的信息内容只使用了实验中需要的数据。作业控制块中首先应该包括作业名;其次是作业所需资源,根据需要,实验中只包括需要主存的大小(采用可移动的动态分区方式管理主存,作业大小就是需要主存的大小)、需要打印机的数量和需要磁带机的数量;采用响应比作业调度算法,为了计算响应比,还需要有作业的估计执行时间、作业在系统中的等待时间;另外,指向下一个作业控制块的指针必不可少。
2012-04-06
统计数字问题
问题描述:
一本书的页码从自然数1开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如第6页用6表示,而不是06或006。数字统计问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1,2,3,…,9。
编程任务:
给定表示书的总页码的十进制整数n(1<<n<<109)。编程计算书的全部页码中分别用到多少次数字0,1,2,3,…,9。
数据输入:
输入数据由文件名input.txt的文本文件提供。每个文件只有1行,给出表示书的总页码的整数n。
结果输出:
程序运行结束时,将计算结果输出到文件output.txt中。输出文件共有10行,在第k行输出页码中用到数字k-1的次数,k=1,2,3,…,10。
输入文件示例 输出文件示例
Input.txt output.txt
11 1
4
1
1
1
1
1
1
1
1
1
问题分析:
考察由0,1,2,3,…,9组成的所有n位数。从n个0到n个9共有10^n个n位数。在这10^n个n位数中,0,1,2,3,…,9每个数字使用次数相同,设为f(n)。f(n)满足如下递归式:
f(n) = 10f(n-1)+10^(n-1)………………… (n>1)
f(n) =1……………………………………… (n=1)
由此可知,f(n)=n*10^(n-1)。
据此,可从高位向低位进行统计,再减去多余的0的个数即可。
2012-03-03
计算两个整数的最大公约数
计算两个整数的最大公约数
1、用于计算gcd(m,n)的欧几里得算法
第一步:如果n=0,返回m的值作为结果,同时过程结束;否则,进入第二步。
第二步:m除以n,将余数赋给r。
第三步:将n的值赋给m,将r的值赋给n,返回第一步。
2、用于计算gcd(m,n)的连续整数检测算法
第一步:将min(m,n)的值赋给t。
第二步:m除以t,如果余数为0,进入第三步;否则,进入第四步。
第三步:n除以t,如果余数为0,返回t的值作为结果;否则,进入第四步。
第四步:把t的值减1。返回第二步。
3、中学里计算gcd(m,n)的过程
第一步:找出m的所有质因数。
第二步:找出n的所有质因数。
第三步:从第一步和第二步求得的质因数分解式中找出所有的公因数(如果p是一个公因数,而且在m和n的质因数分解式中分别出现过pm和pn次,那么应该将p重复min{pm,pn}次)。
第四步:将第三步中找到的质因数相乘,其结果作为给定数字的最大公约数。
2012-03-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人