《操作系统课程设计》报告范本

发布 2022-10-05 13:32:28 阅读 7426

学号。姓名。

班级。指导教师。

报告日期:

通过对操作系统课程的学习,熟悉进程的概念、进程的管理与存储、进程的调度,通过实践深入理解进程的调度算法。

要求编写一个程序,可以创建若干个虚拟进程,并对若干个虚拟进程进行调度,调度策略为时间片轮转法,主要任务包括:

进程的个数,进程的内容(即进程的功能序列)**于一个进程序列描述文件,另外调度运行结果输出到一个运行日志文件;

设计pcb适用于时间片轮转法;

建立进程队列;

实现时间片轮转调度算法,尽量可视化的展示调度的动态过程。

', altimg': w': 28', h':

20', eqmath': o\\ac(○,5)'}总结程序设计的开发过程:需求分析、系统设计、系统实现及文档的收集和整理。

每个进程有一个进程控制块( pcb)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用cpu时间、进程状态等等。

进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为输入进程的时间。

进程的运行时间以时间片为单位进行计算。

每个进程的状态可以是就绪 w(wait)、运行r(run)、或完成f(finish)三种状态之一。

就绪进程获得 cpu后都只能运行一个时间片。用已占用cpu时间加1来表示。

如果运行一个时间片后,进程的已占用 cpu时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用cpu时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待cpu。

每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 pcb,以便进行检查。

重复以上过程,直到所要进程都完成为止。

是。#include ""

#include <>

#include <>

#include <>

#include <>

#include

#include

using namespace std;

ofstream myfile(""ios::app||ios::trunc);

typedef struct node

char name[10];/进程名*/

int round; /进程分配的时间片*/

int cputime; /进程消耗的cup时间*/

int needtime; /进程需要的cup时间*/

int count; /进程运行时间*/

char state; /进程的状态:'r':运行,'w':等待,'f':结束*/

struct node *next;/*指向下一个进程的指针*/

pcb;pcb *finish,*ready,*tail,*run;/*指向三个队列的队首的指针,tail为就绪队列的队尾指针*/

int n;/*定义进程的数目*/

void firstin(void)

if(ready!=null)else

void prt1(char a)

cout<<"name"

myfile<<"count ";myfile<<"round";myfile<<"state"<

void prt2(char a,pcb *p)

cout

myfile

myfile

void prt(char algo)

pcb *p;

prt1(algo);

if(run!=null)

p=ready;

while(p!=null)

p=finish;

while(p!=null)

getchar();

void insert(pcb *q)

void rcreate_task(char algo)

pcb *p;

int n,time;

char na[10];

ready=null;

finish=null;

run=null;

cout<<"请输入进程数目n:";

cin>>n;

for(n=0;n else

run=ready;

ready=ready->next;

run->state='r';

cout<<"创建成功。"<

void chakan(char algo)

if(run->count==run->round)

prt(algo);

void roundrun(char algo)

while(run!=null)

run->cputime=run->cputime+1;

run->needtime=run->needtime-1;

run->count=run->count+1;

if(run->needtime==0)

run->next=finish;

finish=run;

run->state='f';

run=null;

if(ready!=null)

firstin();

操作系统课程设计报告

西安郵電大學。院系名称 计算机学院。专业名称 软件工程。班级 1104 学生姓名 赵大伟。学号 8位 04113124 指导教师 舒新峰。设计起止时间 2013.11.10 2013.11.20 1 通过观察 分析实验现象,深入理解进程及进程在调度执行和内存空间等方面的特点,掌握在posix 规范中...

操作系统课程设计报告

课程设计。课程名称操作系统。题目名称多级文件系统 2 学生学院计算机学院 专业班级。学号。学生姓名。指导教师。年月日。目录。一 课程设计 6 二 开发工具及环境 6 三 设计内容 6 四 结构图 8 五 部分 9 六 运行截图 11 七 参考文献 15 八 心得体会 15 本课程设计要求设计一个模拟...

操作系统课程设计报告

实验一进程管理。一 实验目的。1 开发一个函数,建立进程控制块和资源控制块结构,并实现相关数据结构的初始化。2 开发一系列操作,由进程调用这些操作,达到控制进程申请或释放各种资源的目的。通过实验理解进程的概念,进程的组成 pcb结构 进程的并发执行和操作系统进行进程管理的相关原语 主要是进程的创建 ...