---进程管理---
程序怎么执行?
1,将程序从硬盘复制到kernel中
2,将程序复制到一个独立的内存空间
内存空间有什么组成?
用户内存空间 + kernel
什么是进程?
程序本身 + 内存空间 + 数据 + 线程 等程序执行需要的各种资源
线程(thread):进程执行的最小单位
分类:
前台任务:一次执行 ls
后台任务:一直在执行 init pstree -p 查看
CoW:写时复制
进程:都是由父进程创建,怎么创建? fork(), clone()
CPU进行线程切换叫做上下文!
缓存失效:CPU处理一个进程时被切换到另一个进程,造成当前缓存失效。这种现象极大浪费CPU性能
内存存储单位:Page Frame 页框 4K
物理地址空间:应用程序在内存中的真实存储位置
线性地址空间:应用程序认为自己的存储位置
MMU:memory management unit 在cpu中,负责转换物理地址和线性地址
内存释放算法:LRU 近期最少使用算法
规则:淘汰老旧,老旧更新。
进程间通信:
同一台主机
pipe 管道
socket 套接字
signal 信号 ^ + c 等
shm shared memory
semaphore 信号量
不同主机
socket ip和端口
RPC remote procedure call 远程过程调用
MQ 消息队列
进程优先级:
实时进程: 0-99
非实时进程:100-139
reltime
nice
top
Linux内核:抢占式多任务
进程类型:
守护进程:daemon,在系统引导过程中启动的进程,和终端无关进程
前台进程:跟终端相关,通过终端启动的进程
进程状态:
运行态:running
就绪态:ready
睡眠态:
可中断:interruptable
不可中断:uninterruptable
停止态:stopped
僵死态:zombie
转载于:https://blog.51cto.com/13182370/2372643