实验二 进程管理
1、实验目的
(1)加深对进程概念的理解,明确进程和程序的区别 (2)进一步认识并发进程执行的实质 (3)掌握常用的系统调用命令
(4)学习和掌握进程调度的基本原理和实现方法。 2、实验要求
(1)阅读Linux的sched.h源代码文件,加深对进程管理概念的理解。 (2)阅读Linux的fork.c源代码文件,分析进程的创建过程。 3、实验内容
(1)编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”;子进程分别显示字符“b”和字符“c”。试观察程序执行结果,并分析原因。
(2)修改已编写好的程序,将每个进程输出一个字符改为每个进程输出一句话。试观察程序执行结果,并分析原因。
如果在程序中使用系统调用lockf()来给每个进程加锁,可以实现进程之间的互斥,观察执行结果并分析原因。 (3)
1)编制一段程序,使其实现进程的软中断通信。
要求:使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉键盘上来的中断信号(即按DEL键);当捕捉到中断信号后,父进程用系统调用kill()向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止。
Child Processl1 is killed by Parent! Child Processl2 is killed by Parent!
父进程等待两个子进程终止后,输出下列信息后终止。 Parent Process is Killed!
2) 在上面的程序中增加语句signal(SIGINT,SIG-IGN)和 signal(SIGQUIT,SIG-IGN),观察执行结果,并分析原因。
实验三 存储管理
1、实验目的
26
操作系统的发展使得系统完成了大部分的内存管理工作,对于程序员而言,这些内存管理的过程是完全透明的。因此程序员从不关心系统如何为自己分配内存,而且永远认为系统可以分配给程序所需要的内存。在开发程序时,程序员真正需要做的就是:申请内存、使用内存、释放内存。该实验就是帮助读者更好地理解从程序员的角度应如何使用内存。 2、实验要求
研读Linux系统目录下相关源程序文件,理解源程序的设计思想和编程技巧。 3、实验内容
(1)编写程序:申请内存、使用内存及释放一块内存。 (2)在上述实验的基础上重新分配内存。 (3)使用自动分配内存函数分配内存。
实验四 文件管理
27
1、实验目的
学习和掌握文件控制的基本原理和常用的系统调用。 2、实验要求
研读Linux系统目录下相关源程序文件,理解源程序的设计思想和编程技巧。
3、实验内容 (1)利用用户自定义的缓冲区,使对文件的单字节读/写操作在缓冲区中进行,只有当用户缓冲区空或满时,才调用read/write从(或“向”)文件读、写数据。 (2)设计一交互工具,使用该工具可以查看文件的状态信息;改变文件的模式、访问时间;显示目录文件内容并在其中执行任意的shell命令。
实验五 综合实验
28
1、实验目的
综合所学各章的知识,练习在Linux环境下的综合编程能力。 2、实验内容
编程实现多个用户同时提交打印请求,并按序打印用户要求的文件。 要求:该实例主要包括两大部分
(1)sched守护进程,负责接受用户的打印请求并打印用户文件。 (2)lpp命令,用户用lpp命令提交打印请求。 提示:
第七章 实验指导
29
实验一 熟悉Linux环境
3、实验内容
(1)练习linux常用命令 1)列出文件列表的ls命令
作用:显示当前目录有哪些文件和子目录。不加任何参数 :显示当前目录的内容。 -a 显示所有文件和目录(若无此参数,句点开始的文件和目录不会显示出来) -A 显示所有文件和目录(它比-a 少显示.和..两项)
-F 在特殊文件或目录上加上标示(子目录后加 /,程序文件后加上*) -l 以长格式显示。会显示文件或目录的详细信息。
例:ls ls –a
ls -al //参数的混合使用
ls -l | more //符号|为管道操作,将ls –l的输出作为more的输入
2)切换目录cd命令
cd .. 切换到上一级目录 cd / 切换到根目录 cd ~ 切换到用户目录 “.” 表示当前目录。
cd
3)建立目录的mkdir 命令
mkdir data 在当前目录下建立data子目录 mkdir /data 在根目录下建立子data目录
注意: 用户不能在一个不存在的目录下建立子目录。
4)删除目录的rmdir命令
rmdir 可用来删除空的子目录。 rmdir data
rmdir /data
注意:如果要删除具有文件或子目录的目录,用rm会比较方便。
5)拷贝文件的cp命令
cp data1.txt data2.txt cp data3.txt /tmp/data 关于cp命令的参数。
-i 覆盖相同文件名称前先询问用户。 -v 显示命令的执行过程
-r 递归拷贝,即拷贝时将所有目录一并拷贝。
6)删除文件或目录的rm命令 rm data.txt rm *
参数说明:
30