- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一实验报告
实验源码:
#include stdio.h #include stdlib.h #include string.h #include conio.h #include iostream.h #include windows.h
// 内存最大装备作业数
#define N 5
#define P_TIME 50
struct PCB{
int pid; // 进程 id int priority; // 优先权int size; // 大小
int state; // 进程状态 0 表示不存在 1 表示运行状态阻塞状态
char info[10]; // 消息
2 表示
};
struct PCB neicun[N];
int shumu = 0, guaqi = 0; int pid;
int flag = 0; // 查找相应进程是否存在的标志
// 进程调度
enum state{
ready, working, block, finish
};// 定义进程状态
struct D_PCB{
char name[4]; // 进程名
int priority; // 优先权
int cputime; // CPU 运行时间
int needtime; // 进程运行所需时间
int count; // 进程执行次数int round; // 时间片轮转轮次state process; // 进程状态
D_PCB *next;
};// 定义进程 PCB
// 创建进程
void create()
{
system(cls);
if(shumu = N) printf(\n 内存已满,请先换出或杀死进程\n); else{
for(int i = 0; i N; i++)
// 定位,找到还未创建的进程
if(neicun[i].state == 0) break; printf(请输入新进程 pid\n); scanf(%d,(neicun[i].pid)); for(int j = 0; j i; j++)
if(neicun[j].pid == neicun[i].pid){ printf(\n 该进程已存在\n); return;
}
printf(请输入新进程优先级\n); scanf(%d,(neicun[i].priority)); printf(请输入新进程大小\n); scanf(%d,(neicun[i].size)); printf(请输入新进程内容\n); scanf(%s,(neicun[i].info));
// 创建进程,使标记位为 1
neicun[i].state = 1; shumu++;
}
}
// 查看运行进程
void run()
{
system(cls); printf(\npid\tprioroty\tsize\tstate\tinfo\n); for(int i = 0; i N; i++){
if(neicun[i].state == 1){
// 输出运行进程的各个属性值
printf(%d\t%d\t\t%d\t%d\t%s\n,neicun[i].pid,neicun[i].priority,neicun[i].size,n eicun[i].state,neicun[i].info);
flag = 1;
}
}
if(!flag) printf(\n 当前没有运行进程\n);
}
// 换出进程
void huanchu()
{
system(cls);
if(!shumu){
printf(当前没有运行进程\n); return;
}
printf(\n 输入换出运行进程 ID 值\n); scanf(%d,pid);
for(int i = 0; i N; i++){
// 定位,找到所要换出的进程,根据其状态做相应处理
if(pid == neicun[i].pid){ if(neicun[i].state == 1){
neicun[i].state = 2; guaqi++;
printf(\n 已经成功换出进程\n);
}
else if(neicun[i].state == 0) printf(\n 要换出的进程不存在\n); else printf(\n 换出的进程已被挂起\n);
flag = 1; break;
}
}
// 找不到,则说明不存在
if(flag == 0) printf(\n 要换出的进程不存在\n);
}
// 杀死进程
void kill()
{
system(cls);
if(!shumu){
printf(当前没有运行进程\n);
return;
}
printf(\n 输
您可能关注的文档
最近下载
- EN 1337-3:2005 结构支座-第三部分:橡胶支座 (中文版).pdf VIP
- 小学一年级语文上册知识点(通用13篇).doc VIP
- 普通职员月度工作总结.docx VIP
- 2025至2030黄金珠宝首饰行业运营态势与投资前景调查研究报告.docx
- 小区供热工程毕业设计开题报告.pdf VIP
- 企业工会助推企业高质量发展.docx VIP
- GB_T230.1-2018金属材料 洛氏硬度试验 第1部分:试验方法11.pdf
- 基于核心素养的小学数学单元教学目标制定与实施策略教学研究课题报告.docx
- 手术病理标本前处理流程2023.pptx VIP
- 【招聘管理体系设计】摩托罗拉的招聘.pdf VIP
原创力文档


文档评论(0)