在操作系统工作过程中,基本的调度单位是进程,现在要求大家编写一个程序,模拟操作系统中进程状态的转换

来源:百度知道 编辑:UC知道 时间:2024/05/30 07:49:19
我是大一的学生 现在学C 链表刚学完 这是作业题我看不太懂意思 能给我说说意思就行了 谢谢啊
上一次题好像没有说完。。。呵呵 补充
在操作系统工作过程中,基本的调度单位是进程,现在要求大家编写一个程序,模拟操作系统中进程状态的转换:
操作系统工作过程中,操作系统会保存三个链表:就绪链表,等待表和运行表,每个进程由一个被称为PCB的数据结构(结构体)来描述,PCB中保存进程的优先级(0-9的数字)和当前状态(0-4的数字)。

程序要完成的功能:
1、 声明PCB块结构,并创建和初始化三个链表;
2、 分别编写函数完成创建进程、转换进程状态、查看进程状态和查看所有进程状态的功能。
要求:
1、 界面友好;
2、 针对进程的操作使用不同的函数完成。

#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <conio.h>

#define ADDRFILE "c:\\addrlist.txt"

typedef struct tagLinkedList
{
char name[30];
char tel[30];
char addr[100];

struct tagLinkedList *prev;
struct tagLinkedLIst *next;
}ADDR;

ADDR *g_pAddrHead = NULL;
ADDR *g_pFind;
int g_bSaved = 1;

void get_addrlist(void);
int add_list(const ADDR *addr);
int find_list(const char *name);
void SetHeadPosition(void);
void SetTailPosition(void);

void Add_addr(void);
void Find_addr(void);
void Modify_addr(void);
void Delete_addr(void);
void Print_addr(void);
void Save_addr(void);
void Remove_addr(void);

void main(void)
{

int ch;

get_addrlist();

puts("通讯录程序 Version 1.0");