一、进程管理

#include "conio.h"
#include "stdio.h"
#include "stdlib.h"struct  PCB_type
{  int pid;      //进程名-----------------轮转时间片,当前队列指针int priority;    //进程优先数int cputime;   //进程所占用的CPU时间int state;     //进程的状态
};
struct PCB_type neicun[20],waicun[20];
int shumu=0,pid_l;int create();
void run( );
void huanchu();
void kill( );
void clrscr();void main()
{int n;char a;n=1;while(n==1){clrscr();printf("\n********************************************");printf("\n*               进程演示系统               *");printf("\n********************************************");printf("\n     1.创建新的进程      2.查看运行进程     ");printf("\n     3.换出某个进程      4.杀死运行进程     ");printf("\n     5.退出系统                             ");printf("\n********************************************");printf("\n请选择(1~5)");a=getch();switch(a){ case'1':create( );  /*自定义过程*/break;case'2':run( );  /* 自定义过程 */break;case'3':huanchu();  /*自定义过程*/break;case'4':kill( );   /*自定义过程*/break;case'5':exit(0);  default: n=0;}}
}
void clrscr()
{system("cls");
}int create( )  /* 创建一个进程的示例(不完整的程序) */
{if(shumu>=20){printf("\n内存已满,请先结束或换出进程\n");}else{printf("\n请输入新进程的pid\n");scanf("%d",&neicun[shumu+1].pid);printf("\n请输入新进程的优先级\n");scanf("%d",&neicun[shumu+1].priority);printf("\n请输入新进程的大小\n");scanf("%d",&neicun[shumu+1].cputime);neicun[shumu+1].state=1;shumu++;}return neicun[shumu].state;
}void run( )/*查看运行进程*/
{         int rpid;printf("\n请输入进程的pid\n");scanf("%d",&rpid);   if(rpid>0&&rpid<=20&&neicun[rpid].state==1){printf("\n进程的pid是: %d\n",neicun[rpid].pid);printf("进程的优先级是: %d\n",neicun[rpid].priority);printf("进程的大小是:%d\n",neicun[rpid].cputime);}else{printf("\n所查看运行进程不存在\n");}printf("请按回车退出查看\n");rpid=getch();     //可避免运行结果快速显示消失
}
void huanchu()/*换出某个进程*/
{ int pid1,pid2;char c;printf("\n请输入需要替换出的进程的pid\n");scanf("%d",&pid1);printf("\n请输入需要替换进的进程的pid\n");scanf("%d",&pid2);if(pid1>0&&pid1<=20&&neicun[pid1].state==1){if(neicun[pid1].priority>neicun[pid2].priority){waicun[20].pid=neicun[pid1].pid;waicun[20].priority=neicun[pid1].priority;waicun[20].cputime=neicun[pid1].cputime;neicun[pid1].pid=neicun[pid2].pid;neicun[pid1].priority=neicun[pid2].priority;neicun[pid1].cputime=neicun[pid2].cputime;neicun[pid2].pid=waicun[20].pid;neicun[pid2].priority=waicun[20].priority;neicun[pid2].cputime=waicun[20].cputime;printf("\n替换完成\n");printf("\n被替换进程的pid是: %d\n",waicun[20].pid);printf("被替换进程的优先级是: %d\n",waicun[20].priority);printf("被替换进程的大小是:%d\n",waicun[20].cputime);}else{printf("\n进程优先级较小");}}else{printf("所查看运行进程不存在\n");}printf("请按回车退出换出进程\n");c=getch();return;
}
void kill()/*杀死运行进程*/
{ int kpid;printf("\n请输入进程的pid\n");scanf("%d",&kpid);if(kpid>0&&kpid<20&&neicun[kpid].state==1){neicun[kpid].state=0;}return;
}
/*void tongxun( )//进程之间通信
{
int tpid1,tpid2;
int buffer;
char d;
printf("\n请输入通信源进程pid\n");
scanf("%d",&tpid1);
printf("\n请输入通信目的进程pid\n");
scanf("%d",&tpid2);
if(tpid1>0&&tpid1<20&&neicun[tpid1].live==1)
{
buffer=neicun[tpid1].msg;
neicun[tpid1].msg=neicun[tpid2].msg;
neicun[tpid2].msg=buffer;printf("\n源进程的消息是: %d\n",neicun[tpid1].msg);printf("\n目的进程的消息是: %d\n",neicun[tpid2].msg);}else{printf("\n所查看运行进程不存在\n");}printf("\n请按回车退出进程通信\n");d=getch();return;
}
*/

操作系统----进程管理(C语言)相关推荐

  1. linux 进程管理 ppt,linux操作系统-进程管理和打印管理.ppt

    <linux操作系统-进程管理和打印管理.ppt>由会员分享,可在线阅读,更多相关<linux操作系统-进程管理和打印管理.ppt(25页珍藏版)>请在装配图网上搜索. 1.进 ...

  2. 面试-操作系统-进程管理-进程-进程调度-死锁

    文章目录 ==概念== 备注 简单说下你对并发和并行的理解? 同步.异步.阻塞.非阻塞的概念? 操作系统概念? 一个程序从开始运行到结束的完整过程,你能说出来多少? 用户态和内核态是如何切换的? 什么 ...

  3. 操作系统——进程管理(一文弄懂进程间的那些事)

    进程管理 进程 进程的概念 PCB 进程的组成 进程的特征 进程的状态与转换 进程的状态 进程间的转换 进程的组织方式 链接方式 索引方式 进程控制 怎么实现进程控制--原语 进程的创建 进程的终止 ...

  4. 操作系统-进程管理实验(2)

    实验二  进程管理 一.目的 本课题实验的目的是,加深对进程概念及进程管理各个部分内容的理解:熟悉进程管理中主要数据结构的设计及进程调度算法,进程控制机构,同步机构,通信机构的实施. 二.题目 进程管 ...

  5. c语言编程模拟进程管理,C语言如何模拟进程管理?

    C语言如何模拟进程管理? 发布日期:2016-01-04 09:15 来源: 标签: 编程语言 C教程 C语言模拟进程 C语言模拟进程管理 本章我们主要学习C语言如何模拟进程管理,下面我们就做一下具体 ...

  6. 计算机操作系统进程同步实验报告,操作系统-进程管理与进程同步-实验报告

    进程管理与进程同步实验报告 实验一.进程管理与进程同步 一.实验目的 了解进程管理的实现方法,理解和掌握处理进程同步问题的方法. 二.实验内容 实现银行家算法.进程调度过程的模拟.读者-写者问题的写者 ...

  7. 操作系统--进程管理1--单个CPU情况

    1.进程概念 进程:一个正在执行的程序:操作系统提出进程概念目的:是为了跟踪程序在执行期间的状态.而程序只是一段代码,是一个静态的概念 无法准确描述程序执行时候发生的一切.程序代码被加载进内存后就以进 ...

  8. 考研—操作系统—进程管理

    综述:何谓进程,进行中的程序,顾名思义,进程就是运行中的程序.即用户使用时的东西.所以进程是一种动态的概念,是只存在一段时间的过程概念.有着开始有着灭亡.进程可以称为是动态的程序.是程序实现功能时的投 ...

  9. 操作系统 进程管理(一)——进程的含义与状态

    目录 程序的执行特征 程序的顺序执行及其特征 程序并发执行的特征 进程的基本概念 进程的含义与特征 (一) 进程的定义 (二)进程的结构 (三) 进程与程序的区别与联系 (四) 进程的特征 (五) 进 ...

最新文章

  1. HTML5纯Web前端也能开发直播,不用开发服务器(使用face2face)
  2. c语言中常量有何作用,C语言const的用法详解,C语言常量定义详解
  3. 第八十三期:这些高性能负载均衡架构知识点,90%的人分不清!
  4. Linux搭建Git服务器教程
  5. JS实现数字千位符格式化方法
  6. 转 Java工程师成神之路
  7. Java 读取p12 证书私钥
  8. 阿里云服务器购买价格表:国内和国外地域云服务器活动报价表
  9. 字符在计算机中的存储
  10. for循环的几种写法
  11. 【ES6】阮一峰ES6学习(四) 对象的扩展
  12. Python编程-使用爬虫程序爬取肺炎疫情数据-1 爬取给定国家的历史疫情信息
  13. AutoCAD 2017机械设计教程
  14. 一键分享功能ShareSDK
  15. 实训一计算机基础知识,《计算机基础知识与操作技能》实训指导与习题解析
  16. Angular5实现组件缓存(RouteReuseStrategy)类似vue中的keep-alive的效果
  17. STM32 H743 ECC内存相关使用说明笔记
  18. m7450扫描无法连接至计算机,关于联想M7450F打印机如何共享扫描功能的解决方案 By Deathbringer...
  19. 上网制作“网络地理图册”网页
  20. iframe交互问题,浏览器存在差异

热门文章

  1. Thickbox使用中的一些问题
  2. solr7.4-DIH
  3. sql语句--模糊查询
  4. Cesium隐藏版权信息
  5. QT QTextEdit添加文字的方式
  6. Linux下shell脚本的4中执行方式
  7. 快速批量去除图片水印方法大全~~
  8. 最新易语言调用大漠插件制作脚本入门教程
  9. 导出RCP程序遇到错误
  10. 设置单选框radio不可选(禁用)