操作系统实验题目及实验报告要求.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《操作系统实验题目及实验报告要求.doc》由会员分享,可在线阅读,更多相关《操作系统实验题目及实验报告要求.doc(77页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实 验 报 告实验课程: 操作系统实验 学生姓名: 王桥 学 号: 6100412024 专业班级: 计科123班 2021年 6月3 日目 录一、 实验一 1二、 实验二 7三、 实验三 21四、 实验四 28五、 实验五 33南昌大学实验报告 -1操作系统安装与其接口环境学生姓名: 王桥 学 号: 6100412024 专业班级: 计科123班 实验类型: 验证 综合 设计 创新 实验日期: 实验成绩: 一、实验目的熟悉Windows/Linux操作系统的安装过程与安装方法,并掌握该操作系统所提供的用户接口环境,并为后续实验做好编程环境准备。二、实验内容1、熟悉Windows/Linux操
2、作系统的安装过程与安装方法,并掌握该操作系统所提供的用户接口环境,通过系统提供的用户管理程序、查看系统中的用户情况、进程、线程、内存使用情况等,学会使用它进展监视进程的状况、系统资源的使用情况与用户情况。并为后续实验做好编程环境准备。2、用C语言编写一小段程序,使其可以通过某个系统调用来获得OS提供的某种效劳。三、实验要求1 了解所安装的操作系统对软硬件资源的具体要求;2 机器最低硬件配置要求;3 操作系统所提供的用户接口环境的熟悉;4 了解主要BIOS CMOS参数的含义与其设置方法;5 掌握程序编写中系统调用的方法。四、主要实验步骤1、选择语言为中文:2选择第一项“试用 Ubuntu 而不
3、改变计算机中的任何内容,进入 live 桌面后点击“安装图标。1选择语言,可以根据你自己的喜好选择,当然是选择中文(简体)了2选择时区,默认上海就可以3选择键盘布局,一般默认U.S.A 就可以4准备分区,这是安装过程中最重要的一步。选择手动。5准备分区,这是安装过程中最重要的一步。6填写用户信息。7文件迁移向导,点击下一页。8准备安装。 9安装完成,重新启动。10界面如下南昌大学实验报告 -2编程模拟进程间的同步和互斥学生姓名: 王桥 学 号: 6100412024 专业班级: 计科123 实验类型: 验证 综合 设计 创新 实验日期: 实验成绩: 一、实验目的通过实验加强对进程同步和互斥的理
4、解,并掌握进程线程的创立和调用方法。学会使用信号量解决资源共享问题。学生可以自己选择在Windows或Linux系统下编写。二、实验内容1以下为Linux系统下参考程序,请编译、运行并观察程序的输出,并分析实验结果,写出实验报告。#include#include#include#include#include#include#include#define NUM_PROCS 5#define SEM_ID 250#define FILE_NAME /tmp/sem_aaa#define DELAY 4000000void update_file(int sem_set_id, char *fi
5、le_path, int number)struct sembuf sem_op;FILE *file;/等待信号量的数值变为非负数,此处设为负值,相当于对信号量进展P操作sem_op.sem_num=0;sem_op.sem_op=-1;sem_op.sem_flg=0;semop(sem_set_id,&sem_op,1); /*操作一组信号sem_set_id是进程的标识符,sem_op是构造指针。sem_op:如果其值为正数,该值会加到现有的信号内含值中。通常用于释放所控资源的使用权;如果sem_op的值为负数,而其绝对值又大于信号的现值,操作将会阻塞,直到信号值大于或等于sem_op
6、的绝对值。通常用于获取资源的使用权;如果sem_op的值为0,那么操作将暂时阻塞,直到信号的值变为0。*/写文件,写入的数值是当前进程的进程号file=fopen(file_path,w);if(file)/临界区fprintf(file,%dn,number);printf(%dn,number);fclose(file);/发送信号,把信号量的数值加1,此处相当于对信号量进展V操作sem_op.sem_num=0;sem_op.sem_op=1;sem_op.sem_flg=0;semop(sem_set_id,&sem_op,1);/子进程写文件void do_child_loop(in
7、t sem_set_id,char *file_name)pid_t pid=getpid();int i,j;for(i=0;i3;i+)update_file(sem_set_id,file_name,pid);for(j=0;j4000000;j+); int main(int argc,char *argv)int sem_set_id; /信号量集的IDunion semun sem_val; /信号量的数值,用于semctl()int child_pid;int i;int rc;/ 建立信号量集,ID是250,其中只有一个信号量sem_set_id=semget(SEM_ID,1
8、,IPC_CREAT|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);/建立一些子进程,使它们可以同时以竞争的方式访问信号量for(i=0;iNUM_PROCS;i+)child_pid=fork();switch(child_pid)case -1: perror(fork);case 0: /子进程do_child_loop(s
9、em_set_id,FILE_NAME);exit(0);default: /父进程接着运行break;/等待子进程完毕for(i=0;iNUM_PROCS;i+)int child_status;wait(&child_status);printf(main:were donen);fflush(stdout);return 0;gcco编译、链接程序./1执行程序2模拟PV操作同步机构,且用PV操作解决生产者消费者问题。模拟PV操作同步机构,且用PV操作解决生产者消费者问题。提示:(1) PV操作同步机构,由P操作原语和V操作原语组成,它们的定义如下:P操作原语P(s):将信号量s减去1,
10、假设结果小于0,那么执行原语的进程被置成等待信号量s的状态。V操作原语V(s):将信号量s加1,假设结果不大于0,那么释放一个等待信号量s的进程。这两条原语是如下的两个过程:procedure p (var s: semaphore);begin s:=s-1;if s0 then W(s)end pprocedure v (var s: semaphore);begin s: =s+1;if sPC完毕保护现场,PC=当前进程PCB的断点有就绪进程?否是图4-5处理器调度程序流程P(s)GOTO空操作PutGETproduceconsumeV(s)开场j:=PC按j转向各模拟指令对应的过程现
11、行进程为生产者?否是j:=SAij:=PAiPC:=i+1置现行进程为就绪态返回生产者运行完毕?置生产者进程为完成态是否图 4-6 模拟处理器指令执行开场SS+1将调用V(s)过程的进程置为就绪找一个等待s信号量的进程置为就绪态S0返回否是开场SS-1将调用P(s)过程的进程置为就绪将调用P(s)过程的进程置为等待信号量s的状态S0返回否是1模拟PS 2模拟VS图 4-7 模拟PV操作的执行三、实验要求1、 linux操作系统2、 Windows操作系统四、主要实验步骤linux操作系统下的操作步骤: gedit semaphore.c (编辑程序)gcc o semaphore semaph
12、ore.c 编译、链接程序./semaphore执行程序生产者和消费者的代码:#include const unsigned short SIZE_OF_BUFFER = 5; /缓冲区长度unsigned short ProductID = 0; /产品号unsigned short ConsumeID = 0; /将被消耗的产品号unsigned short in = 0; /产品进缓冲区时的缓冲区下标unsigned short out = 0; /产品出缓冲区时的缓冲区下标int g_bufferSIZE_OF_BUFFER; /缓冲区是个循环队列bool g_continue = t
13、rue; /控制程序完毕HANDLE g_hMutex; /用于线程间的互斥HANDLE g_hFullSemaphore; /当缓冲区满时迫使生产者等待HANDLE g_hEmptySemaphore; /当缓冲区空时迫使消费者等待DWORD WINAPI Producer(LPVOID); /生产者线程DWORD WINAPI Consumer(LPVOID); /消费者线程int main() /创立各个互斥信号 g_hMutex = CreateMutex(NULL,FALSE,NULL); g_hFullSemaphore = CreateSemaphore(NULL,SIZE_OF
14、_BUFFER-1,SIZE_OF_BUFFER-1,NULL); g_hEmptySemaphore = CreateSemaphore(NULL,0,SIZE_OF_BUFFER-1,NULL); /调整下面的数值,可以发现,当生产者个数多于消费者个数时, /生产速度快,生产者经常等待消费者;反之,消费者经常等待 const unsigned short PRODUCERS_COUNT = 3; /生产者的个数 const unsigned short CONSUMERS_COUNT = 1; /消费者的个数 /总的线程数 const unsigned short THREADS_COUN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验 题目 报告 要求
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内