华科操作系统实验报告

loading 分享 2026-8-1 下载文档

课 程 实 验 报 告

课程名称: 操 作 系 统 原 理

专业班级: 学 号: 姓 名: 指导教师: 报告日期:

计算机科学与技术学院

目录

目录 .................................................................................................................................................. 2 实验一:线程的同步 ....................................................................................................................... 3

一、实验目的 ........................................................................................................................... 3 二、实验内容 ........................................................................................................................... 3 三、实验心得 ........................................................................................................................... 6 实验二:誊抄实验的进程实现 ....................................................................................................... 7

一、实验目的 ........................................................................................................................... 7 二、实验内容 ........................................................................................................................... 7 三、实验心得 ......................................................................................................................... 10 实验三:Linux文件目录操作 ...................................................................................................... 12

一、实验目的 ......................................................................................................................... 12 二、实验内容 ......................................................................................................................... 12 三、实验心得 ......................................................................................................................... 14

实验一:线程的同步

一、实验目的

1、掌握Linux系统用户界面中键盘命令的使用。 2、学会一种Linux下的编程环境。 3、掌握Linux下进(线)程的概念。

4、了解Linux进程同步与通信的主要机制,并通过信号灯操作实现进程间的同步与互斥。

二、实验内容

1、程序要求

两个线程,共享公共变量a 线程1负责计算(+1) 线程2负责打印 2、运行环境

软件配置(含操作系统版本):ubuntu - 14.10 硬件:PC 3、源程序

源程序:

#include #include #include #include #include #include

int semid; int a=0;

typedef union senum {

int val;

struct semid_ds *buf; unsigned short *array; struct seminfo *_buf; }SEM_CTL_UN;

void P(int semid,int index) {

struct sembuf sem; sem.sem_num = index; sem.sem_op = -1;//P sem.sem_flg = 0;//biaoji semop(semid,&sem,1); }

void V(int semid,int index) {

struct sembuf sem; sem.sem_num = index; sem.sem_op = 1; sem.sem_flg = 0;

semop(semid,&sem,1); }

void* thread1(void *arg) {

int i=0;

for(i;i<8;i++) { P(semid,0); printf(\ a=a+1; printf(\ V(semid,1); } }

void* thread2(void *arg) {

int i=0;

for(i;i<8;i++) { P(semid,1); printf(\ printf(\ V(semid,0); } }

int main() {

pthread_t id1,id2;

int ret1,ret2; key_t key;

SEM_CTL_UN semctlarg1; SEM_CTL_UN semctlarg2;

key=1;

semid=semget(key,2,IPC_CREAT|0666);//创建

semctlarg1.val=1; semctlarg2.val=0;

semctl(semid,0,SETVAL,semctlarg1);//初始化 semctl(semid,1,SETVAL,semctlarg2);

ret1=pthread_create(&id1,NULL,thread1,NULL); ret2=pthread_create(&id2,NULL,thread2,NULL);

pthread_join(id1,NULL); pthread_join(id2,NULL); }

4、实验结果

实验结果截图如下:


华科操作系统实验报告.doc 将本文的Word文档下载到电脑
搜索更多关于: 华科操作系统实验报告 的文档
相关推荐
相关阅读