运行中的程序,是将程序脚本放入内核执行。
进程创建
内核会首先创建Init进程,再由Init进程管理其他进程。进程都是由其父进程创建的。
进程优先级
0-139:
1-99 实时优先级 数字越大 优先级越高
100-139 静态优先级 数字越小 优先级越高
nice值:-20~19 算是微调自己的优先级,但是优先级只能调低,不能调高。
虚拟内存
使用Page frame实现,page frame就是分页。将不连续的物理内存(物理地址空间)以虚拟(线性地址)的方式提供给进程使用。每个分页默认是4K。
IPC
进程间通信, Inter process Communication
同一主机上的通信:1、signal 2、shm(share memory) 3、semerphor(类似于旗语,协议语言)
不同主机上的通信:1、RPC(remote procecure call 远程过程调用) 2、socket(套接字,远程过程调用也基于套接字)
Linux内核的多任务是抢占式多任务
进程类型
1、守护进程 daemon 一般由内核启动的进程
2、前台进程 用户通过终端启动的进程
注意:有些守护进程可以通过终端启动
进程状态
1、运行状态
2、就绪状态
3、睡眠状态
可中断:interruptable(CPU 时间已经耗尽)
不可中断:uninterruptable(进程的数据没有从磁盘调入到内存中完毕,进程就处于不可中断状态,唤醒也没用,数据不完整)
4、停止状态 暂停于内存中,但不会被调度。除非手动启动
5、僵死状态 zombie只能通过父进程处理。出现这种状态的一个情况就是子进程在运行时父进程挂了。
进程加载数据
进程请求内核从磁盘读入数据,那么内核先要将磁盘数据读入内核内存,再从内核内存复制到进程内存中。
原文:http://blog.51cto.com/yueyue207/2103295