#include #include "dos.h" #include "stdlib.h" #include "conio.h" //PCB结构体 struct pcb{ int id; //进程序号 int ra; //所需资源A的数量 int rb; //所需资源B的数量 int rc; //所需资源C的数量 int ntime; //所需的时间片个数 int rtime; //已经运行的时间片个数 char state; //进程状态 struct pcb *next; } *hready=NULL,*hblock=NULL,*p; //hready,hblock分别为指向就绪和阻塞队列 typedef struct pcb PCB; int m,n,r,a,b,c,h=0,i=1,time1Inteval; //m为要模拟的进程个数,n为初始化进程个数 //r为可随机产生的进程数(r=m-n) //a,b,c分别为A,B,C三类资源的总量 //i为进城计数,i=1…n //h为运行的时间片次数,time1Inteval为时间片大小(毫秒) //建立一个PCB结构体型的空链表 PCB *increat(void) { PCB *head=NULL; //head=NULL; return(head); } //从链表起始地址开始输出该链表的内容 void disp(PCB *head) {PCB *p1; p1=head; AnsiString str2; if(head!=NULL) //链表非空 { do { str2+=" "; str2+=IntToStr(p1->id);str2+=" "; str2+=(p1->state);str2+=" "; str2+=IntToStr(p1->ra);str2+=" "; str2+=IntToStr(p1->rb);str2+=" "; str2+=IntToStr(p1->rc);str2+=" "; str2+=IntToStr(p1->ntime);str2+=" "; str2+=IntToStr(p1->rtime);str2+="\r\n"; p1=p1->next; }while(p1!=NULL); //不断输出进程的信息,直到链尾! } //if else { str2+="\t\t该 队 列 中 没 有 进 程!\r\n" ;} Form1->Memo1->Lines->Add(str2); } //将进程插入到链尾(包括就绪队列和阻塞队列) PCB *insert(PCB *head,PCB*pcb) //带两个指针形参:队列指针和当前进程PCB { PCB *pi,*p1; p1=head; pi=pcb; if (head==NULL) { head=pi; pi->next=NULL; } else { while(p1->next!=NULL) {p1=p1->next;} p1->next=pi; pi->next=NULL; } return(head); } //对进程进行初始化,建立就绪队阻塞队列。 void input() { AnsiString str1; m=StrToInt (Form1->Edit1->Text); //读取要模拟的进程总数给m n=StrToInt (Form1->Edit2->Text); //读取需初
2022-04-24 17:02:20 10KB c++
1
操作系统课程设计--进程管理模拟还有处理机调度模拟
1
自己用mfc写的进程管理模拟程序。比较简单,用ontimer函数实现的时间片轮转。
2021-07-02 10:35:04 4.24MB 进程管理模拟 mfc
1
自己的大作业,需要的可以参考
2021-06-30 17:57:40 237KB 进程管理
1
实验一:模拟进程管理一 目的:模拟进程管理实现进程的创建 撤销 封锁和唤醒功能 二 功能描述1 创建进程: 申请PCB表;填写PCB表;连接到就绪队列中2 撤销功能:按给定进程的标识符从等待队列中撤销一个进程3 封锁功能: 把当前执行进程 链接到等待队列中 并从就绪队列中选择一个进程 放在执行队列中 4 唤醒功能:从等待队列中把一个给定进程链接到就绪队列中 5 每进行一次转换操作 在屏幕上显示三个队列的变化情况 (输出队列中进程的PID和UID)编程要求:采用模块化编程方法;语言:C语言 fork … ;Kill … ;Wake … ; Block … ; view … 等三 实验步骤1 复习进程管理的内容2 按要求编写进程状态变迁的程序;3 上机调试 并完成实验报告 ">实验一:模拟进程管理一 目的:模拟进程管理实现进程的创建 撤销 封锁和唤醒功能 二 功能描述1 创建进程: 申请PCB表;填写PCB表;连接到就绪队列中2 撤销功能:按给定进程的标识符从等待队列中撤销一个进程3 封锁 [更多]
2021-05-19 21:11:51 192KB 创建进程 撤销功能
1
学校布置的操作系统课外作业,给有需要的朋友。内附详细报告说明
2020-01-08 03:05:26 202KB 操作系统
1
这是一个 操作系统进程管理模拟系统 ,是我根据一位网友的作品修改后的稳定版,其实现了进程的管理(阻塞、运行、等待、完成,采用优先服务的方式)和内存的分配(最佳适配法),功能比较完善,感兴趣的朋友可以拿去看看,还望多多指教。
2019-12-21 22:21:13 384KB 操作系统 进程 内存 管理
1
操作系统课设时做的,设计一个允许n个进程并发运行的进程管理模拟系统。该系统包括有简单的进程控制、同步与通讯机构。每个进程用一个PCB表示,其内容根据具体情况设置。各进程之间有一定的同步关系(可选)。系统在运行过程中应能显示或打印各进程的状态及有关参数的变化情况,以便观察诸进程的运行过程及系统的管理过程。
2019-12-21 20:03:55 277KB 操作系统 进程管理 C
1
用c++编写的程序 模拟实现进程管理 可以实现就绪、运行、阻塞三态之间的转变。
2019-12-21 19:39:26 1.15MB 进程 阻塞
1
(1)进程状态至少有运行、就绪和阻塞,相应设置运行队列、就绪队列、等待队列。 (2)设计创建进程、撤消进程、调度进程、阻塞进程、唤醒进程函数执行相应功能。 调度算法可选:时间片轮转法、先来先服务、优先级等 (3)设计用户界面(可视化界面或键盘命令),以交互式方式创建进程、撤消进程、调度进程、阻塞进程、唤醒进程等功能。 (4)能动态显示每个队列的每个进程的当前状态。 (5)程序结构合理,运行稳定、界面友好、能检查操作错误,并给出错误信息。
2019-12-21 19:21:53 384KB 进程 管理 模拟 仿真
1