linux并发程序设计 实训小结,急求!!!!字数500~600

说白了,这个实验的核心是让你掌握Linux环境下进程并发和管道程序的设计与实现。
其实很简单,我们主要关注三个关键点。

先说最重要的,第一个是调试并运行3 .1 0的并发程序设计实例。
去年我们跑的那个项目,大概3 000量级,通过pipeline.c这个文件调用child1 .c和father1 .c两个程序,father1 .c负责写入管理,然后child1 .c通过管道读取,所以输出结果是这样的。

另外一点,你还需要编写一个并发程序,父进程打印“TheParentisrunning”,子进程打印“TheChildisrunning”。
这个操作其实很简单,只需要用到fork()和wait()函数。
我一开始也以为这会有点复杂,后来发现不对,关键在于理解父子进程的关系。

还有个细节挺关键的,就是编写一个管道应用程序。
父进程通过管道发送字符串“putthestringintothepipe.”给子进程,子进程接收并打印这条信息。
这个实验需要用到pipe()函数创建管道,并通过fork()来创建子进程。
等等,还有个事,记得检查管道的读写操作是否正确,避免数据丢失。

最后,记得将实验报告上传到FTPSERVER上自己的作业目录。
这个点很多人没注意,但我觉得值得试试,这样既可以巩固所学,也能提高文件管理的技能。

操作系统管理Linux 系统进程实验报告

好嘞,咱们聊聊进程这事儿哈。

你说的很对啊,像Windows上那个QQ图标,我们叫它QQ程序,对吧?这玩意儿就是个静态的代码文件,装在那儿等着用。
但你要是双击打开它,让它干活了,这时候它在任务管理器里就变成一个"QQ进程"了。
简单说,运行中的程序就是进程。

这进程可不是啥都能干,系统得给它安排好地方干活,这就是分配内存。
得告诉系统这个进程谁啊,能干啥,不能干啥,这就是身份和权限。
比如QQ进程不能随便看你的私人文件对吧?这就是权限控制。

而且进程这东西啊,它不是一成不变的,会一直变化状态。
比如刚打开是"运行中",干完了是"已结束",卡住了可能是"无响应"。
系统得随时知道它咋样了,这就是进程状态。
还有,一个进程里面可能有好几个小任务在同时跑,这些小任务叫线程。

再细说,进程有俩基本类型: 1 . 静态进程:就是你手机里那些App的安装包,或者电脑上那些系统自带的小工具,比如/bin/ls(这个是Linux系统里列出文件那个命令),/usr/sbin/sshd(这个是服务器上监听端口那个服务),这些都是编译好的二进制文件,装在那儿一直存在的。
2 . 动态进程:就是你运行App的时候,比如打开微信,系统会把这个静态的微信App代码读出来,放到内存里跑起来,这就是动态进程。
它有开始,有结束,是个有生命周期的。

程序和进程的区别这事儿,你总结得也挺好:
程序:就是个静态的代码和数据的集合,像/bin/ls、/bin/cp这些文件,它们可以一直存在硬盘上。

进程:是程序在内存里跑起来的时候那个状态,是个动态的东西。
它有生命周期,程序结束了,对应的进程也就没了。

进程的生命周期,简单说就是从"刚被创建"到"彻底消失"这整个过程。
期间它会经历各种状态变化,比如新建、就绪、运行、阻塞、终止等等。

进程的状态关系,这个挺有意思的: 1 . 爸爸进程(比如你电脑里的某个服务)需要干活了,可能会用fork这个命令,分出一个小弟(子进程)来帮忙。
这时候子进程一开始挺像爸爸的,很多设置都一样,但慢慢会干自己的活儿。
2 . 爸爸进程干自己的事儿,可能会让小弟进程先等着。
这就是父进程等待。
3 . 如果爸爸进程突然挂了(退出),但小弟进程还没干完事儿,也没跟着退出,那这个小弟进程就成僵尸进程了。
它还占着PID(进程ID),但没爹管了,系统一般过会儿会把它干掉,不然资源就浪费了。
4 . 每个进程都有自己的PID(Process ID),就是它在系统里的唯一身份证号。
子进程呢,它的PPID(Parent Process ID)就是它爸爸的PID。
这样就能查到谁生谁,树状结构很清晰。

大概就是这些吧,反正进程就是运行中的程序,得系统给它资源、权限,还会不断变化状态,有生命周期,还有父子关系。