《操作系统》实践教学大纲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自考《操作系统》实验环节实施方案
根据《操作系统》课程教学要求,实验环节应要求完成五个实验项目。考虑到自考课程教学实际情况,结合我院实验室的条件,经任课教师、实验指导教师、教研室主任和我院学术委员会认真讨论,确定开设三个实验项目。实验项目、内容及要求详见我院编制的《操作系统》课程实验大纲。
一、实验环境
目前,我院根据编制的《操作系统》课程实验大纲,实验环境基本能满足开设的实验项目。实验环境主要设备为:
硬件:一台能正常启动的计算机
软件:VisualC++ 6.0, Windows2003等
二、实验报告要求与成绩评定
学生每完成一个实验项目,要求独立认真的填写实验报告。实验指导教师将根据学生完成实验的态度和表现,结合填写的实验报告评定实验成绩。成绩的评定按百分制评分。
三、实验考试
学生在完成所有实验项目后,再进行一次综合性考试。教师可以根据学生完成的实验项目,综合出3套与实验相似的考试题,由学生任选一套独立完成。教师给出学生实验考试成绩作为最终实验成绩上报。
四、附件
附件1 《操作系统》课程实验大纲
附件2实验报告册样式
以上对《计操作系统》课程实验的实施方案,妥否,请贵校批示。
重庆科创职业学院
2009年3月20日
附件1 《操作系统》课程实验教学大纲
实验课程负责人:赵志斌开课学期:第四学期
实验类别:专业基础课程实验类型:应用性实验
实验要求:必修适用专业:通信工程
课程总学时:12学时课程总学分: 1分
《操作系统》课程实验项目及学时分配
实验一页式存储管理
一、实验目的
掌握页面存储管理的内存分配方法,位视图的表示。
二、实验内容
1、运行程序,由检查教师给出文件名,该文件中存有内存目前状况的位示图的数据(0和1的文件)。(程序应做提示,界面友好)。
2、你所编制的程序应读入数据,存放在相应的数据结构中。
3、显示友好的用户界面,由检查教师输入内存申请(总块数)。4、根据申请和位示图状态,为用户分配内存,并建立页表。
5、输出位示图和页表。
三、实验环境
1、一台能正常启动的P4 1.5G HZ以上个人计算机
2、安装有Visual C++6.0软件
四、实验原理与方法
内存被划分成2048块(页)。用32位字长的字存放位示图,为0的位表示该块尚未分配,为1的位表示该块已分配。
五、实验步骤
1、启动Visual C++ 6.0,创建一个新的C++源程序
2、输入相应的代码。
3、保存程序
4、运行程序
主要的程序代码如下:
#include
#include #include<string.h> constint PAGES=256; //定义总块数 const int WORD=32; //定义字长 const int WORDNUM=PAGES/WORD;//定义总字数 typedef struct node{ char jobname[20]; intnum; int nums[PAGES]; struct node *next; }jobs; int table[WORDNUM][WORD]; int freenum=0; jobs *head; //初始化函数 void initial(){ int i,j; jobs *p; //初始化位示图 for(i=0;i for(j=0;j table[i][j]=0; } } //初始化作业表头 p=new jobs; strcpy(p->jobname,"null"); p->num=0; p->next=NULL; head=p; } //读入位示图初始数据 void readData() { int i,j; FILE *fp; char fname[20]; cout<<"请输入初始位示图数据文件名:"< if((fp=fopen(fname,"r"))!=NULL){ for(i=0;i for(j=0;j<WORD;j++){ fscanf(fp,"%d",&table[i][j]); if(table[i][j]==1) freenum++; } } cout<<"初始位示图"<<endl; for(i=0;i<WORDNUM;i++){ for(j=0;j cout< } cout<<endl; } cout<<"总空闲块数:"< } else{ cout<<"文件不能打开"<<endl; } } //新加入作业函数 void add() { char jobname[20]; int num; jobs *p; int i,j,k=0; cout<<"请输入新增的作业名:"; cin>>jobname; cout<<"新增作业所需页数:"; cin>>num; if(num<=freenum){ freenum-=num; p=newjobs; strcpy(p->jobname,jobname); p->num=num; for(k=0;k i=0; j=0; while(table[i][j]==1){ j=0; while(table[i][j]==1)j++;