⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os-lib.txt

📁 开发环境
💻 TXT
📖 第 1 页 / 共 2 页
字号:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<bios.h>
#include<graphics.h>

typedef struct PCB_Info             /*进程PCB*/
{
    int    id;
    int    static_prior;
    int    dynamic_prior;
    int    Source_state;
    int    need_time;
    int    used_time;
    int    state;
    int    M_size;
    struct PCB_Info *next;
}PCB;

int M_room[40];

int Source=3, Rest_Source;   /*资源数*/
int Length;     /*进程个数*/
int key, Delay_time, Cpu_time, xx;
int Begin;

struct PCB_Info    *Pro_head;

char number[11][24]={
{0x00,0x00,0x18,0x00,0x24,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x24,0x00,0x18,0x00},
{0x00,0x00,0x10,0x00,0x70,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x7c,0x00},
{0x00,0x00,0x3c,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x04,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x41,0x00,0x7e,0x00},
{0x00,0x00,0x3c,0x00,0x42,0x00,0x42,0x00,0x04,0x00,0x18,0x00,0x04,0x00,0x02,0x00,0x02,0x00,0x42,0x00,0x44,0x00,0x38,0x00},
{0x00,0x00,0x04,0x00,0x04,0x00,0x14,0x00,0x24,0x00,0x24,0x00,0x44,0x00,0x44,0x00,0x7e,0x00,0x04,0x00,0x04,0x00,0x1e,0x00},
{0x00,0x00,0x7e,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x58,0x00,0x64,0x00,0x02,0x00,0x02,0x00,0x42,0x00,0x44,0x00,0x38,0x00},
{0x00,0x00,0x1c,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x58,0x00,0x64,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x24,0x00,0x18,0x00},
{0x00,0x00,0x7e,0x00,0x4c,0x00,0x44,0x00,0x08,0x00,0x08,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00},
{0x00,0x00,0x3c,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x24,0x00,0x18,0x00,0x24,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x3c,0x00},
{0x00,0x00,0x18,0x00,0x24,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x26,0x00,0x1a,0x00,0x02,0x00,0x02,0x00,0x24,0x00,0x38,0x00},
{0x80,0x00,0x40,0x00,0x20,0x00,0x10,0x00,0x08,0x00,0x04,0x00,0x02,0x00,0x01,0x00,0x00,0x80,0x00,0x40,0x00,0x20,0x00,0x10}
};  /*数字+斜线*/

char baifen[]={
0x00,0x01,0x18,0x02,0x24,0x04,0x24,0x08,0x24,0x10,0x18,0x20,0x00,0x40,0x00,0x80,
0x01,0x00,0x02,0x18,0x04,0x24,0x08,0x24,0x10,0x24,0x20,0x18,0x40,0x00,0x80,0x00};      /*----%-----*/

char biaoti[]={
0x21, 0xf8, 0x21, 0x08, 0x21, 0xf8, 0xf8, 0x00, 0x23, 0xbc, 0x22, 0xa4, 0x2a, 0xa4, 0x33, 0xbc,
0x60, 0x40, 0xa7, 0xfe, 0x20, 0x60, 0x20, 0xd0, 0x21, 0x48, 0x22, 0x4e, 0xac, 0x44, 0x40, 0x40,
0x08, 0x80, 0x0c, 0x80, 0x09, 0x00, 0x13, 0xfe, 0x12, 0x80, 0x34, 0x88, 0x50, 0xfc, 0x90, 0x80,
0x10, 0x80, 0x10, 0x84, 0x10, 0xfe, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80, 0x10, 0x80,
0x00, 0x7c, 0x3f, 0x80, 0x02, 0x20, 0x04, 0x20, 0x08, 0x40, 0x1f, 0x80, 0x03, 0x20, 0x0c, 0x10,
0x3f, 0xf8, 0x10, 0x8c, 0x04, 0xa0, 0x08, 0x90, 0x10, 0x88, 0x20, 0x84, 0x42, 0x84, 0x01, 0x00,
0x10, 0x40, 0x10, 0x20, 0x23, 0xfe, 0x20, 0x40, 0x44, 0x40, 0xf8, 0x88, 0x09, 0x04, 0x13, 0xfe,
0x20, 0x94, 0x7c, 0x90, 0x00, 0x90, 0x00, 0x90, 0x1d, 0x12, 0xe1, 0x12, 0x02, 0x0e, 0x04, 0x00,
0x40, 0x00, 0x21, 0xfc, 0x31, 0x24, 0x21, 0xfc, 0x01, 0x24, 0xe1, 0x24, 0x21, 0xfc, 0x20, 0x20,
0x27, 0xfe, 0x20, 0x60, 0x20, 0xb0, 0x29, 0x28, 0x32, 0x26, 0x24, 0x24, 0x00, 0x20, 0x00, 0x20,
0x0d, 0xf8, 0x71, 0x08, 0x11, 0x08, 0x11, 0x08, 0xfd, 0x08, 0x11, 0xf8, 0x30, 0x00, 0x3b, 0xfc,
0x54, 0x40, 0x50, 0x40, 0x93, 0xfc, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x17, 0xfe, 0x10, 0x00,
0x01, 0x00, 0x00, 0x80, 0x3f, 0xfe, 0x28, 0x04, 0x46, 0x88, 0x04, 0x80, 0x08, 0x80, 0x06, 0x80,
0x04, 0x80, 0x7f, 0xfe, 0x00, 0x80, 0x01, 0x40, 0x02, 0x20, 0x04, 0x10, 0x18, 0x18, 0x60, 0x10,
0x00, 0x00, 0xf8, 0x40, 0x08, 0x40, 0x48, 0xa0, 0x48, 0x90, 0x49, 0x0e, 0x4b, 0xf0, 0x7c, 0x00,
0x04, 0x84, 0x06, 0x44, 0x35, 0x48, 0xc5, 0x48, 0x04, 0x10, 0x17, 0xfe, 0x08, 0x00, 0x00, 0x00
} ;                      /*操作系统课程实验*/

char mingcheng[]={
0x10, 0x20, 0x18, 0x20, 0x10, 0x20, 0x20, 0x20, 0x3e, 0x20, 0x22, 0x30, 0x62, 0x28, 0x52, 0x26,
0x94, 0x24, 0x14, 0x20, 0x08, 0x20, 0x14, 0x20, 0x23, 0x20, 0x40, 0xc0, 0x80, 0x3e, 0x00, 0x00,
0x00, 0x00, 0x03, 0xfc, 0xfa, 0x44, 0x22, 0x44, 0x23, 0xfc, 0x22, 0x44, 0xfa, 0x44, 0x23, 0xfc,
0x22, 0x44, 0x20, 0x40, 0x23, 0xfc, 0x38, 0x40, 0xc0, 0x40, 0x00, 0x40, 0x0f, 0xfe, 0x00, 0x00,
0x10, 0x00, 0x10, 0xf8, 0x10, 0x88, 0xfe, 0x88, 0x10, 0x88, 0x10, 0x88, 0x38, 0x88, 0x34, 0x88,
0x54, 0x88, 0x50, 0x88, 0x91, 0x08, 0x11, 0x0a, 0x12, 0x0a, 0x12, 0x0a, 0x14, 0x06, 0x10, 0x00,
0x43, 0xfc, 0x22, 0x44, 0x32, 0x44, 0x23, 0xf4, 0x02, 0x44, 0xe3, 0xf4, 0x22, 0x04, 0x22, 0xf4,
0x22, 0x94, 0x22, 0x94, 0x2a, 0xf4, 0x32, 0x94, 0x24, 0x04, 0x04, 0x04, 0x08, 0x14, 0x10, 0x08,
0x01, 0x00, 0x00, 0x80, 0x3f, 0xfe, 0x22, 0x20, 0x22, 0x20, 0x2f, 0xfc, 0x22, 0x20, 0x23, 0xe0,
0x20, 0x00, 0x27, 0xf8, 0x22, 0x10, 0x21, 0x20, 0x20, 0xc0, 0x41, 0x30, 0x46, 0x0e, 0x98, 0x04,
0x40, 0x80, 0x20, 0x40, 0x27, 0xfe, 0x04, 0x04, 0x83, 0xf8, 0x50, 0x40, 0x13, 0xf8, 0x22, 0x48,
0x23, 0xf8, 0x22, 0x48, 0xc2, 0x48, 0x43, 0xf8, 0x40, 0x00, 0x41, 0x10, 0x41, 0x08, 0x42, 0x08,
0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x01, 0x00, 0x01, 0x00,
0x11, 0x20, 0x11, 0x10, 0x21, 0x08, 0x41, 0x0c, 0x81, 0x04, 0x01, 0x00, 0x05, 0x00, 0x02, 0x00,
0x0d, 0xf8, 0x71, 0x08, 0x11, 0x08, 0x11, 0x08, 0xfd, 0x08, 0x11, 0xf8, 0x30, 0x00, 0x3b, 0xfc,
0x54, 0x40, 0x50, 0x40, 0x93, 0xfc, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x17, 0xfe, 0x10, 0x00,
0x01, 0x00, 0x00, 0x80, 0x3f, 0xfe, 0x20, 0x00, 0x27, 0xf8, 0x21, 0x10, 0x20, 0xa0, 0x20, 0x40,
0x2f, 0xfe, 0x20, 0x44, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x40, 0x40, 0x41, 0x40, 0x80, 0x80
};               /*处理机调度演示程序*/

char jincheng[]={
0x01, 0x10, 0x41, 0x10, 0x21, 0x10, 0x37, 0xfc, 0x21, 0x10, 0x01, 0x10, 0x01, 0x10, 0xf7, 0xfe,
0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x12, 0x10, 0x14, 0x10, 0x28, 0x00, 0x47, 0xfe, 0x00, 0x00,
0x0d, 0xf8, 0x71, 0x08, 0x11, 0x08, 0x11, 0x08, 0xfd, 0x08, 0x11, 0xf8, 0x30, 0x00, 0x3b, 0xfc,
0x54, 0x40, 0x50, 0x40, 0x93, 0xfc, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x17, 0xfe, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xf8, 0x10, 0x4c, 0x10, 0x46, 0x10, 0x42, 0x10, 0x42,
0x10, 0x42, 0x10, 0x42, 0x10, 0x42, 0x10, 0x46, 0x10, 0x4c, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00
};           /*进程ID*/

char dongtai[]={
0x00, 0x20, 0x00, 0x20, 0x7e, 0x20, 0x00, 0x20, 0x00, 0xfc, 0xff, 0x24, 0x10, 0x24, 0x10, 0x24,
0x24, 0x24, 0x22, 0x24, 0x4f, 0x44, 0xfa, 0x44, 0x40, 0x84, 0x01, 0x14, 0x02, 0x08, 0x00, 0x00,
0x01, 0x00, 0x01, 0x00, 0x7f, 0xfc, 0x01, 0x00, 0x02, 0x80, 0x02, 0x40, 0x05, 0x20, 0x08, 0x98,
0x30, 0x06, 0x01, 0x00, 0x04, 0x88, 0x24, 0x84, 0x24, 0x12, 0x64, 0x12, 0x43, 0xf0, 0x00, 0x00,
0x10, 0x80, 0x18, 0xa0, 0x10, 0x98, 0x20, 0x90, 0x37, 0xfc, 0x61, 0x40, 0xa1, 0x40, 0x21, 0x40,
0x21, 0x40, 0x21, 0x40, 0x21, 0x40, 0x22, 0x44, 0x22, 0x44, 0x24, 0x46, 0x28, 0x3c, 0x20, 0x00,
0x01, 0x00, 0x11, 0x00, 0x11, 0x00, 0x1f, 0xf8, 0x11, 0x00, 0x21, 0x00, 0x21, 0x00, 0x7f, 0xfc,
0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x08, 0x42, 0x10, 0x42, 0x20, 0x3e, 0x40, 0x00,
0x10, 0x00, 0x13, 0xf8, 0x20, 0x88, 0x24, 0x88, 0x44, 0x90, 0xf8, 0x90, 0x10, 0xbe, 0x21, 0x44,
0x7d, 0x44, 0x41, 0x48, 0x02, 0x28, 0x1a, 0x10, 0xe4, 0x30, 0x08, 0x48, 0x11, 0x8e, 0x06, 0x04
};           /*动态优先级*/

char jingtai[]={
0x10, 0x40, 0xfe, 0x40, 0x10, 0x78, 0x7c, 0x90, 0x10, 0x20, 0xfe, 0xfc, 0x00, 0x24, 0x7d, 0xfe,
0x44, 0x24, 0x7c, 0xfc, 0x44, 0x20, 0x7c, 0x20, 0x44, 0x20, 0x44, 0x20, 0x54, 0xa0, 0x48, 0x40,
0x01, 0x00, 0x01, 0x00, 0x7f, 0xfc, 0x01, 0x00, 0x02, 0x80, 0x02, 0x40, 0x05, 0x20, 0x08, 0x98,
0x30, 0x06, 0x01, 0x00, 0x04, 0x88, 0x24, 0x84, 0x24, 0x12, 0x64, 0x12, 0x43, 0xf0, 0x00, 0x00,
0x10, 0x80, 0x18, 0xa0, 0x10, 0x98, 0x20, 0x90, 0x37, 0xfc, 0x61, 0x40, 0xa1, 0x40, 0x21, 0x40,
0x21, 0x40, 0x21, 0x40, 0x21, 0x40, 0x22, 0x44, 0x22, 0x44, 0x24, 0x46, 0x28, 0x3c, 0x20, 0x00,
0x01, 0x00, 0x11, 0x00, 0x11, 0x00, 0x1f, 0xf8, 0x11, 0x00, 0x21, 0x00, 0x21, 0x00, 0x7f, 0xfc,
0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x08, 0x42, 0x10, 0x42, 0x20, 0x3e, 0x40, 0x00,
0x10, 0x00, 0x13, 0xf8, 0x20, 0x88, 0x24, 0x88, 0x44, 0x90, 0xf8, 0x90, 0x10, 0xbe, 0x21, 0x44,
0x7d, 0x44, 0x41, 0x48, 0x02, 0x28, 0x1a, 0x10, 0xe4, 0x30, 0x08, 0x48, 0x11, 0x8e, 0x06, 0x04
};            /*静态优先级*/

char jindu[]={
0x40, 0x00, 0x23, 0xfc, 0x30, 0x00, 0x20, 0x00, 0x00, 0x00, 0x07, 0xfe, 0xe0, 0x80, 0x21, 0x20,
0x21, 0x10, 0x22, 0x08, 0x24, 0x7c, 0x2f, 0xcc, 0x20, 0x08, 0x58, 0x00, 0x87, 0xfe, 0x00, 0x00,
0x08, 0x00, 0x1c, 0x00, 0x31, 0xfc, 0x40, 0x00, 0x88, 0x00, 0x0c, 0x00, 0x1b, 0xfe, 0x30, 0x20,
0x50, 0x20, 0x90, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0xa0, 0x10, 0x40,
0x01, 0x10, 0x41, 0x10, 0x21, 0x10, 0x37, 0xfc, 0x21, 0x10, 0x01, 0x10, 0x01, 0x10, 0xf7, 0xfe,
0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x12, 0x10, 0x14, 0x10, 0x28, 0x00, 0x47, 0xfe, 0x00, 0x00,
0x01, 0x00, 0x00, 0x80, 0x3f, 0xfe, 0x22, 0x20, 0x22, 0x20, 0x2f, 0xfc, 0x22, 0x20, 0x23, 0xe0,
0x20, 0x00, 0x27, 0xf8, 0x22, 0x10, 0x21, 0x20, 0x20, 0xc0, 0x41, 0x30, 0x46, 0x0e, 0x98, 0x04
};            /*运行进度*/

char neicun[]={
0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x3f, 0xfc, 0x21, 0x04, 0x21, 0x04, 0x21, 0x84, 0x22, 0x44,
0x22, 0x24, 0x24, 0x14, 0x28, 0x14, 0x30, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x14, 0x20, 0x08,
0x03, 0x00, 0x02, 0x00, 0x7f, 0xfc, 0x04, 0x00, 0x04, 0x00, 0x0b, 0xf8, 0x18, 0x10, 0x10, 0x20,
0x30, 0x20, 0x57, 0xfe, 0x90, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0xa0, 0x10, 0x40,
0x10, 0xa0, 0x10, 0x90, 0x10, 0x98, 0x90, 0x88, 0x50, 0x80, 0x5f, 0xfe, 0x10, 0xa0, 0x10, 0xa0,
0x31, 0x20, 0x51, 0x20, 0x91, 0x10, 0x12, 0x10, 0x12, 0x08, 0x14, 0x0e, 0x18, 0x04, 0x10, 0x00,
0x01, 0x00, 0x01, 0x00, 0x7f, 0xfc, 0x01, 0x00, 0x02, 0x80, 0x02, 0x40, 0x05, 0x20, 0x08, 0x98,
0x30, 0x06, 0x01, 0x00, 0x04, 0x88, 0x24, 0x84, 0x24, 0x12, 0x64, 0x12, 0x43, 0xf0, 0x00, 0x00
};		/*内存状态*/

char zhuangtai[4][64]={
{
0x40, 0x00, 0x23, 0xfc, 0x30, 0x00, 0x20, 0x00, 0x00, 0x00, 0x07, 0xfe, 0xe0, 0x80, 0x21, 0x20,
0x21, 0x10, 0x22, 0x08, 0x24, 0x7c, 0x2f, 0xcc, 0x20, 0x08, 0x58, 0x00, 0x87, 0xfe, 0x00, 0x00,
0x08, 0x00, 0x1c, 0x00, 0x31, 0xfc, 0x40, 0x00, 0x88, 0x00, 0x0c, 0x00, 0x1b, 0xfe, 0x30, 0x20,
0x50, 0x20, 0x90, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0xa0, 0x10, 0x40},  /*运行*/

{
0x10, 0x20, 0x08, 0x28, 0xff, 0x24, 0x00, 0x24, 0x00, 0x20, 0x7f, 0xfe, 0x42, 0x50, 0x42, 0x50,
0x7e, 0x50, 0x08, 0x50, 0x2c, 0x50, 0x2a, 0x90, 0x4a, 0x92, 0x89, 0x12, 0x2a, 0x0e, 0x10, 0x00,
0x10, 0x40, 0x10, 0x40, 0x21, 0xf4, 0x20, 0x44, 0x48, 0x48, 0xfb, 0xfe, 0x10, 0x20, 0x20, 0x40,
0x41, 0xf8, 0xfb, 0x08, 0x05, 0x08, 0x01, 0xf8, 0x39, 0x08, 0xc1, 0x08, 0x01, 0xf8, 0x01, 0x08},  /*就绪*/

{
0x7c, 0x00, 0x4b, 0xf8, 0x4a, 0x08, 0x52, 0x08, 0x62, 0x08, 0x53, 0xf8, 0x4a, 0x08, 0x4a, 0x08,
0x4a, 0x08, 0x6b, 0xf8, 0x52, 0x08, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0x4f, 0xfe, 0x40, 0x00,
0x02, 0x00, 0x01, 0x00, 0x7f, 0xfe, 0x44, 0x42, 0x1f, 0xf8, 0x04, 0x40, 0x1f, 0xf8, 0x04, 0x40,
0x7f, 0xfe, 0x04, 0x20, 0x09, 0x18, 0x3f, 0xfe, 0xc1, 0x04, 0x01, 0x00, 0x7f, 0xfc, 0x00, 0x00},   /*阻塞*/
{
0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x13, 0xfc, 0xfc, 0x40, 0x10, 0x40, 0x17, 0xfe, 0x18, 0x40,
0x30, 0x40, 0xd0, 0x40, 0x13, 0xfc, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x57, 0xfe, 0x20, 0x00,
0x08, 0x00, 0x08, 0x00, 0x08, 0xf8, 0x7e, 0x08, 0x08, 0x08, 0x08, 0x08, 0xfe, 0xf8, 0x08, 0x80,
0x48, 0x80, 0x4e, 0x84, 0x48, 0x84, 0x48, 0x7c, 0x48, 0x00, 0xa8, 0x00, 0x9f, 0xfe, 0x00, 0x00}    /*挂起*/
};

char caozuo1[2][64]={
{
0x08, 0x00, 0x7e, 0xfc, 0x10, 0x80, 0x28, 0x80, 0x7e, 0xfe, 0x08, 0x88, 0x0e, 0x88, 0xf9, 0x08,    /*暂停*/
0x0a, 0x08, 0x1f, 0xf0, 0x10, 0x10, 0x1f, 0xf0, 0x10, 0x10, 0x10, 0x10, 0x1f, 0xf0, 0x00, 0x00,
0x08, 0x40, 0x0c, 0x20, 0x0b, 0xfe, 0x10, 0x00, 0x11, 0xf8, 0x31, 0x08, 0x51, 0xf8, 0x90, 0x00,
0x17, 0xfe, 0x14, 0x02, 0x11, 0xfc, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0xa0, 0x10, 0x40},

{
0x20, 0x20, 0x32, 0x20, 0x22, 0x24, 0x43, 0x24, 0x4a, 0xa8, 0xfa, 0x20, 0x13, 0xfe, 0x22, 0x70,    /*继续*/
0x42, 0x68, 0xfa, 0xa4, 0x02, 0xa4, 0x03, 0x20, 0x1a, 0x20, 0xe2, 0x00, 0x03, 0xfe, 0x00, 0x00,
0x10, 0x40, 0x18, 0x40, 0x11, 0xfc, 0x20, 0x40, 0x4b, 0xfe, 0xf1, 0x24, 0x10, 0xa8, 0x22, 0xa0,
0x41, 0x20, 0xf7, 0xfe, 0x00, 0x20, 0x00, 0x50, 0x18, 0x48, 0xe0, 0x84, 0x01, 0x04, 0x00, 0x00}
};

char caozuo2[]={
0x10, 0x00, 0x08, 0x0e, 0x7f, 0x70, 0x22, 0x40, 0x14, 0x40, 0xff, 0x7e, 0x08, 0x48, 0x08, 0x48,
0xff, 0x48, 0x08, 0x48, 0x2c, 0x48, 0x2a, 0x88, 0x4a, 0x88, 0x89, 0x08, 0x2a, 0x08, 0x10, 0x08,
0x00, 0x40, 0x78, 0x40, 0x0b, 0xf8, 0x10, 0x48, 0x17, 0xfe, 0x20, 0x48, 0x7b, 0xf8, 0x08, 0x40,    /*新建进程*/
0x4b, 0xfc, 0x48, 0x40, 0x28, 0x40, 0x17, 0xfc, 0x28, 0x40, 0x46, 0x40, 0x81, 0xfe, 0x00, 0x00,
0x01, 0x10, 0x41, 0x10, 0x21, 0x10, 0x37, 0xfc, 0x21, 0x10, 0x01, 0x10, 0x01, 0x10, 0xf7, 0xfe,
0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x12, 0x10, 0x14, 0x10, 0x28, 0x00, 0x47, 0xfe, 0x00, 0x00,
0x0d, 0xf8, 0x71, 0x08, 0x11, 0x08, 0x11, 0x08, 0xfd, 0x08, 0x11, 0xf8, 0x30, 0x00, 0x3b, 0xfc,
0x54, 0x40, 0x50, 0x40, 0x93, 0xfc, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x17, 0xfe, 0x10, 0x00};

char caozuo3[]={
0x00, 0x00, 0xff, 0x80, 0x22, 0x7e, 0x22, 0x44, 0x3e, 0x44, 0x22, 0x44, 0x22, 0x44, 0x3e, 0x28,    /*取消进程*/
0x22, 0x28, 0x22, 0x90, 0x27, 0x10, 0x3a, 0x28, 0xc2, 0x46, 0x02, 0x84, 0x02, 0x00, 0x02, 0x00,
0x20, 0x40, 0x10, 0x40, 0x12, 0x44, 0x81, 0x48, 0x49, 0x50, 0x4b, 0xfc, 0x12, 0x04, 0x12, 0x04,
0x23, 0xfc, 0x22, 0x04, 0xe2, 0x04, 0x23, 0xfc, 0x22, 0x04, 0x22, 0x04, 0x22, 0x14, 0x22, 0x08,
0x01, 0x10, 0x41, 0x10, 0x21, 0x10, 0x37, 0xfc, 0x21, 0x10, 0x01, 0x10, 0x01, 0x10, 0xf7, 0xfe,
0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x12, 0x10, 0x14, 0x10, 0x28, 0x00, 0x47, 0xfe, 0x00, 0x00,
0x0d, 0xf8, 0x71, 0x08, 0x11, 0x08, 0x11, 0x08, 0xfd, 0x08, 0x11, 0xf8, 0x30, 0x00, 0x3b, 0xfc,
0x54, 0x40, 0x50, 0x40, 0x93, 0xfc, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x17, 0xfe, 0x10, 0x00};

char caozuo4[]={
0x04, 0x00, 0x3f, 0xbe, 0x04, 0x24, 0x3f, 0xa8, 0x04, 0x28, 0x7f, 0xa4, 0x04, 0x32, 0x08, 0xac,    /*帮助*/
0x10, 0xa0, 0x2f, 0xf8, 0x48, 0x88, 0x08, 0x88, 0x08, 0xa8, 0x08, 0x90, 0x00, 0x80, 0x00, 0x80,
0x00, 0x20, 0x3e, 0x20, 0x22, 0x20, 0x22, 0x20, 0x22, 0xfc, 0x3e, 0x24, 0x22, 0x24, 0x22, 0x24,
0x3e, 0x24, 0x22, 0x24, 0x22, 0x44, 0x27, 0x44, 0xf8, 0x84, 0x01, 0x14, 0x02, 0x08, 0x00, 0x00};

char caozuo5[]={
0x40, 0x00, 0x27, 0xf0, 0x24, 0x10, 0x07, 0xf0, 0x04, 0x10, 0x04, 0x10, 0xe7, 0xf0, 0x24, 0x88,    /*退出*/
0x24, 0x50, 0x24, 0x20, 0x25, 0x10, 0x26, 0x18, 0x24, 0x08, 0x50, 0x00, 0x8f, 0xfe, 0x00, 0x00,
0x01, 0x00, 0x01, 0x00, 0x21, 0x04, 0x21, 0x04, 0x21, 0x04, 0x21, 0x04, 0x3f, 0xfc, 0x21, 0x04,
0x01, 0x00, 0x21, 0x04, 0x21, 0x04, 0x21, 0x04, 0x21, 0x04, 0x3f, 0xfc, 0x20, 0x04, 0x00, 0x00};

char fuhao[]={
0x00,0x80,0x00,0x40,0x00,0x20,0x00,0x10,0x00,0x08,0x00,0x04,0x00,0x02,0xff,0xff,
0x00,0x01,0x00,0x02,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x80};

char Creat_gr1[]={
0x00, 0x40, 0x47, 0xfc, 0x30, 0x40, 0x23, 0xf8, 0x00, 0x40, 0x07, 0xfe, 0xf0, 0x00, 0x13, 0xf8,
0x12, 0x08, 0x13, 0xf8, 0x12, 0x08, 0x13, 0xf8, 0x16, 0x08, 0x1a, 0x08, 0x12, 0x28, 0x02, 0x10,
0x20, 0x40, 0x20, 0x40, 0xfc, 0xa0, 0x21, 0x18, 0x43, 0xf6, 0x54, 0x00, 0xfc, 0x04, 0x53, 0xd4,
0x12, 0x54, 0x1f, 0xd4, 0xf2, 0x54, 0x13, 0xd4, 0x12, 0x54, 0x12, 0x54, 0x13, 0x44, 0x12, 0x8c,
0x0c, 0x00, 0x06, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40,
0x04, 0x20, 0x08, 0x20, 0x08, 0x10, 0x10, 0x08, 0x20, 0x0e, 0x40, 0x04, 0x80, 0x00, 0x00, 0x00,
0x01, 0x10, 0x41, 0x10, 0x21, 0x10, 0x37, 0xfc, 0x21, 0x10, 0x01, 0x10, 0x01, 0x10, 0xf7, 0xfe,
0x11, 0x10, 0x11, 0x10, 0x12, 0x10, 0x12, 0x10, 0x14, 0x10, 0x28, 0x00, 0x47, 0xfe, 0x00, 0x00,
0x0d, 0xf8, 0x71, 0x08, 0x11, 0x08, 0x11, 0x08, 0xfd, 0x08, 0x11, 0xf8, 0x30, 0x00, 0x3b, 0xfc,
0x54, 0x40, 0x50, 0x40, 0x93, 0xfc, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x17, 0xfe, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xf8, 0x10, 0x4c, 0x10, 0x46, 0x10, 0x42, 0x10, 0x42,
0x10, 0x42, 0x10, 0x42, 0x10, 0x42, 0x10, 0x46, 0x10, 0x4c, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00
};                                   /*请输入进程ID*/

void initgr(void) /* BGI初始化 */
{
  int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同样效果 */
  initgraph(&gd, &gm, "");
}

void drawmat(char *mat,int matsize,int x,int y,int color)
/*依次:字模指针、点阵大小、起始坐标(x,y)、颜色*/
{
  int i, j, k, n;
  n = (matsize - 1) / 8 + 1;
  for(j = 0; j < matsize; j++)
    for(i = 0; i < n; i++)
      for(k = 0;k < 8; k++)
        if(mat[j * n + i] & (0x80 >> k))  /*测试为1的位则显示*/
          putpixel(x + i * 8 + k, y + j, color);
}

void menu(void)
{
    int i;
    setfillstyle(1, 7);
    bar(2,430,630,470);

    setcolor(15);                    /*画菜单*/
    line(2,428,636,428);
    line(3,429,635,429);
    line(2,428,2,481);
    line(3,429,3,482);

    setcolor(8);
    line(3,481,635,481);
    line(2,482,636,482);
    line(635,481,635,431);
    line(636,480,636,430);

    setfillstyle(1, 2);            /*四种状态*/
    bar(12,448,22,462);

    setfillstyle(1, 14);
    bar(62,448,72,462);

    setfillstyle(1, 4);
    bar(112,448,122,462);

    setfillstyle(1, 8);
    bar(162,448,172,462);

    for(i=0;i<4;i++)
    {
        drawmat(zhuangtai[i],16,27+50*i,448,4);
        drawmat(zhuangtai[i]+32,16,43+50*i,448,4);        /*操作菜单*/
    }
    if(!xx)
    {
    	drawmat(caozuo1[1],16,267,448,4);
    	drawmat(caozuo1[1]+32,16,283,448,4);
    }
    else
    {
    	drawmat(caozuo1[0],16,267,448,4);
    	drawmat(caozuo1[0]+32,16,283,448,4);
    }

    drawmat(caozuo2,16,333,448,4);
    drawmat(caozuo2+32,16,349,448,4);
    drawmat(caozuo2+64,16,365,448,4);
    drawmat(caozuo2+96,16,381,448,4);

    drawmat(caozuo3,16,431,448,4);
    drawmat(caozuo3+32,16,447,448,4);
    drawmat(caozuo3+64,16,463,448,4);
    drawmat(caozuo3+96,16,479,448,4);

    drawmat(caozuo4,16,529,448,4);
    drawmat(caozuo4+32,16,545,448,4);

    drawmat(caozuo5,16,595,448,4);
    drawmat(caozuo5+32,16,611,448,4);
    if(key==1)
	drawmat(fuhao,16,245,448,4);
    if(key==2)
	drawmat(fuhao,16,311,448,4);
    if(key==3)
	drawmat(fuhao,16,409,448,4);
    if(key==4)
	drawmat(fuhao,16,507,448,4);
    if(key==5)
	drawmat(fuhao,16,573,448,4);
}


void board(void)
{
    int i, str[5];
    setcolor(15);                   /*面板*/
    line(0,0,638,0);
    line(0,1,637,1);
    line(0,0,0,638);
    line(1,0,1,637);

    setcolor(8);
    line(1,479,638,479);
    line(2,478,638,478);
    line(638,1,637,479);
    line(638,2,638,479);

    setfillstyle(1, 7);
    bar(2,2,636,477);

    setcolor(1);
    setfillstyle(1, 1);
    bar(4,4,634,12);
    setcolor(15);
    outtextxy(5,5,"CSU_XINXI0502_XieJun");

    str[0]=Cpu_time/1000;
    str[1]=Cpu_time%1000/100;
    str[2]=Cpu_time%100/10;
    str[3]=Cpu_time%10;

    setcolor(9);
    outtextxy(10,82,"Cpu_time");
    for(i=0;i<4;i++)
	drawmat(number[str[i]],12,90+i*8,78,9);

    for(i=0;i<32*8;i+=32)
        drawmat(biaoti+i,16,240+i/2,30,4);     /*操作系统实验*/

    for(i=0;i<32*9;i+=32)
        drawmat(mingcheng+i,16,230+i/2,60,4);   /*处理机调度*/

    for(i=0;i<32*3;i+=32)
        drawmat(jincheng+i,16,5+i/2,100,4);    /*进程ID*/

    for(i=0;i<32*5;i+=32)
        drawmat(jingtai+i,16,60+i/2,100,4);    /*静态优先及*/

    for(i=0;i<32*5;i+=32)
        drawmat(dongtai+i,16,150+i/2,100,4);    /*动态优先级*/

    for(i=0;i<32*4;i+=32)
        drawmat(jindu+i,16,300+i/2,100,4);      /*运行进度*/

    for(i=0;i<32*4;i+=32)
	drawmat(neicun+i,16,510+i/2,100,4);      /*内存状态*/

    menu();
}

void Draw_Process()
{
    PCB *p;
    int i, j, m;
    float n;
    int str[3];
    p=Pro_head;
    for(i=0;p!=NULL;i++,p=p->next)
    {
        drawmat(number[p->id],12,20,130+30*i,4);    /*进程ID*/
        drawmat(number[p->static_prior],12,88,130+30*i,4);     /*静态优先级*/

        str[0]=p->dynamic_prior/100;                           /*动态优先级*/
        str[1]=(p->dynamic_prior%100)/10;
        str[2]=p->dynamic_prior%10;
        drawmat(number[str[0]],12,170,130+30*i,4);
        drawmat(number[str[1]],12,178,130+30*i,4);
        drawmat(number[str[2]],12,186,130+30*i,4);

        drawmat(baifen,16,468,130+30*i,4);          /*------%-------*/
        n=p->used_time;
        n=(n/p->need_time)*100;
        j=n;
        str[0]=j/100;                           /*比例*/
        str[1]=(j%100)/10;
        str[2]=j%10;
        drawmat(number[str[0]],12,440,130+30*i,4);
        drawmat(number[str[1]],12,448,130+30*i,4);
        drawmat(number[str[2]],12,456,130+30*i,4);

        for(m=0;m<=j;m++)                           /*画进度条*/
        {
            if(p->state==0)
                setfillstyle(1,2);
            if(p->state==1)
                setfillstyle(1,14);
            if(p->state==2)
                setfillstyle(1,4);
            if(p->state==3)
                setfillstyle(1,8);
            bar(230+m*2,130+30*i,230+m*2+1,140+30*i);
        }

        setcolor(8);                    /*画进度条框*/
        line(230,128+30*i,430,128+30*i);
        line(231,129+30*i,431,129+30*i);
        line(230,128+30*i,230,141+30*i);
        line(231,129+30*i,231,142+30*i);

        setcolor(15);
        line(231,141+30*i,430,141+30*i);
        line(230,142+30*i,431,142+30*i);
        line(430,141+30*i,430,131+30*i);
        line(431,140+30*i,431,130+30*i);
    }

/*画内存状态框*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -