资源描述:
《《操作系统课程》实验(实训)指导大纲》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《操作系统课程》实验(实训)指导大纲课程编号:G611SG0004课程性质:学科基础课适用专业:计算机科学与技术网络工程数字媒体实验学时:16实验教材:自编符合《认证标准》:具有运用工程基础知识和本专业基本理论知识解决问题的能力,具有系统的工程实践学习经历;完成本课程实验(实训)总软件最少行数:2000实验成绩评价方法:学生每完成一个实验项目,要求独立认真的填写实验报告。实验指导教师将根据学生完成实验的态度和表现,结合填写的实验报告评定实验成绩,成绩的评定按百分制评分。老师根据平时实验的分数之和取平均分,得出综合成绩。实验(实训)内容:实验一操作系
2、统安装及熟练使用(一)实验目的熟悉Windows//Linux操作系统的安装过程与安装方法,并掌握该操作系统所提供的用户接口环境,并为后续实验做好编程环境准备。(二)实验项目内容1、熟悉Windows//Linux操作系统的安装过程与安装方法,并掌握该操作系统所提供的用户接口环境,通过系统提供的用户管理程序、查看系统中的用户情况、进程、线程、内存使用情况等,学会使用它进行监视进程的状况、系统资源的使用情况及用户情况。并为后续实验做好编程环境准备。2、用C语言编写一小段程序,使其可以通过某个系统调用来获得OS提供的某种服务。(三)主要仪器设备一台PC
3、机(四)实验室名称计算机中心实验室(五)实验报告撰写(撰写的格式采用教务处所提供的样本见附件)......实验二编程模拟进程间的同步和互斥(一)实验目的通过实验加强对进程同步和互斥的理解,并掌握进程(线程)的创建和调用方法。学会使用信号量解决资源共享问题。学生可以自己选择在Windows或Linux系统下编写。代码不得少于200行。(二)实验项目内容1.以下为Linux系统下参考程序,请编译、运行并观察程序的输出,并分析实验结果,写出实验报告。#include#include#include
4、#include#include#include#include#defineNUM_PROCS5#defineSEM_ID250#defineFILE_NAME"/tmp/sem_aaa"#defineDELAY4000000voidupdate_file(intsem_set_id,char*file_path,intnumber){structsembufsem_op;FILE*file;//等待信号量的数值变为非负数,此处设为负值,相当于对信号量进行
5、P操作sem_op.sem_num=0;sem_op.sem_op=-1;sem_op.sem_flg=0;semop(sem_set_id,&sem_op,1);//写文件,写入的数值是当前进程的进程号file=fopen(file_path,"w");if(file){//临界区fprintf(file,"%d",number);printf("%d",number);fclose(file);}//发送信号,把信号量的数值加1,此处相当于对信号量进行V操作sem_op.sem_num=0;sem_op.sem_op=1;sem_op.
6、sem_flg=0;semop(sem_set_id,&sem_op,1);}//子进程写文件voiddo_child_loop(intsem_set_id,char*file_name){pid_tpid=getpid();inti,j;for(i=0;i<3;i++){update_file(sem_set_id,file_name,pid);for(j=0;j<4000000;j++);}}intmain(intargc,char**argv){intsem_set_id;//信号量集的IDunionsemunsem_val;//信号量的数值
7、,用于semctl()intchild_pid;inti;intrc;//建立信号量集,ID是250,其中只有一个信号量sem_set_id=semget(SEM_ID,1,IPC_CREAT
8、0600);if(sem_set_id==-1){perror("main:semget");exit(1);}//把第一个信号量的数值设置为1sem_val.val=1;rc=semctl(sem_set_id,0,SETVAL,sem_val);if(rc==-1){perror("main:semctl");exit(1);}//建立一些子进程,使它们
9、可以同时以竞争的方式访问信号量for(i=0;i