资源简介
本资源用c++模拟操作系统的实现
主要内容:1.进程控制 2.分页式存储管理 3.设备管理4.文件管理 5.进程调度
有问题 联系 lx15636825085@163.com

代码片段和文件信息
#include
#include “stdlib.h“
#include “conio.h“
using namespace std;
/*定义结构体*/
typedef struct PCB
{
char name[20];
struct PCB * next;
}PCB;
PCB *ready*blocked*running*finished;
void add(PCB *head PCB *process) {
PCB *tmp = head;
while(tmp->next != NULL)
tmp = tmp->next;
tmp->next = process;
process->next = NULL;
}
PCB * out(PCB *head) {
PCB *p;
p = head;
if(p->next == NULL)
return NULL;
else
{
p = p->next;
head->next = p->next;
p->next = NULL;
return p;
}
}
void create() {
PCB *p;
p = (PCB*)malloc(sizeof(PCB));
p->next = NULL;
cout<<“请输入PCB的名称:“;
cin>>p->name;
add(ready p);
if(running->next == NULL && p != NULL) {
p=out(ready);
add(running p);
}
}
void torun() {
PCB *p;
p = out(ready);
if(running->next != NULL && p != NULL )
add(running p);
}
void timeout() {
PCB *p;
p = out(running);
if(p != NULL)
add(ready p);
p = out(ready);
if(running->next == NULL && p != NULL)
add(running p);
}
void wakeup() {
PCB *p;
p = out(blocked);
if(p != NULL)
add(ready p);
}
void block() {
PCB *p;
p = out(running);
if(p != NULL)
add(blocked p);
p = out(ready);
if(running->next == NULL && p != NULL)
add(running p);
}
void ending() {
PCB *p;
p = out(running);
if(p != NULL)
add(finished p);
p = out(ready);
if(running->next == NULL && p != NULL)
add(running p);
}
void show() {
PCB *p;
p = ready->next;
cout<<“ready: “;
while(p != NULL) {
cout<name<<“ “ ;
p=p->next;
}
cout<
p = running->next;
cout<<“running: “;
while(p != NULL) {
cout<name<<“ “ ;
p=p->next;
}
cout<
p = blocked->next;
cout<<“blocked: “;
while(p != NULL) {
cout<name<<“ “ ;
p=p->next;
}
cout<
p = finished->next;
cout<<“finished: “;
while(p != NULL) {
cout<name<<“ “ ;
p=p->next;
}
cout< }
void help() {
cout<<“_____________________HELP MENU_____________________“< cout<<“ h——HELP show help optionn“< cout<<“ c——CREATE create a new process and put to ready queuen“< cout<<“ b——BLOCK block a process in excute queuen“< cout<<“ w——WAKEUP a process in wait queuen“< cout<<“ r——RUN run excute a process in ready queuen“< cout<<“ s——SHOW show the PCB all state“< cout<<“ e——ENDING end a procee in running“< cout<<“ t——TIMEOUT let a process to run“< cout<<“ q——QUIT quit the PCB“< cout<<“_____________________________________________________“< }
void init(){
ready = (PCB*)malloc(sizeof(PCB));
ready -> next=NULL;
running = (PCB*)malloc(sizeof(PCB));
running -> next=NULL;
blocked= (PCB*)malloc(sizeof(PCB));
blocked -> next = NULL;
finished =(PCB*)malloc(sizeof(PCB));
fini
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-04-14 10:50 操作系统OS实验\
目录 0 2018-04-14 10:50 操作系统OS实验\实验一\
文件 3813 2017-09-19 21:43 操作系统OS实验\实验一\OS1.cpp
目录 0 2018-04-14 10:50 操作系统OS实验\实验三\
文件 20165 2017-11-25 00:38 操作系统OS实验\实验三\OS3.cpp
目录 0 2018-04-14 10:50 操作系统OS实验\实验二\
文件 6087 2017-10-10 20:22 操作系统OS实验\实验二\OS2_1.cpp
文件 13986 2017-10-29 23:11 操作系统OS实验\实验二\OS2_2.cpp
目录 0 2018-04-14 10:50 操作系统OS实验\实验五\
文件 14047 2017-11-25 00:34 操作系统OS实验\实验五\OS5.CPP
目录 0 2018-04-14 10:50 操作系统OS实验\实验四\
文件 10979 2017-11-23 21:42 操作系统OS实验\实验四\OS4.CPP
- 上一篇:bmp图片灰度化二值化
- 下一篇:Cohen-Sutherland算法实现
相关资源
- 操作系统c语言模拟文件管理系统844
- 操作系统课设 读写者问题 c语言实现
- ROS操作系统入门讲义
- 北京化工大学计算方法(C/C++)讲义
- GBT 28169-2011 嵌入式软件 C语言编码规范
- XUnZip Zip解压缩.rar
- Windows_API_函数大全 C/C++
- 银行家算法分配资源的模拟实现(m
- C语言程序设计教材习题参考答案.do
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- Linux操作系统下C语言编程从零开始
- 高效FFT的C/C++代码实现包括基2的DIF和
- c/c++开发网络验证和本地验证
- 操作系统存储管理实验报告c/c++
- C++编写的万年历源码
- C语言进阶源码---基于graphics实现图书
- 井字棋三连棋的AI实现,C/C++
- 《水果忍者》设计报告.doc
- 操作系统课程设计(银行家算法)附
- MFC实现的红绿灯程序
- 现代操作系统第三版高清
- Win32简易画图程序
- C++网络爬虫项目
- 泡泡堂(炸弹人)小游戏C/C++完整源码
- C++操作系统课设-进程管理
- 使用C/C++读取BITMAP的内容
- VC图像处理-用Canny算子提取边缘
- C/C++视频教程
- 个人总结的一些C/C++编码规范
- 高斯消去法求解线性方程组C/C++程序输
评论
共有 条评论