操作系统原理课程设计

发布 2022-10-05 12:26:28 阅读 3243

《操作系统原理》课程设计。

课题名称:进程调度算法。

姓名:班级:

学号:课程设计起止时间:2023年1月2日——2023年1月7日。

指导教师成绩:

课程设计任务书。

进程调度算法。

一、设计说明。

该程序实现了进程的创建,且对该进程队列进行动态优先权抢占式和时间片轮转算法的调度。

二、详细设计。

1. 流程图。

2. 程序运行环境。

turbo c 2.0

3. 变量的名称、作用及含义说明。

链表结构process,整型变量name表示进程名称,整型变量prior表示优先数,整型变量needtime表示需要执行时间,整型变量cputime表示cpu执行时间,整型变量runtime表示进程执行时间,整型变量state表示运行状态(1:ready, 2:execute, 3:

finish)。

4. 各主要模块的功能表述。

子函数 ]

createp() 用来创建新进程,其中的整型变量n表示需要创建的进程个数;

printp1(h) 用来打印输出时间片轮转算法的创建进程和运行进程的各变量值;

finish(h) 用来判断某个进程是否执行完;

find(h) 用来查找该进程队列中优先数最大的进程;

printp2(h) 用来打印输出动态优先权抢占式算法的创建进程和运行进程的各变量值;

executep_prio(h) 执行动态优先权抢占式进程调度算法;

executep_time(h) 执行时间片轮转进程调度算法;

主函数 ]

main()中使用字符变量select表示a和b中的一个字母,整型变量num表示1至3中的一个数,用双层switch语句实现各模块功能。

5. 程序源**。

#include<>

#include<>

#include<>

#include<>

#define null 0

#define max_pri 100

struct process

int name;

int prio;

int needtime;

int piecetime;

int cputime;

int runtime;

int state;

struct process *next;

typedef struct process process;

process *createp()

process *h,*t,*p;

int i,a;

int ct=0;

for(i=0;i<5;i++)else

p->next=null;

return h;

void printp1(process*h)

process*t;

t=h;printf(" 1:ready 2:execute 3:finish ")

printf(" name priority needtime runtime state");

putchar('');

void printp2(process *h)

process *t;

t=h;printf(" 1:ready 2:execute 3:finish ")

printf(" name piecetime needtime runtime cputime state");

while(t)

putchar('');

int finish(process *h)

int i=1;

process *p;

p=h;if (h!=null)

else p=p->next;

} while (p!=null);

return i;

process*find(process *h)

int max;

process *p,*t;

p=t=h;

if (h!=null)

while(t)

else t=t->next;

process *executep_prio(process *h)

process *t;

while (finish(h)==0)

elseif (t->runtimecputime) t->runtime+=1;

t->prio-=3;

printp1(h);

if (t->state!=3)

sleep(3);

process *executep_time(process *h)

process *t;

while (finish(h)==0)

elseif (t->piecetime>0) t->piecetime-=1;

if (t->runtimecputime) t->runtime+=2;

printp2(h);

if (t->state!=3) sleep(1);

if (t->state!=3) t->state=1;

t=t->next;

sleep(3);

main()

int num,count;

char select;

process *p=null;

while (1)

操作系统原理课程设计

实践教学。兰州理工大学。计算机与通信学院。2007年秋季学期。题目 内存管理模拟系统。专业班级 05软件工程 2 班 姓名 尹盼盼。学号 05240204 指导教师 王旭阳 成绩。目录。操作系统的内存管理是指系统软件对其他应用程序使用内存时所作的管理,是一种统筹关系。本设计采用活动分区方案,但不采用...

操作系统原理课程设计

操作系统原理 课程设计。一 课程设计题目 在linux操作系统下用c实现经典进程同步问题 生产者 消费者问题。二 课程设计目的 1 熟悉临界资源 信号量及pv操作的定义与物理意义。2 了解进程通信的方法。3 掌握进程互斥与进程同步的相关知识。4 掌握用信号量机制解决进程间的同步和互斥问题。5 实现生...

操作系统原理课程设计

1深入理解课程中有关多道程序设计 进程管理 内存管理。2熟悉程序设计 数据结构 软件设计。3体验软件开发的相关过程。假设一个机器,其有内存为64kb,系统采用请求页式系统进行存储管理,每个页面大小为1kb,另外其运行的os ksos本身需要占用占用16k,剩余空间留给了用户进程共享使用。模拟系统ks...