**一.实验目的及实验环境** **(一) 实验环境** Linux 操作系统 **(二)实验目的** 实验1 掌握Linux基本命令 和开发环境 1. 掌握常用的Linux shell命令; 2. 掌握编辑环境VIM; 3. 掌握编译环境gcc及跟踪调试工具gdb。 实验2 进程 通过观察、分析实验现象,深入理解进程及进程在调度执行和内存空间等方面的特点,掌握在POSIX 规范中fork和kill系统调用的功能和使用。 实验3 线程 通过观察、分析实验现象,深入理解线程及线程在调度执行和内存空间 等方面的特点,并掌握线程与进程的区别。掌握POSIX 规范中 pthread_create() 函数的功能和使用方法。 实验4 互斥 通过观察、分析实验现象,深入理解理解互斥锁的原理及特点掌握在POSIX 规范中的互斥函数的功能及使用方法。
二.实验内容
实验2
1.你最初认为运行结果会怎么样?
2.实际的结果什么样?有什么特点?试对产生该现象的原因进行分析。
3.proc_number这个全局变量在各个子进程里的值相同吗?为什么?
4.kill 命令在程序中使用了几次?每次的作用是什么?执行后的现象是什么?
5.使用kill 命令可以在进程的外部杀死进程。进程怎样能主动退出?这两种退出方式哪种更好一些?
实验3
1. 你最初认为前三列数会相等吗?最后一列斜杠两边的数字是相等,还是大于或者小于关系?
2.最后的结果如你所料吗?有什么特点?对原因进行分析。
3.thread 的CPU 占用率是多少?为什么会这样?
4. thread_worker()内是死循环,它是怎么退出的?你认为这样退出好吗?
5. 实验4
1.你预想deadlock.c 的运行结果会如何?
2.deadlock.c 的实际运行结果如何?多次运行每次的现象都一样吗?为什么会这样?
三.方案设计
实验2
1.你最初认为运行结果会怎么样?
2.实际的结果什么样?有什么特点?试对产生该现象的原因进行分析。
会创建10个进程,进程号