如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
数媒专业操作系统实验指导实验一进程管理1.目的和要求加强对进程概念的理解。2.实验内容至少要有:创建新的进程;查看运行进程;换出某个进程;杀死运行进程以及进程之间通信等功能。3.实验环境。①PC兼容机②Windows、DOS系统③VC语言4.实验提示PCB结构通常包括以下信息:进程名,进程优先数,轮转时间片,进程所占用的CPU时间,进程的状态,当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删。主体程序#include"conio.h"#include"stdio.h"#include"stdlib.h"structjincheng_type{intpid;intyouxian;intdaxiao;………};structjincheng_typeneicun[20];intshumu=0,pid_l;main(){intn,m,i;chara;n=1;while(n==1){clrscr();printf("\n********************************************");printf("\n*进程演示系统*");printf("\n********************************************");printf("\n1.创建新的进程2.查看运行进程");printf("\n3.换出某个进程4.杀死运行进程");printf("\n5.进程之间通信6.退出系统");printf("\n********************************************");printf("\n请选择(1~6)");a=getche();switch(a){case'1':create();break;case'2':run();break;case'3':huanchu();break;case'4':kill();break;case'5':tongxun();break;case'6':exit(0);default:n=0;}}}create()/*创建一个进程的示例(不完整的程序)*/{if(shumu>=20){printf("\n内存已满,请先结束或换出进程\n");}else{printf("\n请输入新进程的pid\n");scanf("%d",&neicun[shumu-1].pid);printf("\n请输入新进程的优先级\n");scanf("%d",&neicun[shumu-1].youxian);printf("\n请输入新进程的大小\n");scanf("%d",&neicun[shumu-1].daxiao);shumu++;}}5.实验运行结果*********************************************进程演示系统*********************************************1.创建新的进程2.查看运行进程3.换出某个进程4.杀死运行进程5.进程之间通信6.退出系统********************************************请选择(1~6)然后根据你选择的不同,出现不同的结果。实验二进程调度1.目的和要求进程调度是处理机管理的核心内容。本实验要求用C语言编写和调试一个简单的进程调度程序。通过本实验可以加深理解有关进程控制块、进程队列的概念,并体会和了解优先数和时间片轮转调度算法的具体实施办法。2.实验内容①设计进程控制块PCB表结构(与实验一的结构相同),分别适用于优先数调度算法和循环轮转调度算法。②建立进程就绪队列。对两种不同算法编制入链子程序。③编制两种进程调度算法:1)优先数调度;2)循环轮转调度3.实验环境同实验一4.实验提示①本程序用两种算法对五个进程进行调度,每个进程可有三个状态,并假设初始状态为就绪状态。②为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的优先数或轮转时间数以及进程需运行的时间片数的初始值均由用户给定。③在优先数算法中,优先数可以先取值为98,进程每执行一次,优先数减3,CPU时间片数加1,进程还需要的时间片数减1。在轮转算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了2个单位),这时,CPU时间片数加2,进程还需要的时间片数减2,并排列到就绪队列的尾上。④对于遇到优