华科操作系统实验报告.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
华科操作系统实验报告 本实验报告是关于操作系统原理的课程实验报告,分为三部分:实验一:线程的同步,实验二:誊抄实验的进程实现,实验三:Linux 文件目录操作。 实验一:线程的同步 实验目的: 1. 掌握 Linux 系统用户界面中键盘命令的使用。 2. 学会一种 Linux 下的编程环境。 3. 掌握 Linux 下进(线)程的概念。 4. 了解 Linux 进程同步与通信的主要机制,并通过信号灯操作实现进程间的同步与互斥。 实验内容: 1. 程序要求两个线程,共享公共变量 a,线程 1 负责计算(+1),线程 2 负责打印。 2. 运行环境软件配置:ubuntu-14.10,硬件:PC。 源程序: ```c #include <stdio.h> #include <stdlib.h> #include <pthread.h> int a = 0; void* thread1(void* arg) { for (int i = 0; i < 10; i++) { a++; printf("Thread 1: a = %d\n", a); usleep(100000); } return NULL; } void* thread2(void* arg) { for (int i = 0; i < 10; i++) { printf("Thread 2: a = %d\n", a); usleep(100000); } return NULL; } int main() { pthread_t t1, t2; pthread_create(&t1, NULL, thread1, NULL); pthread_create(&t2, NULL, thread2, NULL); pthread_join(t1, NULL); pthread_join(t2, NULL); return 0; } ``` 实验心得: 通过本实验,我们了解到线程的同步对操作系统的重要性,通过使用信号灯机制,实现了进程间的同步与互斥。我们也了解到 Linux 下的编程环境和进程的概念。 实验二:誊抄实验的进程实现 实验目的: 1. 了解进程的概念和实现。 2. 掌握进程的创建、同步和通信机制。 实验内容: 1. 实现一个进程,每个进程都可以独立地执行一些任务。 2. 使用 system 调用来实现进程的创建和控制。 源程序: ```c #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/wait.h> int main() { pid_t pid; pid = fork(); if (pid < 0) { perror("fork"); exit(1); } else if (pid == 0) { printf("Child process: pid = %d\n", getpid()); execlp("ls", "ls", "-l", NULL); } else { wait(NULL); printf("Parent process: pid = %d\n", getpid()); } return 0; } ``` 实验心得: 通过本实验,我们了解到进程的概念和实现,掌握了进程的创建、同步和通信机制。 实验三:Linux 文件目录操作 实验目的: 1. 了解 Linux 文件系统的结构和组织方式。 2. 掌握 Linux 文件和目录的操作命令。 实验内容: 1. 使用 mkdir 命令创建目录。 2. 使用 touch 命令创建文件。 3. 使用 ls 命令查看文件和目录。 4. 使用 rm 命令删除文件和目录。 实验心得: 通过本实验,我们了解到 Linux 文件系统的结构和组织方式,并掌握了文件和目录的操作命令。 本实验报告涵盖了操作系统原理的多个方面,包括线程的同步、进程的实现和文件目录操作。通过这三部分实验,我们掌握了操作系统的基础知识和技术。
剩余13页未读,继续阅读
- 粉丝: 71
- 资源: 5万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 5G模组升级刷模块救砖以及5G模组资料路由器固件
- C183579-123578-c1235789.jpg
- Qt5.14 绘画板 Qt Creator C++项目
- python实现Excel表格合并
- Java实现读取Excel批量发送邮件.zip
- 【java毕业设计】商城后台管理系统源码(springboot+vue+mysql+说明文档).zip
- 【java毕业设计】开发停车位管理系统(调用百度地图API)源码(springboot+vue+mysql+说明文档).zip
- 星耀软件库(升级版).apk.1
- 基于Django后端和Vue前端的多语言购物车项目设计源码
- 基于Python与Vue的浮光在线教育平台源码设计