• 大小: 691KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-01-27
  • 语言: C/C++
  • 标签:

资源简介

这个是我操作系统课设的进程管理模块,用c++做的,希望对你有用

资源截图

代码片段和文件信息

#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 5
//定义优先级减少的数量
#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;



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;
}

//创建进程函数 process_create()
void process_create()
{
struct process *process_temp *process_p;

//申请内存空间并赋值
process_temp = (struct process *)malloc(sizeof(struct process));
printf(“\n创建进程:\n“);
printf(“请输入所要创建的进程的“名字”: “);
scanf(“%s“process_temp->name);

do{
printf(“请输入所要创建的进程“内存需求(0 scanf(“%f“&process_temp->memory_need);
}while((process_temp->memory_need)<=0);

do{
printf(“请输入所要创建的进程的“优先级(0 scanf(“%d“&process_temp->priorty);
}while((process_temp->priorty)<=0||(process_temp->priorty)>10);

do{
printf(“请输入所要创建的进程总共所需的“运行时间(0 scanf(“%d“&process_temp->alltime);
}while((process_temp->alltime)<=0||(process_temp->alltime)>=50);


strcpy(process_temp->state“ready“);//刚创建的进程设置成ready态
process_temp->cputime=0;//刚创建的进程在CPU中运行了0次

process_temp->next = null;

int temp = process_createjudge(process_temp);
if(temp == 0){
//分配内存
memory_allo(process_temp);

//将新建的进程加入到就绪队列中
if(process_ready == null){//如果就绪队列为空,那么把新进程加到就绪队列的第一位
process_ready = process_temp;
}else{//如果就绪队列不为空,那么按优先级把新进程加到就绪队列的适当位置
sort_process_ready(process_temp);
}

printf(“进程 %s 已经创建成功并加入到就绪队列中...\n“ process

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

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

     文件     225409  2010-12-24 09:07  操作系统进程管理模拟\Debug\process.exe

     文件     311748  2010-12-24 09:07  操作系统进程管理模拟\Debug\process.ilk

     文件      44240  2010-12-24 09:07  操作系统进程管理模拟\Debug\process.obj

     文件    2075512  2010-12-21 19:51  操作系统进程管理模拟\Debug\process.pch

     文件     582656  2010-12-24 09:07  操作系统进程管理模拟\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

     文件     148480  2010-12-24 09:07  操作系统进程管理模拟\Debug\vc60.idb

     文件     118784  2010-12-24 09:07  操作系统进程管理模拟\Debug\vc60.pdb

     文件      26872  2010-12-24 09:08  操作系统进程管理模拟\process.cpp

     文件       3413  2010-12-24 09:07  操作系统进程管理模拟\process.dsp

     文件        539  2010-12-24 09:10  操作系统进程管理模拟\process.dsw

     文件      58368  2010-12-24 09:10  操作系统进程管理模拟\process.ncb

     文件      48640  2010-12-24 09:10  操作系统进程管理模拟\process.opt

     文件       2079  2010-12-24 09:07  操作系统进程管理模拟\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  2010-12-24 09:07  操作系统进程管理模拟\Debug

     目录          0  2010-12-24 09:10  操作系统进程管理模拟

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

              4108227                    22


评论

共有 条评论

相关资源