进程
进程(Process)是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。程序只是一组指令的有序集合,它本身没有任何运行的含义,只是一个静态实体。而进程则不同,它是程序在某个数据集上的执行,是一个动态实体。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消,反映了一个程序在一定的数据集上运行的全部动态过程。
进程拥有操作系统分配的资源。这些资源包括内存、文件句柄、socket、设备句柄和windows。进程拥有独立的内存地址空间。除非使用特定的方法,进程不会与其他进程分享资源。进程是操作系统内资源分配的最小单元。
线程
线程可以理解为是进程的一个实体。它是cpu进行任务调度的最小单元。线程从属于进程。同一进程内的所有线程共享所有资源,它本身只拥有一点运行所必须的资源,如stack,和程序计数器,寄存器等信息。线程的切换比进程的切换代价要小很多,因为其不涉及进程上下文的交换。
守护进程
daemon进程,Linux中的后台服务进程。它不与终端进行交互,直到显式地使用kill命令或者系统关闭时才终结。个人理解,其实守互进程就是与其创建者脱离关系的一类进程,被创建之后便开始我行我素,不受影响。