课 程 实 验 报 告
课程名称: 操作系统原理
专业班级: cs1209 学 号: 姓 名:
指导教师: 报告日期: 2015年1月5日
计算机科学与技术学院
1
1
目录
1 实验一 Linux线程及信号灯..........................................................................1
1.1 实验目的与内容....................................................................................1 1.1.1实验目的..........................................................................................1 1.1.2 实验内容.........................................................................................1 1.2 实验过程................................................................................................1 1.2.1 预备知识.........................................................................................1 1.2.2 实验测试与结果.............................................................................2 1.3 实验总结................................................................................................3 1.4 源代码....................................................................................................4 2 实验二 Linux进程及同步..............................................................................7
2.1 实验目的与内容....................................................................................7 2.1.1 实验目的.........................................................................................7 2.1.2 实验内容.........................................................................................7 2.2 实验过程................................................................................................7 2.2.1 预备知识.........................................................................................7 2.2.2 实验测试与结果.............................................................................8 2.3 实验总结................................................................................................9 2.4 源代码....................................................................................................9 3 实验三 Linux文件目录操作.........................................................................13
3.1 实验目的与内容...................................................................................13 3.1.1 实验目的........................................................................................13 3.1.2 实验内容........................................................................................13 3.2 实验过程...............................................................................................13 3.2.1 预备知识........................................................................................13 3.2.2 实验测试与结果............................................................................14 3.3 实验总结...............................................................................................15 3.4 源代码...................................................................................................15
1
2
实验一 Linux线程及信号灯
1.1 实验目的与内容
1.1.2 实验内容
1、编程模拟实现飞机售票:
创建多个售票线程;
使用公用全局变量保存已售票数量; 创建互斥信号灯;
对售票线程临界区实施P、V操作; 创建一个计算线程与一个输出线程; 创建同步信号灯;
缓冲区用全局公用数组变量;
对计算线程与输出线程实施P、V操作;
1.2 实验过程
1.2.1 预备知识
Linux下的信号灯及其P、V操作:
表1. 1 P、V操作定义
1.1.1实验目的
1、熟悉Linux线程接口。 2、熟悉Linux信号灯编程。
3、了解Linux进程同步与通信的主要机制,并通过信号灯操作实现进程间
的同步与互斥。
2、编程模拟实现双线程单缓冲区的合作
void p(int semid,int semno) { struct sembuf sop; sop.sem_num=semno; sop.sem_op=-1; sop.sem_flg=0; semop(semid,&sop,1); } void v(int semid,int semno) { struct sembuf sop; sop.sem_num=semno; sop.sem_op=1; sop.sem_flg=0; semop(semid,&sop,1); } 第 1 页
1