操作系统(进程调度)实验报告

2019-01-12 19:14

操作系统原理(进程调度)实验报告

实验一:动态优先权 一.实验目的:

(1).理解进程创建的相关理论; (2).掌握进程创建方法; (3).掌握进程相关的数据结构; (4).了解进程的调度算法;

二.实验内容:

1、最好采用图形界面; 2、可随时增加进程;

3、规定道数,设置后备队列和挂起状态。若内存中进程少于规定道数,可自动从后备队列调度一作业进入。被挂起进程入挂起队列,设置解挂功能用于将指定挂起进程解挂入就绪队列。 4、每次调度后,显示各进程状态。

三.实验步骤

1.创建进程PCB。包括进程ID,优先权,执行时间,占用cpu时间,状态五个部分;

struct Process {

int id;

int priority; int cputime;

int alltime;

enum STATE state; }process[N];

2.初始化进程队列。进程号用ID表示,优先权随机设定,状态均置为ready;

void Init() {

srand((unsigned)time(NULL)); for(int i=0;i

process[i].alltime = rand()%3+3; process[i].state = ready; TIME += process[i].alltime; }

Sort(); Print(); flag = 1; }

3.运行进程。首轮按优先权大小排列进程执行顺序,优先权最大的最先执行,首轮执行后,运行程序优先权减2,未执行程序优先权加1.第二轮再按优先权顺序排序执行,以此类推,直到所有程序执行完成。

..........

附录(源代码):

#include #include #include #define N 5

enum STATE{ready,run,finish};

struct Process { int id; int priority; int cputime; int alltime; enum STATE state; }process[N];

int Rseq[N]; int flag = 0;

int TIME = 0;

void Print() { printf(\

=============================================================\\n\ printf(\ id priority cputime alltime state \\n\ for(int i=0;i

=============================================================\\n\\n\ }

void Sort() { int temp; for(int i=0;i

void Init() { srand((unsigned)time(NULL)); for(int i=0;i

process[i].alltime = rand()%3+3; process[i].state = ready; TIME += process[i].alltime; } Sort(); Print(); flag = 1; }

void Run() { for(int i=0;i<=TIME;i++) { printf(\ run process:%d\\n\ for(int j=0;j

main() { Init(); Run(); }


操作系统(进程调度)实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018年度《法律法规和其他要求清单》 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: