《计算机操作系统课程实验》由会员分享,可在线阅读,更多相关《计算机操作系统课程实验(17页珍藏版)》请在金锄头文库上搜索。
1、计算机操作系统实验设计设计目的1、增强学生对计算机操作系统基本原理、基本理论、基本算法的理解2、提高和培养学生的动手能力设计要求1、每人至少选作 1 题,多做不限。2、每人单独完成,可以讨论,但每人的设计内容不得完全相同,抄袭或有 2 人/多人设计完全一样者,不能通过。3、设计完成后,应上交课程设计文档,文档格式应是学校课程设计的标准格式,所有学生的封面大小、格式也必须一样4、同时上交设计的软盘(或以班刻录光盘)设计题目设计类 在 i386 下写一个程序,从实地址模式进入保护虚地址模式,进而启动分页机制平台:语言:汇编、C DOS 下中断程序设计设计热键、中断接管程序等平台:DOS语言:ASM
2、 、 Turbo C、Pascal 等 DOS 下的菜单、图形界面程序设计同 1 DOS、下的 I/O 设备处理程序,如打印机驱动程序、字符设备、块设备、网络设备、USB 设备驱动程序平台:DOS 语言:ASM TC 多进程处理程序,进程创建、通信(管道、信号量、共享内存、消息队列等、mmap)、互斥平台:Windows、Linux语言:同上 多线程程序 线程创建、同步、互斥平台:Windows、Linux语言:VC LINUX-GCC JAVA Windows 下设备驱动程序设计(块设备、字符设备、网络设备、USB 设备) Linux 下设备驱动程序设计(块设备、字符设备、网络设备、USB
3、设备) Linux 调度实验与参数调整如改变时间片、优先级等 Linux 操作系统内存管理机制实验 Linux 文件管理实验,并增加一个系统调用 Linux 系统调用过程实验,并增加一个系统调用如跟综一个系统调用算法模拟类 调度算法的模拟 模拟各种调度算法,并进行调度性能分析 银行家算法模拟 内存管理算法模拟 页面置换算法模拟 模拟分段、分页情况下的地址变换#include#include#include#define False 0#define True 1int Max100100=0;/各进程所需各类资源的最大需求int Avaliable100=0;/系统可用资源char name1
4、00=0;/资源的名称int Allocation100100=0;/系统已分配资源int Need100100=0;/还需要资源int Request100=0;/请求资源向量int temp100=0;/存放安全序列int Work100=0;/存放系统可提供资源int M=100;/作业的最大数为 100int N=100;/资源的最大数为 100void showdata()/显示资源矩阵int i,j;cout;couti;/输入须申请的资源号coutRequestj;/输入需要申请的资源for (j=0;jNeedij)/判断申请是否大于需求,若大于则出错coutAvaliable
5、j)/判断申请是否大于当前资源,若大于则 /出错coutn;flag=N;N=N+n;for(int i=0;inameflag;coutAvaliableflag+;showdata();safe();void delresources()/删除资源char ming;int i,flag=1;coutming;for(i=0;iAvaliable0Avaliable1Avaliable2;coutMaxflagi;Needflagi=Maxflagi-Allocationflagi;showdata();safe();int main()/主函数int i,j,number,choice,
6、m,n,flag;char ming;coutn;N=n;for(i=0;iming;namei=ming;coutnumber;Avaliablei=number;coutm;M=m;coutMaxij;doflag=0;coutAllocationij;if(AllocationijMaxij)flag=1;Needij=Maxij-Allocationij;if(flag)coutchoice;switch(choice)case 1: addresources();break;case 2: delresources();break;case 3: changeresources();
7、break;case 4: share();break;case 5: addprocess();break;case 0: choice=0;break;default: cout#include#include#define False 0#define True 1int Max100100=0;/各进程所需各类资源的最大需求int Avaliable100=0;/系统可用资源char name100=0;/资源的名称int Allocation100100=0;/系统已分配资源int Need100100=0;/还需要资源int Request100=0;/请求资源向量int temp
8、100=0;/存放安全序列int Work100=0;/存放系统可提供资源int M=100;/作业的最大数为 100int N=100;/资源的最大数为 100void showdata()/显示资源矩阵int i,j;cout;couti;/输入须申请的资源号coutRequestj;/输入需要申请的资源for (j=0;jNeedij)/判断申请是否大于需求,若大于则出错coutAvaliablej)/判断申请是否大于当前资源,若大于则 /出错coutn;flag=N;N=N+n;for(int i=0;inameflag;coutAvaliableflag+;showdata();sa
9、fe();void delresources()/删除资源char ming;int i,flag=1;coutming;for(i=0;iAvaliable0Avaliable1Avaliable2;coutMaxflagi;Needflagi=Maxflagi-Allocationflagi;showdata();safe();int main()/主函数int i,j,number,choice,m,n,flag;char ming;coutn;N=n;for(i=0;iming;namei=ming;coutnumber;Avaliablei=number;coutm;M=m;cout
10、Maxij;doflag=0;coutAllocationij;if(AllocationijMaxij)flag=1;Needij=Maxij-Allocationij;if(flag)coutchoice;switch(choice)case 1: addresources();break;case 2: delresources();break;case 3: changeresources();break;case 4: share();break;case 5: addprocess();break;case 0: choice=0;break;default: cout请正确选择功能号(0-5)!endl;break;return 1;