进程的概念
进程:进行中的程序,从操作系统的角度来说,操作系统通过pcb来控制一个进程的运行,这个pcb也叫做进程描述符,对操作系统而言,一个pcb就是一个进程(Linux中暑task_struct)
pcb(task_struct)
一个pcb中包括
- 标识符 每个进程都有唯一的标识符pid
- 状态 进程状态 s r z x t d
- 优先级
- 程序计数器 程序中即将被执行的吓一跳指令的地址
- 内存指针 程序代码和进程相关数据的指针,和其他进程共享的内存块指针
- 上下文数据:进程执行是处理器的寄存器中的数据
- IO状态信息
- 记账信息 处理器时间总和等
查看进程
进程的信息可以通过 /proc 系统文件夹查看,可以同过
ps -ef 或者 ps -aux查看
父进程和子进程
子进程是父进程的复制品,通过fork和vfork函数可以创建子进程,其过程相当于把父进程的pcb复制了一遍,子进程和父进程有相同的pcb(包括内存指针,上下文数据,程序计数器等)和父进程有一样的代码,一样的运算位置。注意:父子进程代码一样,数据独享
子进程的作用:
- 分摊压力,cpu资源足够时可以父子进程同时处理数据 提高效率
- 让子进程完成其他任务 (背锅 避免父进程崩溃)