操作系统实验报告
四 川 大 学 计 算 机 学 院、软 件 学 院
实 验 报 告
操作系统实验报告
Lab1---利用 ps 命令与 TOP 命令完成进程创建四类事件和三类终止事件的演示: (1) 作业调度: a. 在执行程序前运行 top 命令(图 1.1.a) b. 编写一个循环次数较大的程序 while1000(图 1.1.b),然后执行。 c. 观察 top 显示的进程运行状态,查看显示的条目中有没有名为 while1000 的进程,记录下 pid。(图 1.1.c) d. 手动杀死 while1000 进程, 发现 top 结果中的 while1000 消失了。 (图 1.1.d) (2) 用户登录: a. 在图形界面中执行 top 命令,将 top 结果截图保存。(图 1.2.a) b. 切换到字符界面,输入用户名密码,再次执行 top 命令,将结果截图 保存。(图 1.2.b)实验 内容 (算 法、 程 序、 步骤 和方 法)
(3) 系统调用: a. 执行 ps–e 。截图。(图 1.3.a) b. 编写一个包括系统调用的程序 read.c(图 1.3.b) c. 编译执行 read.c,并执行 ps–e 命令,截图。(图 1.3.c) (4) 用户程序调用: a. 执行 top 命令。(图 1.4.a) b. 编写程序 fork.c, 通过 fork()函数手动创建新进程,记录下 pid。 (图 1.4.b,c,d) c. 在 top 产生的结果中查看是否出现了 pid 的项(图 1.4.e)
Lab2 ---在用户程序中利用 fork 命令创建一个进程,在父进程中打印父进程的 PID 号,在子进程中打印子进程的 PID 号: (1)编写程序,运用 fork()函数创建子进程,getpid()函数获取进程的 pid,存 为 process0.c(图 2.1) (2)编译执行 process0.c,将运行结果截图。(图 2.2) Lab3 ---利用 fork 和 execv 函数族创建一个多进程程序,其中: 父进程创建子进程后,一直等待;
操作系统实验报告
子进程将当前运行的进程结果存放到 result.txt 中; 父进程在子进程完成后,读取 result.txt 文件,并将 结果打印输出到屏幕。 (1)编写程序,使用 fork()函数创建子进程,将命令“ping –c 4 127.0.0.1 > result.txt”(ping 的次数为 4,结果重定向到 result.txt 文件中)存在字符 串数组 argv 中,并作为 execv()函数的参数。父进程中使用 wait()函数,并读 取 result.txt.中的内容,输出。存为 fork.c(图 3.1) (2)对 fork.c 进行编译运行,输出结果。(图 3.2)
操作系统实验报告
Lab1---利用 ps 命令与 TOP 命令完成进程创建四类事件和三类终止事件的演示: (1)作业调度: 1.1.a: 执行 top 命令:
实验 结果 的截
图
1.1.b: while1000.c 文件的截图:
操作系统实验报告
1.1.c: while1000 出现在了进程列表中:
1.1.d: 杀死 while1000 进程后,执行 top 命令:
操作系统实验报告
(2)用户登录: 1.2.a: 在图形界面中执行 top 命令,截图:
操作系统实验报告
1.2.b: 切换到字符界面,输入用户名密码登录,再次 top,截图:
操作系统实验报告
(3)系统调用: 1.3.a: 执行命令 ps –e,截图:
操作系统实验报告
1.3.b: 文件 read.c,程序中包括文件的读写(将产生系统调用):
操作系统实验报告
1.3.c: 创建文件 1.txt,输入一些字符串用于 read.c 中的读取:
操作系统实验报告
1.3.d: 编译执行 read.c,因为包含死循环,程序连续运行,运行结果截图:
操作系统实验报告
1.3.e: 执行 ps –e 命令,截图:
操作系统实验报告
(4)用户程序调用: 1.4.a: 文件 fork.c,包含一个子进程的创建,父子进程中都包含一个死循环, 连续打印进程信息:
操作系统实验报告
1.4.b: 运行程序,执行 top 命令,截图:
操作系统实验报告
1.4.c: 杀死程序 fork,截图:
操作系统实验报告
Lab2---在用户程序中利用 fork 命令创建一个进程: 2.1: 文件 process0.c, 包含一个子进程的创建, 父子进程分别打印自己的 pid: