中南大学。
本科生课程设计(实践)任务书、设计报告。
计算机操作系统课程设计)
2023年12 月。
一、实验任务。
1.进一步理解进程的基本概念。
2.加强进程管理中主要数据结构的设计及进程调度算法。
3.观察和管理进程——系统在运行过程中可显示或打印各进程的状态及有关参数的变化情况。
二、实验设计思想。
1.实验原理。
定义pcb的数据结构,用链表的形式管理进程,采用多级反馈队列调度的算法模拟进程的控制,最终完成有创建、撤销、调度、阻塞、唤醒进程等功能。
2.数据结构。
类:class queuenode
class queue
函数:void enqueue( char &item);
char dequeue();
void del(char item);
void display();
int find(char item);
int isempty()
3.算法描述。
1-1、创建进程,根据进程的顺序依次放入就绪队列。
2-1、执行进程——管理系统将就绪队列中的第一个进程调入运行队列;
2-2、将阻塞队列中进程调入就绪队列;
2-3、封锁进程——管理系统将就绪队列中的第一个进程调入阻塞队列;
2-4、结束进程——管理系统撤销所选进程;
2-5、结束程序。
4.算法流程图。
三、实验实现源**。
#include<>
class queuenode //定义队列数据结构。
friend class queue;
private:
char data;
queuenode * link;
queuenode (char d=0,queuenode * l=null): data(d),link(l){}
class queue
public:
queue():rear(null),front(null){}
~queue();
void enqueue( char &item);
char dequeue();
void del(char item);
void display();
int find(char item);
int isempty()
private:
queuenode *front,*rear;
queue::~queue()
queuenode * p;
while(front!=null)
void queue::enqueue(char &item)
if(front==null)front=rear=new queuenode(item,null);
else rear=rear->link=new queuenode(item,null);
char queue::dequeue()
queuenode *p=front;
char f=p->data;front=front->link;
delete p;
return f;
void queue::display()/队列输出。
queuenode *p;
p=front;
while(p!=null)
cout<<"null";
queue::find(char item)//队列查找。
queuenode *w;
w=front;
m:while(w!=null)else
if(w==null) return 0;
void queue::del( char item)//队列删除。
queuenode *q,*b;
q=front;
while(q->data!=item)
b=q;q=q->link;
if(q==front)
else if(q==rear)
else void main()/主函数。
int n;
char a;
cout<<"n您好,请进入进程管理模拟系统之先来先服务算法n"< queue execute,ready,clog; /执行,就绪,阻塞。
cout<<"n[--请您输入进程名及其到达cpu的顺序(结束进程时请输入xn"< char r;
r='x';
for(int i=0;;i++)
a: cout<<"n您好,请输入您的选项n";
cout<<"n [1、执行进程***2、将阻塞队列中进程调入就绪队列***n";
cout<<"n [3、封锁进程***4、结束进程n";
cout<<"n [5、退出程序n选项: "
cin>>n;
if(n==1)else
else if(n==2)
else goto l;
else if(n==3)
else goto l;
else if(n==4)
elsecout<<"没有此进程"< goto l;
l: if(n==1||n==2||n==3||n==4)
else if(n==5);
else cout<<"n你的输入错误!";
goto a;
e:;}四、实验结果与分析。
程序运行结果如下:
分析:本实验在vc6.0中运行成功,一开始输入进程a,b,c,d根据选项菜单,先执行进程a,之后封闭进程a,a进入到阻塞队列中,通过选项2把进程a从阻塞队列中转到就绪队列中,然后依次执行就绪队列中的进程,知道进程执行完毕!
通过本进程模拟实验,让我对于进程的执行过程有了更加深刻的认识,也认识到了光有理论学习是远远不够的,只有理论结合实践,才可以更好的理解事物的本质,事物的精髓。
分析与总结:
本实验在vc6.0中运行成功,一开始输入进程a,b,c,d根据选项菜单,先执行进程a,之后封闭进程a,a进入到阻塞队列中,通过选项2把进程a从阻塞队列中转到就绪队列中,然后依次执行就绪队列中的进程,知道进程执行完毕!
通过本进程模拟实验,让我对于进程的执行过程有了更加深刻的认识,也认识到了光有理论学习是远远不够的,只有理论结合实践,才可以更好的理解事物的本质,事物的精髓。
操作系统课程设计
课程设计 河北大学工商学院。装。订。线。操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专 操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专业计算机类 学号 姓名。指导教师。年 6 月 24 日。设备管理 2 2.1设计任务2 2.2设计要求...
操作系统课程设计
银行家算法模拟。系别 班级 组员 银行家算法模拟。1.课程设计目的。通过本次课程设计,加深对最经典的避免死锁的银行家算法的理解,掌握死锁形成必要条件 安全状态等概念的理解,通过用c语言编程模拟该算法,并在windows平台上实现,更好地掌握操作系统的原理及实现方法。2.任务及要求。设n为系统进程的个...
操作系统课程设计
学生实习实训报告。实习类型 操作系统课程设计 学号 0901110005 学生姓名 田兴杰 指导教师 曹春梅 专业班级 信息安全技术0901班 院 部 电子信息系 2011年 1 月 7日。实习实训成绩评定表。目录。目录3 摘要4关键字4 1.1虚拟机简介5 1.1.1 一般意义的虚拟机5 1.1....