linux进程状态
简单版
运行状态(Running)
就绪状态(Ready)
等待状态,又称阻塞状态(Blocked)
创建状态(New)
结束状态(Exit)
详细版
进程的创建
Linux最早产生的进程是启动过程中创建的idle进程,pid号为0,该进程会创建一个内核线程,该线程进行一系列初始化动作后最终会执行/sbin/init文件,执行该文件的结果是运行模式从核心态切换到了用户态,该线程演变成了用户进程init,pid号为1。init进程是一个非常重要的进程,一切用户态进程都是它的后代进程。
在UNIX中,操作系统初始化时所创建的1号进程是所有用户进程的祖先,1号进程为每个从终端登录入系统的用户创建一个终端进程,这些终端进程又会利用“进程创建”系统调用创建子进程,从而形成进程间的层次体系,称为进程树或进程族系。
Linux系统执行新任务的典型方法是通过fork()/exec()函数。通常fork()创建一个新进程,然后新进程通过调用exec系列函数执行真正的任务
进程由以下4方面组成
① 进程包括至少一个可执行程序,含有代码和初始数据,一般在进程创建时说明。注意,可执行程序可以被多个进程共享,换句话说,多个进程可能运行同一个可执行程序。
② 进程包括一个独立的进程用户空间,在进程创建时由操作系统分配。
③ 进程包括系统资源。这是指在进程创建及执行过程中,由操作系统分配给进程的系统资源,包括I/O设备、文件等。
④ 进程包括一个执行栈区,包含运行现场信息,如子程序调用时所压栈帧,系统调用时所压的栈帧等,这是进程运行及进程调度进行处理机切换时所要涉及的数据结构。
pid有什么用
在操作系统中,每个进程都有一个唯一的内部数字标识符,它可以是图3.2中进程控制块的地址值,或者是可以映射出进程控制块位置的某种索引值。标识符是非常有用的,操作系统控制的其他表格中可以用进程标识符来定位进程控制块。例如,文件访问的有关表格中可以存入进程标识符,说明该文件已被哪几个进程打开;当进程相互通信时,通过进程标识符说明要交换信息的对方进程;当进程创建子进程时,用进程标识符来指明父进程或子进程。这里的进程标识符是一个数字式的系统内码,通过它可以建立其他表格与进程控制块之间的联系。
操作系统进程通信实例
1.手机微信分享,比如网易云音乐分享到微信朋友圈
网易云音乐 => 微信朋友圈
2.apple store 通过浏览器打开
谷歌浏览器 => apple Store
3.uni-app 打开小程序
HBuilderX => 微信开发者工具
4. selenium 调用Google浏览器
使用selenium,driver做网页测试
5.AndPods调用蓝牙
6.h5调用微信支付
js => 微信app