📄 format.c
字号:
#include <stdio.h>
/* 状态码 */
/* BLANK -1 means not assigned */
#define BLANK -1
#define FINISHED 0
#define RUNNING 1
#define READY 2
#define BLOCKED 3
#define NTCB 10 /* NTCB是系统允许的最多任务数 */
#define TB 3 /* 时钟中断的次数 */
#define NBUF 10
#define NTEXT 50 /* 消息正文的最大长度(单位:B) */
/* 全局变量:当前运行的线程号 */
int current = -1;
int nextc;
int i1 = 1, i2 = 3;
long fi,fi1,fi2;
int timecount = 0; /* 统计时钟中断的次数 */
char b[200];
char words[200];
typedef int (far *codeptr)(void);
void interrupt (*oldInt8)(void);/* 原来的时间中断程序 */
/* 记录型信号量 */
typedef struct semaphore
{
int value; /* 消息缓冲队列的线程数 */
struct TCB *wq;
}semaphore;
semaphore mutexfb = {1,NULL}; /* 互斥信号量 */
semaphore sfb = {10,NULL}; /* 空闲缓冲队列记数信号量 */
semaphore mutexre = {0,NULL};
semaphore mutexse = {0,NULL};
/* 消息缓冲区 */
struct buffer
{
int sender; /* 消息发送者的标识符 */
int size; /* 消息长度 <= NTEXT 个字节 */
char text[NTEXT]; /* 消息正文 */
struct buffer *next;/* 指向下一个消息缓冲区的指针 */
}*freeBuf;
/* 线程控制块TCB */
struct TCB {
unsigned char *stack; /* 堆栈的起始地址 */
unsigned ss; /* 堆栈段址 */
unsigned sp; /* 段栈指针 */
char state; /* 进程状态 */
char name[10]; /* 线程的外部标识符 */
int value;
struct TCB *next;
struct buffer *mq; /* 消息队列队首指针 */
semaphore mutex; /* 消息队列的互斥信号量 */
semaphore sm; /* 消息队列的计数信号量 */
}tcb[NTCB];
/* 线程现场保护和恢复的数据结构 */
struct int_regs {
unsigned bp,di,si,ds,es,dx,cx,bx,ax,ip,cs,flags,off,seg;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -