资源简介
(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
相关资源
- 操作系统c语言模拟文件管理系统844
- C语言课程设计
- 使用C语言编写的病房管理系统
- 简易教务管理系统c语言开发文档
- 个人日常财务管理系统(C语言)
- c语言 教学信息管理系统
- 基于C语言的模拟退火算法
- 手机话费管理系统(c语言编写)
- 餐饮管理系统(C语言编写)
- C语言 学生信息管理系统 源代码
- 我的C语言寒假作业-学生通讯录系统(
- 商品库存管理系统 C++ MFC
- STM32 模拟信号采集
- STM32内部FLASH模拟eerom
- 51单片机数码管四层电梯模拟系统
- VC++基于OpenGL模拟的一个3维空间模型
- 宠物管理系统课程设计(源码+数据库
- C语言 学生兴趣管理系统
- 模拟笔记本电脑(C语言实现)
- c++ 模拟鼠标按键
- Linux c语言 学生成绩管理系统
- 成绩管理系统.doc
- 学生成绩管理系统.c
- ftp工具代码
- 简单员工管理系统(适合初学MFC)
- C语言实现 设备信息管理系统
- 校园闲置物品管理系统.c(控制台)
- 学生成绩管理系统(c源码)
- 职工信息管理系统源码(控制台)
- 家谱管理系统(C++)源码以及文档
评论
共有 条评论