资源简介
本资源用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/C++课程设计-学生成绩管理系统
- MFC实现的操作系统页面置换FIFO、LRU、
- 进程调度的设计与实现图形界面实现
- myshell:操作系统编程-自己用C语言写
- 操作系统 内存分配与回收 C语言模拟
- 操作系统实验——spooling技术
- 大一C语言基础学习练习例题大部分考
- 操作系统使用C语言链表实现进程管理
- 哲学家进餐实验报告
- 《基于Linux的设备分配及磁盘调度》
- 操作系统生产者与消费者综合性实验
- 林锐 《高质量C/C++编程》
- C语言实现调度算法源代码-山东大学操
- 操作系统文件管理系统c++
- 基于FCFS和SPF的进程管理系统可用资源
- 操作系统课程设计 linux文件系统
- 掌纹识别c/c++代码
- 传智播客c/c++教程
- 基于C/C++基础的物品竞拍系统
- c++写的操作系统课程设计:模拟文件
- 操作系统文件管理系统模拟实现
- 计算无向图中桥的数量环算法超快
- 处理机调度的模拟实现_C语言
- 操作系统课程设计,设备分配与磁盘
- 多道批处理系统两级调度的模拟
- 空闲分区链源代码
- 操作系统 4种经典同步互斥问题
- 广工操作系统课设:多道批处理系统
- 操作系统抢占式动态优先级调度算法
评论
共有 条评论