程序怎么执行? 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