操作系统学习-进程
categories: 操作系统
这是我个人在学习操作系统的笔记。。。
进程
- 并发:在一段时间内,有多个进程在执行。
- 并行:在同一时刻,有多个进程在执行。(单核处理器做不到)
- 进程:一个具有一定独立功能的程序,在一个数据集合上的一次动态执行过程。
进程的组合:一个进程包括:
- 程序代码
- 程序处理的数据
- 程序计数器中的值,指示下一条将运行的指令
- 一组通用的寄存器的当前值,堆,栈
- 一组系统资源(如打开文件)
总之,进程包含了正在运行的一个程序的所有状态信息。
进程与程序的联系:
- 程序是产生进程的基础。
- 程序的每次运行懂构成不同的进程。
- 进程是程序功能的体现。
- 通过多次执行,一个程序可对应多个进程;用过调用关系,一个进程可以包括多个程序。
区别: - 进程是动态,程序是静态;程序是有序代码的集合;进程是程序的执行。进程分为和核心态/用户态。
- 进程是暂时的,程序是永久的:进程是一个状态变化的过程,程序可长久保存。
- 程序与程序的组成是不同的:进程的组成包括程序、数据和进程控制块(即进程状态信息)
进程的特点:
- 动态性:可动态地创建和结束进程。
- 并发性:进程可被独立调度并占用处理器运行:(并发并行)
- 独立性:不同进程的工作不相互影响。
- 制约性:因访问共享数据或资源或进程间同步而产生制约。
PS:操作系统为每个进程都维护了一个PCB,用来保存于该进程有关的各种信息。
进程控制块
- 定义:操作系统管理控制进程运行,所用的信息集合。
操作系统用PCB来描述进程的基本情况以及运行变化的过程。注意,PCB是进程存在的唯一标 识。
进程控制块的使用:
- 进程的创建:为改进程生成一个PCB。
- 进程的终止:回收它的PCB
- 进程的组织管理:通过对PCB的组织管理来实现。
PCB有三大类信息:
- 进程标识信息。如本进程的标识,本进程的产生者标识;用户标识。
- 处理器状态信息保存去。保存进程的运行现场信息。
- 用户可见寄存器。
- 控制和状态寄存器。如程序计数器(PC),程序状态字(PSW)
- 栈指针。过程调用、系统调用、中断处理和返回时需要用到它。
- 进程控制信息:
- 调度和状态信息。
- 进程通信信息。
- 存储管理信息。
- 进程所用资源。
- 有关数据结构连接信息。
PCB的组织方式:
- 链表:多个状态对呀多个不同的链表,同一状态的进程其PCB成为一链表。
- 索引表
进程的管理:
- 进程的生命期管理
- 进程状态变化模型
- 进程挂起模型
一、进程的生命期管理:
- 进程创建
引起创建的3个主要事件:
- 系统初始化时
- 用户请求创建一个新进程
- 正在运行的进程执行了创建进程的系统调用
- 进程运行
- 内核选择一个就绪的进程,并占用处理器并执行
- 进程等待
进程等待(阻塞)的原因:- 请求并等待系统服务,无法马上完成
- 启动某种操作,无法马上完成
- 需要的数据没有到达
PS:进程只能自己阻塞自己,只有进程自身才能知道何时需要等待某种事件的到达
- 进程唤醒
唤醒的原因:- 被阻塞的进程需要的资源可被满足
- 被阻塞的进程等待的事件到达
- 将进程的PCB插入到就绪队列
PS:进程只能被别的进程或操作系统唤醒
- 进程结束
- 正常退出(自愿)
- 错误退出(自愿)
- 致命错误(强制)
- 被其他进程所杀(强制)