void main()
{
int i;
char *comm=\"\
...
while(1)
{
printf(\"*****************\\n\");
printf(\"*dir:List File *\\n\");
printf(\"*cop:Copy File *\\n\");
printf(\"*era:Delete File*\\n\");
printf(\"*dat:Date *\\n\");
2
printf(\"*tim:Time *\\n\");
printf(\"*end:Quit *\\n\");
printf(\"*****************\\n\");
printf(\"Please Input Command:\\n\");
scanf(\"%s\
...
switch(num)
{
case 0:command=\"dir\";break;
case 1:printf(\"Please Input Source File:\");
scanf(\"%s\
printf(\"\\nPlease Input Destination:\");
scanf(\"%s\
...
3
break;
case 2:printf(\"Please Input Delete File:\");
scanf(\"%s\
...
break;
case 3:...;break;
case 4:...;break;
case 5:...;exit(0);
default:printf(\"Err Command,Input Command Again!\\n\");
}
if(num>=0&&num<=5)
system(command);
}
}
4
5
实验二 进程调度设计
1. 目的和要求
进程调度是处理机管理的核心内容。本实验要求用C语言编写和调试一个简单的进程调度程序。通过本实验可以加深理解有关进程控制块、进程队列的概念,并体会和了解FIFO调度算法的具体实现方法。
2. 实验内容
①设计进程控制块PCB表结构。
②编制FIFO进程调度算法.
3. 实验环境
PC /Windows系统/Visual C++6.0
4. 核心代码提示
typedef struct node
{
char name;
int status;
6
int precendence;
int ax,bx,cx,dx;
int pc;
int psw;
struct node *next; /*pcb define*/
}pcb;
pcb *createprocess(pcb *head)
{
}
void processfifo(pcb *head) /*use fifo */
{
}
main()
{
7
pcb *head;
head=NULL;
head=createprocess(head);
processfifo(head);
}
8
实验三 页面调度算法
1. 目的和要求
通过本实验可以加深理解有关虚拟存储器的工作原理,进一步体会和了解页面替换算法的具体实现方法。
2. 实验内容
① 实现三种算法:先进先出;OPT;LRU
② 页面序列从指定的文本文件(TXT文件)中取出
③ 输出:第一行:每次淘汰的页面号,第二行:显示缺页的总次数
3. 实验环境
PC /Windows系统/Visual C++6.0
4. 核心代码提示
struct page
{
int num;
9
int tag;
struct page *next;
};
struct page *create(int n) /*建立分配的内存空间,并初始化,返回头结点*/
{
}
void FIFO(array,n)
{
}
void LRU(array,n)
{
}
OPT(array,n)
{
10
}
main()
{
printf(\"FIFO \");
FIFO(page,3);
printf(\"\\nLRU \"); LRU(page,3);
printf(\"\\nOPT \"); OPT(page,3);
}
11
实验四 文件管理
1. 目的和要求
通过使用高级语言编写和调试一个简单的文件系统,达到模拟文件管理工作的目的,并进一步使学生对各种文件操作命令的实质内容和执行过程有比较深入的了解。
2. 实验内容
设计一个简单的文件系统,对文件的操作设计如下命令(使用菜单选择):
creat 建立文件
delete 删除文件
list 文件列表
bye 退出
编写程序并调试通过,运行出结果,画出流程图
3. 实验环境
PC /Windows系统/Visual C++6.0
4. 核心代码提示
struct filenode
{
char *filename;
int lenth;
struct filenode *next;
} *filehead=NULL;
list(struct filenode *fhead)
{
}
creat(char *fname)
{
}
delete(char *fname)
{
13
}
quit()
{
}
void main()
{
int choice;
char *newname=\"\
while(1)
{
printf(\"\\n\");
printf(\"***********FILE SYSTEM************\\n\");
printf(\"* 1--CREAT FILE 2--DELETE FILE *\\n\");
printf(\"* 3--LIST FILE 4--QUIT *\\n\");
14
printf(\"***********************************\\n\");
printf(\"\\n\");
printf(\"Please Input Your Choice:\");
scanf(\"%d\
switch(choice)
{
case 1:printf(\"Input New File Name:\");
scanf(\"%s\
creat(newname);
break;
case 2:printf(\"Input delete File Name:\");
scanf(\"%s\
delete(delname);
break;
15
case 3:list(filehead);break;
case 4:quit();exit(0);
}
}
}
16