1、实验报告(学生打印后提交)实验名称: 作业调度系统 实验时间: 2015 年 6 月 4 日实验人员:_(姓名)_(学号)_(年级)实验目的: 理解操作系统中调度的概念和调度算法。 学习 Linux下进程控制以及进程之间通信的知识。 理解在操作系统中作业是如何被调度的,如何协调和控制各个作业对 CPU的使用 实验环境: linux 实验步骤:1. 1、调用 vi 编辑器修改 job.h 文件,为命名管道 FIFO设置正确的路径,修改语句:#defineFIFO /home/student/SVRFIFO 2. 修改 scheduler.c 文件,添加作业的打印信息,即修改函数 do_stat,要求再输出作业名称、当前优先级、默认优先级 。 3. 在 printf( “JIDtPIDtOWNERtRUNTIMEtWAITTIMEtCREATTIMEttSTATEn”);语句中添加 JOBNAME、CURPRI、DEFPRI。 4. 接下来的两个输出语句根据表头修改,注意 printf语句的输出格式,输出的信息内容参照jobinfo结构体 。 、用 gcc 分别编译连接作业调度程序、三个命。
2、令程序。、在一个控制台窗口中运行作业调度程序作为服务端。、提交一个运行时间超过 100毫秒的作业(要求提供源程序) ,并编译连接。.再打开一个窗口登录服务器作为客户端,在其中运行作业控制命令(提交作业、删除作业、查看信息),在服务端观察调度情况,分析所提交作业的执行情况。 实验陈述:1、基础知识: 说明进程与程序的区别: 程序是静态的指令集合,不占用系统的运行资源,可以长久保存在磁盘。进程是进程实体(程序、数据和进程控制块构成)的运行过程,是系统进行资源分配和调度的一个独立单位。进程执行程序,但进程与程序之间不是一一对应的。通过多次运行,同一程序可以对应多个进程;通过调用关系,一个进程可以包含多个程序。 说明进程与作业的区别: 作业是用户一个事务处理过程中要求计算机系统所做工作的集合,作业可以包含几个进程。 说明作业调度与进程调度的区别: 作业调度是按照一定的原则从外存的作业后备队列中选择作业调入内存,并为其分配资源,创建相应的进程,然后进入就绪队列。进程调度是按照某种策略或方法从就绪队列中选择进程,将处理机分配给它。 2、 实验知识 本实验作业有几种状态 READY:作业准备就绪可以。
3、运行。 RUNNING:作业正在运行DONE:作业已经运行结束,可以退出。有这三种状态,但只用到前两种。 本实验作业控制命令处理程序包括:有三个作业控制命令处理程序:作业入队命令 enq,作业出队命令,作业状态查看命令 分别实现什么功能 :作业入队命令:给 scheduler 调度程序发出入队请求,将作业提交给系统运行作业出队命令 deq:给 scheduler调度程序发出一个出队请求作业状态查看命令 stat:在标准输出上打印出当前运行作业及就绪队列中各作业的信息,包括:进程的 pid;作业提交者的 user name;作业执行的时间;在就绪队列中总的等待时间;作业创建的时刻;此时作业的状态 本实验采用什么进行进程之间的通信 FIFO 它相当于什么作用 1、调度程序负责创建一个 FIFO文件;2、命令程序负责把命令按照 struct jobcmd 格式写进 FIFO中;3、调度程序从 FIFO中读取用户提交的命令。 3、完成下列程序问题 根据自己创建的目录更改 fifo文件存在的路径,请写出更改的路径名 #define FIFO /home/student/SVRFIFO 在打印出作业名称的时候应该注意什么问题 在 printf( “JIDtPIDtOWNERtRUNTIMEtWAITTIMEtCREATTIMEttSTATEn”);语句中添加 JOBNAME、CURPRI、DEFPRI,在接下来的两个输出语句根据表头修改,注意printf语句的输出格式,输出的信息内容参照 jobinfo结构体进行修改。 提交一个运行时间超过 100毫秒的作业 运行作业调度程序,分析提交作业的执行情况 运行作业调度程序,系统将作业调入内存,并为其分配资源,从上面的图中可以看出为作业创建了作业 id和进程 id。 实验总结:通过本次实验我更加深刻地理解了命名管道(FIFO)可实现调度进程与命令程序间的通信,deq、enq、stat 等命令的使用方法。更加巩固了一些常用命令的学习。 。
《四川大学计算机操作系统第四实验报告》由会员宝路分享,可在线阅读,更多相关《四川大学计算机操作系统第四实验报告》请在金锄头文库上搜索。