1、实验报告实验名称: 作业调度系统 实验时间:2015 年 05 月 21 日实验人员:_于泽渊_(姓名)_2013141462034_(学号)_2013_(年级)实验目的: 理解操作系统中调度的概念和调度算法。 学习 Linux 下进程控制以及进程之间通信的知识。 理解在操作系统中作业是如何被调度的,如何协调和控制各个作业对 CPU 的使用。实验环境: linux 实验步骤:1. 用帐户 student 登录,密码 student 2. 自己用学号建立目录,以便在此目录中操作 3. 按实验须知要求修改程序,在自建的目录中编译各个程序并运行 4. 观察实验结果 实验陈述:1、基础知识:说明进程与
2、程序的区别:程序是静态的指令集合,不占用系统的运行资源,可以长久保存在磁盘;而进程是进程实体(程序、数据和进程控制块构成)的运行过程,是系统进行资源分配和调度的一个独立单位。进程执行程序,但进程与程序之间不是一一对应的。说明进程与作业的区别:作业是指用户一个事务处理过程中要求计算机系统所做工作的集合,包括用户程序、所需的数据及命令等。作业可以包含多个进程。 说明作业调度与进程调度的区别:作业调度又称高级调度,不涉及处理机的分配,主要任务是按一定的原则从外存上处于后备状态的作业中挑选一个(或多个)作业调入主存,为其分配内存、I/O 设备等必要的资源,并建立相应的进程,安排在就绪队列上,以使进程获
3、得竞争处理机的权利。进程调度又称低级调度,主要任务是按照某种策略和方法选取一个处于就绪状态的进程,将处理机分配给它。 2、 实验知识本实验作业有几种状态 三种作业状态:READY:作业准备就绪可以运行,RUNNING:作业正在运行,DONE:作业已经运行结束,可以退出。 本实验作业控制命令处理程序包括:enq,deq,stat 分别实现什么功能 给 scheduler 调度程序发出入队请求,将作业提交给系统运行。 给 scheduler 调度程序发出一个出队请求 在标准输出上打印出当前运行作业及就绪队列中各作业的信息 本实验采用什么进行进程之间的通信 调度程序负责创建一个 FIFO 文件,命令
4、程序负责把命令按照 struct jobcmd 格式写进 FIFO 中,调度程序从 FIFO 中读取用户提交的命令。 它相当于什么作用 命名管道 3、完成下列程序问题 根据自己创建的目录更改 fifo 文件存在的路径,请写出更改的路径名 /dev/sdb1/2013141462183/SVRFIFO 在打印出作业名称的时候应该注意什么问题 使用 job-current-cmdargs 提交一个运行时间超过 100 毫秒的作业 #include int main(void) int i = 1; for(;i 777777; i +) printf(“%d“,i * 2013141462183%2013141462180); 运行作业调度程序,分析提交作业的执行情况 实验总结:1.进一步熟悉了 vi 操作、gcc 编译、挂载等命令 2.对命名管道的建立及其工作流程有了一个更清晰的了解 3.对队列的管理有了一个比较直观的认识