好文档 - 专业文书写作范文服务资料分享网站

操作系统实验报告

天下 分享 时间: 加入收藏 我要投稿 点赞

课程实验报告

课程名称:操作系统

专业班级: 学号: 姓名: 指导教师:

报告日期:

计算机科学与技术学院

目录

实验环境..............................................................................................................03 1 实验一飞机售票系统......................................................................................03

1.1 实验目的.......................................................................................................03 1.2 实验要求.......................................................................................................03 1.3 设计思想.......................................................................................................03 1.4实验结果.......................................................................................................04 1.5程序源代码...................................................................................................05 2 实验二双线程单缓冲区合作...........................................................................08

2.1 实验目的.......................................................................................................08 2.2 实验要求.......................................................................................................08 2.3 设计思想.......................................................................................................08 2.4 实验结果.......................................................................................................08 2.5程序源代码...................................................................................................09 3 实验三生产者与消费者..................................................................................11

3.1 实验目的.......................................................................................................11 3.2 实验要求.......................................................................................................11 3.3 设计思想.......................................................................................................11 3.4 实验结果.......................................................................................................12 3.5程序源代码...................................................................................................13 4 实验四目录查询.............................................................................................18

4.1 实验目的.......................................................................................................18 4.2 实验要求.......................................................................................................18 4.3 设计思想.......................................................................................................18 4.4实验结果.......................................................................................................19 4.5程序源代码...................................................................................................20 5 心得体会..........................................................................................................24 参考文献..............................................................................................................24

实验环境

虚拟机:VMware Workstation 7.1.4 build-385536 操作系统:ubuntu 12.04 LTS

1 实验一飞机售票系统

1.1 实验目的

1)了解并掌握Linux线程及信号灯;

2)了解Linux线程与信号灯使用,包括:Linux线程,Linux信号灯,线程互斥,

线程同步。

1.2 实验要求

1)熟悉Linux线程接口及连接; 2)了解Linux信号灯的编程;

3)编程模拟实现飞机售票,包括:创建多个售票线程,已售票使用公用全局变

量,创建互斥信号灯,对售票线程临界区施加P、V操作。

1.3 设计思想

飞机售票系统需要创建多个线程,对售票线程临界区实现P、V操作。 首先创建一个信号灯集,对0号信号灯mutex初始化,值为1。然后创建5个线程,5个线程共可出售32张票,将该全局变量命名为TicketNum。

当线程开始时,先执行P操作,随后再执行V操作,唤醒其他线程。 为了保证不出现一个线程售完所有票的情况,每次售票完成后,应当休眠一段时间。

程序结构如下所示: main() {

创建信号灯集;

设置互斥/同步信号灯初值; 创建子线程; 同步等待子线程退出; 撤消信号灯集; } 1.4 实验结果

运行结果如图1、图2所示:

图1 运行结果

图2 运行结果

1.5 程序源代码 #include

#include #include #include #include #include

#define THREAD_NUM 5

int SemID = -1; int TicketNum = 32; int SellNum = 0;

union semun{ };

void P(int semid,int semno) { }

void V(int semid,int semno) { }

struct sembuf sop; sop.sem_num = semno;

sop.sem_op = 1; semop(semid,&sop,1); sop.sem_flg = 0; struct sembuf sop; sop.sem_num = semno; sop.sem_op = -1;

sop.sem_flg = 0; semop(semid,&sop,1); int val;

struct semid_ds *buf; unsigned short *array;

操作系统实验报告

课程实验报告课程名称:操作系统专业班级:学号:姓名:指导教师:报告日期:<
推荐度:
点击下载文档文档为doc格式
18i3e5tf9k565jb3urou8mpoj7oc3w00zqt
领取福利

微信扫码领取福利

微信扫码分享