-
多任务 VS 单任务
-
进程的特点:每个进程拥有独立的虚拟地址空间
-
进程的pid:每个进程创建都有自己的id号
-
进程控制块(PCB):每个进程都有自己的控制块(struct task_,struct)(pid/ppid/fd/parent/child/mem)
-
如何创建进程?
对于开发人员,只需要知道如何创建进程,至于进程的调度由OS决定 -
fork创建进程:
(1)给子进程分配空间;
(2)拷贝父进程的数据及代码到子进程
(3)给父进程返回大于0(子进程pid,给子进程返回==0) -
vfork创建进程:
执行顺序:子进程执行结束之后,父进程执行
空间:子进程共享父进程的内存空间 -
进程退出:exit、_exit
exit:库函数,里面封装
_exit:系统调用接口API
_exit函数退出进程,不会使进程刷新缓冲区
exit函数在调用_exit之后,会刷新缓冲区 -
system:在进程中运行一个程序
system执行的进程不会覆盖原有进程的代码,也就是说不会产生新的进程,pid不会发生改变 -
exec函数簇
覆盖原有进程的代码段,创建了新的进程,pid发生变换。
fork、vfork、system和exit
最新推荐文章于 2024-01-23 14:06:15 发布