Linux操作系统实验实验报告材料 联系客服

发布时间 : 星期五 文章Linux操作系统实验实验报告材料更新完毕开始阅读0ff02839031ca300a6c30c22590102020640f242

标准文档

实验3:进程创建

【实验目的和要求】 1. 了解进程的概念及意义;2. 了解子进程和父进程 3. 掌握创建进程的方法。

【实验容】 1. 子进程和父进程的创建; 2.编写附件中的程序实例

【实验步骤】 一 1、打开终端,输入命令 gedit 1_fork.c,在 1_fork.c 文件中输入 1_fork.bmp 中的 代码;

2、输入命令 gcc 1_fork.c -o 1_fork,回车后显示无错误; 3、输入命令: ./1_fork 运行程序。

二、 1、打开终端,输入命令 gedit 2_vfork.c,在 2_vfork.c 文件中输入 2_vfork.bmp 中 的代码; 2、输入命令 gcc 2_vfork.c -o 2_vfork,回车后显示无错误: 3、输入命令: ./2_vfork 运行程序。

从上面可以看到两次的运行结果不一样。我们知道 write 函数是不带缓存的。因为在 fork 之前调用 write,所以其数据写到标准输出一次。但是,标准 I/O 库是带缓存的。如果标准输出连到终端设备,则它是行缓存的, 否则它是全缓存的。 当以交互方式运行该程序时, 只得到 printf 输出的行一次,其原因是标准输出缓存由新行符刷新。但是当将标准输出重新定向到一个文件时,却得到 printf 输出行两次。其原因是,在 fork 之前调用了 printf 一次,当调用 fork 时,该行数据仍在缓存中,然后在父进程数据空间复制到子进程中时,该缓存数据 也被复制到子进程中。 于是那时父、 子进程各自有了带该行容的缓存。 在 exit 之前的第二个 printf 将其数据添加到现存的缓存中。当每个进程终止时,缓存中的容被写到相应文件中。

实用大全

标准文档

实验4进程通信

【实验目的和要求】

1、了解进程通信的概念及方法; 2、了解信号量、管道;

3、掌握出号量、管道和命名管道编程方法。

【实验原理】

匿名管道只能用于具有亲像关系的两进程之间通值。一个进程在由pipe()创建管道后,一般用fork()函数复制一个子进程,然后通过管道实现父子进程间的通信,也可通过fork()函故复制多个说程实现兄始进程之间的通信,管道两端可分刚用指述字

【实验步骤】 1、程序 lucy.c 创建了 FIFO write_fifo 用于向程序 peter.c发送消息; peter.c程序 创建了 FIFO read_fifo 用于向 lucy.c 发送消息;同时, lucy.c 能够通过打开 peter.c创建的 FIFO 来得到的 peter.c发来的消息, peter.c能够通过打开 lucy.c 创建的 FIFO 来得到 lucy.c 发来的消息。因此两者就能互相通信了, 两者必须 在线才能进行通信聊天,这个与 qq 的聊天功能有些类似。 2、将 lucy.c 和 peter.c的代码编写完后, 在一个终端调试即 gcc lucy.c –o lucy,无 错误后运行 ./lucy;在另外一个新终端上调试即 gcc peter.c –o peter,无错误后 运行./peter;开始进行聊天,若想结束聊天,则在一个终端上输入 bye,俩个 终端就会同时关闭。 【实验结果】

实用大全

标准文档

实用大全

标准文档

实验5多线程实现单词统计工具

【实验目的】:利用多线程实现文档单词书的统计

【实验原理】:区分单词原则:凡是一个非字母或数字的字符跟在字母或数字的后面,那么这个字母或数字就是单词的结尾。.

允许线程使用互斥锁来修改临界资源,确保线程间的同步与协作。如果两个线程需要安全地共享-一个公共计数器,需要把公共计数器加锁。线程需要访问称为互斥锁的变量,它可以使线程间很好地合作,避免对于资源的访问冲突。

【实验步骤】:第一步先创建两个待统计的文件1.text,2.text

实用大全