进程和线程都是一个时间段的描述,是CPU工作时间段的描述,不过是颗粒大小不同
进程就是包换上下文切换的程序执行时间总和 = CPU加载上下文+CPU执行+CPU保存上下文
线程是共享了进程的上下文环境,的更为细小的CPU时间段
- 进程是资源分配调度的基本单位 fork/vfork
- 线程是cpu分配调度的基本单位 pthread_create
- 寄存器:每个线程都有一组cpu寄存器,暂存指令、地址和数据
管道、有名管道、消息队列、信号、信号量、共享内存、套接字
- 先来先服务(FIFO)
- 短进程优先
- 基于优先级的调度算法
- 反馈调度算法- 先调度优先级高的队列,在同级队列使用时间片轮转
- 时间片轮转算法
- 最佳置换算法(OPT) 未来最久不使用的页换出或者最长时间不需要访问的页面
- 先进先出(FIFO)
- 改进型先进先出算法
- 最近最久未使用(LRU)
- 时钟替换算法 - 每一次进行替换指针的位置就从替换数移到下一个位置,每一次进行访问时,则指针保持不动
1. 互斥条件
2. 不剥夺条件
3. 请求和保持条件
4. 循环等待条件
1. 加锁顺序
2. 加锁时限
3. 死锁检测
- cpu 缓存(L1 Cache, L2 Cache)
- 内存(RAM)
- 静态内存 特点:速度块,集成度低,价格高
- 动态内存 特点: 集成度高,速度慢于静态
- 磁盘 缓存
- 浏览器缓存
- 代理缓存
- memcached
- redis
为了有效管理内存减少出错
- 将主存看成是一个存储在磁盘的地址空间
- 为每个进程提供了一致的地址空间
- 保护每个进程的地址空间不被其他进程破坏

