第一范文网 - 专业文章范例文档资料分享平台

华科操作系统实验报告

来源:用户分享 时间:2026/9/2 8:47:26 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

课 程 实 验 报 告

课程名称: 操 作 系 统 原 理

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

计算机科学与技术学院

目录

目录 .................................................................................................................................................. 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文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9krtd9r2ar0flug9bazv_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top