- 进程:
- 代码段
- 当前活动:程序计数器的值和处理器寄存器的内容
- 进程堆栈段:临时数据,函数参数,返回地址和局部变量
- 数据段:全局变量
- 堆:进程运行期间动态分布的内存
栈--堆--数据--文本
程序是被动实体
进程是活动实体
进程状态:
- 新的:进程正在被创建
- 运行:指令正在被执行
- 等待:进程等待某个事件的发生
- 就绪:进程等待分配处理器
- 终止:进程完成执行
进程控制块PCB:每个进程在操作系统内用进程控制块来表示,包含许多与一个特定进程相关的信息。
- 进程状态
- 程序计数器
- cpu寄存器
- cpu调度信息
- 内存管理信息
- 记账信息
- I/O状态信息
进程调度:选择一个可用的进程到CPU上执行。
调度队列:
- 作业队列:进程进入系统时会被加到作业队列中,该队列包括系统中所有进程。
- 就绪队列:驻留在内存中就绪的、等待运行的进程保存在就绪队列中,链表实现。
调度程序:进程选择
- 长期(作业)调度程序:从缓冲池中选择进程
- 短期(cpu)调度程序:从准备执行的进程中选择进程,并为之分配cpu
上下文切换:将cpu切换到另一个进程需要保存当前进程的状态并恢复看另一个进程的状态
- 独立进程
- 协作进程:需要进程间有互相通信的机制
- 共享内存:通信进程共享一些变量,通过共享变量来交换信息
- 消息系统:应用程序员提供通信,操作系统提供共享内存