预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Linux操作系统实验实 验报告 Documentnumber:NOCG-YUNOO-BUYTT-UU986-1986UT 实验1:安装Linux系统 【实验目的和要求】:安装Linux系统,掌握操作系统的系统配置,建立应用 环境的过程。 【实验内容】: 1、首先在windows系统中安装虚拟机。在网上找到VMwareWorksttionPro 版本,确定安装目录。一直下一步,不需要太多的说明。 2、 图为安装完成后的界面。 3、然后在阿里巴巴开源镜像网站下载centos系统镜像,然后虚拟机创建新 的虚拟机, 进行一些简单的虚拟机设置,设置了网络链接nat模式等等。 安装完成后的界面 实验2:Linux下c语言开发 【实验目的】:学会和掌握用c语言开发一个应用程序的全过程,包括,编 译,调试等等。 【实验步骤】:首先在系统中查看是否已经安装有gcc,输入查看命令发现没 有,于是需要安装gcc。在centos系统中可以使用比较简便的yum命令。在之 前已经配置好了yum源。直接输入yuminstallgcc。回车自动安装程序和需要的 依赖包。 因为虚拟机中和电脑很多地方切换使用不方便,所以安装了xshell软件。图为 xshell中的截图。 安装 完毕。然后使用vi或者vim编写 运行,在屏幕上打印出hello,world。 实验3:进程创建 【实验目的和要求】1.了解进程的概念及意义;2.了解子进程和父进程 3.掌握创建进程的方法。 【实验内容】1.子进程和父进程的创建; 2.编写附件中的程序实例 【实验步骤】一1、打开终端,输入命令,在文件中输入中的代码; 2、输入命令,回车后显示无错误; 3、输入命令:./1_fork运行程序。 二、1、打开终端,输入命令,在文件中输入中的代码; 2、输入命令,回车后显示无错误:3、输入命令:./2_vfork运行程序。 从上面可以看到两次的运行结果不一样。我们知道write函数是不带缓存的。因 为在fork之前调用write,所以其数据写到标准输出一次。但是,标准I/O库是 带缓存的。如果标准输出连到终端设备,则它是行缓存的,否则它是全缓存 的。当以交互方式运行该程序时,只得到printf输出的行一次,其原因是标准 输出缓存由新行符刷新。但是当将标准输出重新定向到一个文件时,却得到 printf输出行两次。其原因是,在fork之前调用了printf一次,当调用fork时, 该行数据仍在缓存中,然后在父进程数据空间复制到子进程中时,该缓存数据 也被复制到子进程中。于是那时父、子进程各自有了带该行内容的缓存。在 exit之前的第二个printf将其数据添加到现存的缓存中。当每个进程终止时,缓 存中的内容被写到相应文件中。 实验4进程通信 【实验目的和要求】 1、了解进程通信的概念及方法; 2、了解信号量、管道; 3、掌握出号量、管道和命名管道编程方法。 【实验原理】 匿名管道只能用于具有亲像关系的两进程之间通值。一个进程在由pipe()创 建管道后,一般用fork()函数复制一个子进程,然后通过管道实现父子进程 间的通信,也可通过fork()函故复制多个说程实现兄始进程之间的通信,管 道两端可分刚用指述字 【实验步骤】1、程序创建了FIFOwrite_fifo用于向程序发送消息;程序创建了 FIFOread_fifo用于向发送消息;同时,能够通过打开创建的FIFO来得到的发 来的消息,能够通过打开创建的FIFO来得到发来的消息。因此两者就能互相 通信了,两者必须在线才能进行通信聊天,这个与qq的聊天功能有些类似。 2、将和的代码编写完后,在一个终端调试即–olucy,无错误后运行./lucy;在 另外一个新终端上调试即–opeter,无错误后运行./peter;开始进行聊天,若想 结束聊天,则在一个终端上输入bye,俩个终端就会同时关闭。 【实验结果】 实验5多线程实现单词统计工具 【实验目的】:利用多线程实现文档单词书的统计 【实验原理】:区分单词原则:凡是一个非字母或数字的字符跟在字母或数字的 后面,那么这个字母或数字就是单词的结尾。. 允许线程使用互斥锁来修改临界资源,确保线程间的同步与协作。如果两个线 程需要安全地共享-一个公共计数器,需要把公共计数器加锁。线程需要访问称 为互斥锁的变量,它可以使线程间很好地合作,避免对于资源的访问冲突。 【实验步骤】:第一步先创建两个待统计的文件, 第二步创建一个.c文件里面敲多线程创建单词统计工具代码 这里面包含了这一个头文件,因此再用gcc编译的时候与以往的有所不同,需 要改为gcc-o<目的文件名> <原文件名>-lpthread 【运行结果】 实验6:搭建