资源简介

(1)进程状态至少有运行、就绪和阻塞,相应设置运行队列、就绪队列、等待队列。 (2)设计创建进程、撤消进程、调度进程、阻塞进程、唤醒进程函数执行相应功能。 调度算法可选:时间片轮转法、先来先服务、优先级等 (3)设计用户界面(可视化界面或键盘命令),以交互式方式创建进程、撤消进程、调度进程、阻塞进程、唤醒进程等功能。 (4)能动态显示每个队列的每个进程的当前状态。 (5)程序结构合理,运行稳定、界面友好、能检查操作错误,并给出错误信息。

资源截图

代码片段和文件信息

// process.cpp : Defines the entry point for the console application.
//

#include “stdafx.h“
#include “stdio.h“
#include “stdlib.h“
#include “string.h“
#include “iostream.h“
#include  //要用到格式控制符
//定义“空”
#define null 0
//定义不再切割的剩余分区大小
#define size 5
//定义内存总量大小
#define memory_totalsize 100
//定义时间片
#define  TIME_PIECE 2
//定义优先级减少的数量
#define PRIORITY 0

//定义进程结构体
struct process
{
char name[40];//进程名字
float memory_need;//进程所需内存
char state[10]; //进程状态 
int priorty;  //优先级
int alltime;  //总共所需运行时间
int cputime;  //该进程在CPU中运行的总时间
struct process *next;//指向下一个进程
}*process_ready *process_blocked *process_e;//将正在执行的进程设置为一全局变量

//定义内存分配结构体
struct memory_allocation
{
struct memory_allocation *forward;//指向前一个空间
char process_name[40];//进程名
float start_address;//进程开始地址
float memory_size;//进程占用内存大小
int state;//内存占用状态
struct memory_allocation *after;//指向后一个空间
}*free_chain;
//occupy_chain备用
//*occupy_chain

void process_excute();
void process_ready_delete();//在就绪队列删除一个进程
void process_blocked_delete();//在阻塞队列中删除一个进程
struct memory_allocation *memory_largestselect();//
int process_createjudge(struct process *process_temp);
void memory_allo(struct process *temp_process);
void memory_free(struct process *temp_process);
struct memory_allocation *memory_bestselect(struct process *temp_process);
void process_display();//显示系统中所有进程的信息
void process_end();//终止正在运行的进程
void sort_process_ready(process *p);//按优先级把进程插入到就绪链表的适当位置
void sort_process_block(process *p);


//初始化内存
void memory_init(){
free_chain = (struct memory_allocation *)malloc(sizeof(struct memory_allocation));//分配空间
strcpy(free_chain->process_name “null“);
free_chain->start_address = 0;
free_chain->memory_size = memory_totalsize;
free_chain->state = 0;
free_chain->forward = null;
free_chain->after = null;
}


//按优先级把进程插入到link链表的适当位置
void sort_process_ready(process *p)
{
process *first *second;  
int insert=0;  
first=process_ready;  
second=first->next;

if((p->priorty)>(first->priorty))//p的优先级比process_ready链表中所有进程的优先级都高
{
p->next=first;
process_ready=p;//跟改头结点
}
else{//
while(second!=NULL)  


if((p->priorty)>(second->priorty))

p->next=second;  
first->next=p;  
second=NULL;  
insert=1;  
}  
else //Low priority
{  
first=first->next;  
second=second->next;  
}  
}
if(insert==0)
{
first->next=p; 
}

}  


void sort_process_block(process *p)
{
process *first *second;  
int insert=0;  
first=process_blocked;  
second=first->next;
if((p->priorty)>(first->priorty))//p的优先级比process_blocked链表中所有进程的优先级都高
{
p->next=first;
process_blocked=p;//跟改头结点
}
else
{//
while(second!=NULL)  
{  
if((p->priorty)>(second->priorty))

p->next=second;  
first->next=p;  
second=NULL;  
insert=1;  
}  
else //Low priority
{  
first=first->next;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     451584  2008-11-13 18:16  操作系统进程管理模拟\Debug\process.bsc

     文件     225356  2008-11-13 18:16  操作系统进程管理模拟\Debug\process.exe

     文件     309336  2008-11-13 18:16  操作系统进程管理模拟\Debug\process.ilk

     文件      52644  2008-11-13 18:16  操作系统进程管理模拟\Debug\process.obj

     文件     203896  2008-11-12 22:47  操作系统进程管理模拟\Debug\process.pch

     文件     582656  2008-11-13 18:16  操作系统进程管理模拟\Debug\process.pdb

     文件          0  2008-11-13 18:16  操作系统进程管理模拟\Debug\process.sbr

     文件       2261  2008-11-12 22:47  操作系统进程管理模拟\Debug\StdAfx.obj

     文件       4073  2008-11-12 22:47  操作系统进程管理模拟\Debug\StdAfx.sbr

     文件      91136  2008-11-13 18:16  操作系统进程管理模拟\Debug\vc60.idb

     文件     118784  2008-11-13 18:16  操作系统进程管理模拟\Debug\vc60.pdb

     文件      29677  2008-11-13 18:16  操作系统进程管理模拟\process.cpp

     文件       4552  2008-11-12 23:08  操作系统进程管理模拟\process.dsp

     文件        539  2008-11-12 22:44  操作系统进程管理模拟\process.dsw

     文件      50176  2008-11-13 18:17  操作系统进程管理模拟\process.ncb

     文件      48640  2008-11-13 18:17  操作系统进程管理模拟\process.opt

     文件       2076  2008-11-13 18:16  操作系统进程管理模拟\process.plg

     文件       2506  2008-11-13 18:22  操作系统进程管理模拟\ReadMe.txt

     文件        294  2008-11-12 22:44  操作系统进程管理模拟\StdAfx.cpp

     文件        769  2008-11-12 22:44  操作系统进程管理模拟\StdAfx.h

     目录          0  2008-11-13 18:16  操作系统进程管理模拟\Debug

     目录          0  2008-11-13 18:17  操作系统进程管理模拟

----------- ---------  ---------- -----  ----

              2180955                    22


评论

共有 条评论