01 进程
linux是如何实现多个进程同时执行的呢?
- linux使用了一种叫做“进程调度”的手段:
首先,为每个进程指派一定的运行时间(这个时间通常很短,短到以毫秒为单位),然后依照某种规则,从众多进程中挑选一个投入运行,其它的进程暂时等待,当正在运行的那个进程时间耗尽,或执行完毕退出,或某种原因暂停,linux会重新进行调度,挑选下一个进程投入运行。
因为每个进程占用的时间片很短,所以就好像多个进程同时运行一样。 - 每个进程在创建时都会被分配一个数据结构,称为进程控制块(Process Control Block),PCB中包含了很多重要信息,供系统调度和进程本身执行使用,其中,最重要的是进程ID,是一个非负的整数,相当于进程的“身份证号码”。
02 进程的分类
- 进程一般分为:交互进程、批处理进程和守护进程
守护进程总是活跃的,一般是后台运行的;守护进程一般是由系统在开机时通过脚本自动激活启动或由超级管理员root来启动的;
由于守护进程是一直运行的,所以它所处的状态是等待处理任务的请求。 - 进程可以有两种存在方式:前台和后台
- 一般来说,服务都是在后台运行的,基本的程序是前台运行的
03 进程的属性
- 进程ID:PID
- 父进程和父进程的ID:PPID
- 启动进程的用户ID:UID、进程所归属的组:GID
- 进程的状态:运行(R),休眠(S),僵尸(Z)
- 进程执行的优先级
- 进程所连接的终端名
- 进程资源占用,例如资源大小(内存,CPU占用量)
04 父进程和子进程
- 父进程和子进程的关系是管理和被管理的关系,当父进程终止时,子进程也随之而终止;
- 但子进程终止,父进程不一定终止;
- 在进程管理中,当我们发现占用资源过多或无法控制的进程时,应该杀死它,以保证系统的稳定运行。