进程是动态的,它是程序执行的过程,正在运行的程序,是程序执行和资源管理的最小单位。每个进程都有独特资源空间,当进程创建时,os会为进程分配4G的进程空间,企鹅每个进程空间都有1G内核空间和3G用户空间。(内核空间资源,用户空间资源)
进程分类:1.交互式进程:(经常使用),可以在前台运行,也可以在后台运行。
2.批处理进程:这类进程不必与用户进行交互,因此通常在后台运行。
3.守护进程:(重点)这类进程一直在后台运行,和任何终端都不关联。通常系统启动时开始执行,系统关闭时才结束。
进程的状态:
1.运行态 2.等待态 3.停止态 4.死亡态 5.僵尸态
进程的函数:
1.fork()

2.vfork()
3.fork()和vfork()的区别
1. fork():子进程拷贝父进程的数据段,代码段。vfork():子进程与父进程共享数据段。
2.fork():父子进程的执行次序不确定。 vfork():保证子进程先运行,在调用exec或_exit之前与父进程数据是共享的,在它调用exec或_exit之后父进程才可能被调度运行。
3.vfork()保证子进程先运行,在它调用exec或_exit之后父进程才可能被调度运行。如果在调用这两个函数之前子进程依赖于父进程的进一步动作,则会导致死锁。当需要改变共享数据段中变量的值,则拷贝父进程。
4.exit()和_exit()

5.wait() 阻塞等待子进程结束回收资源

waitpid() 回收子进程资源

6.exec函数
守护进程
特点:
1.守护进程是Linux中三大进程之一,始终运行在后台,通常系统开启时运行,系统关闭时结束。
2.独立于控制终端(与终端无关)
3.周期性执行某种任务或等待某些发生的事件。
创建守护进程:
1.创建子进程,父进程退出(子进程成为后台程序)
2.设置新的会话
3.设置工作目录
4.重设文件掩码
5.关闭从父进程继承下来的文件描述符
6.周期性执行任务
应用实例
创建一个守护进程将系统时间每隔5秒写入一个文件中
进程作为程序执行和资源管理的最小单位,分为交互式、批处理和守护进程三类。守护进程常驻后台,系统启动时运行,关闭时结束。进程状态包括运行、等待、停止和死亡态。函数如fork、vfork、exit和_wait等用于进程管理。创建守护进程涉及会话设置、工作目录变更和文件描述符关闭等步骤。实例展示了守护进程如何每5秒将系统时间写入文件。
3129

被折叠的 条评论
为什么被折叠?



