进程的定义
程序段,
数据段,
PCB三部分组成了
进程实体(进程映像),一般情况把进程实体简称为进程
进程控制块(PCB):系统为每个运行的程序配置的一个数据结构,用来描述进程的各种信息(如代码的存放位置)和运行状态。所谓创建进程和撤销进程都是对PCB的操作
注意:PCB是进程存在的唯一标志!
进程映像是静态发,进程是动态的
引入进程实体的概念后,可把进程定义为:
进程是进程实体的运行过程(动态性),是系统进行资源分配和调度的一个独立单位
进程的组成
1.PCB
- 进程描述信息 --> 进程标识符PID,用户标识符UID
- 进程控制和管理信息 -->进程当前状态,进程优先级
- 资源分配清单 -->程序段指针,数据段指针,键盘,鼠标
- CPU相关信息 -->各种寄存器的值
2.程序段 存放要执行的代码
3,数据段 存放程序运行过程需要的处理的数据
进程的特征
进程的状态
注意区别就绪状态和阻塞状态:
就绪状态是指进程仅缺少处理机,只要获得处理机就立即执行;
而
阻塞状态(等待状态)是指进程需要其他资源(除了处理机)或等待某一事件
进程的组织
注:进程的组成讨论的是一个进程由哪些部分构成的问题,而进程的组织讨论的是多个进程之间的组织方式问题
1.链接方式
- 根据进程的状态将PCB分为多个队列
- 操作系统持有指向各个队列的指针
2.索引方式
- 根据进程的状态不同,建立索引表
- 操作系统持由指向各个索引表的指针
进程控制 --图
什么是进程控制?
主要功能是对系统中所有进程实施有效的管理,具有创建进程,撤销已有进程,实现进程状态转换等功能
简化理解:主要实现进程的状态改变
如何实现进程控制 ?
用原语实现进程控制。原语特点是执行期间不允许中断,只能一气呵成(原子操作)
原语采用"关中断指令"和"开中断指令"实现原子操作
进程控制会导致进程状态的转换。无论哪个原语,无非做以下三件事
- 更新PCB中信息(修改进程状态标志,将允许环境保存到PCB,从PCB恢复运行环境)
- 将PCB插入合适的队列
- 分配/回收资源
进程通信 --图
线程 --图
堆空间共享,栈空间独立,相对于进程消耗资源小,又称为“轻量级进程”。
进程是资源分配的基本单位,线程是调度的基本单位
线程的属性:
线程的实现方式:
用户级线程:所有的
线程管理工作都由
应用程序负责(包括线程的切换),
线程的切换在用户态下即可完成,无需操作系统干预。"
用户级线程" 就是 “
从用户视角能看到的程序”,操作系统内核意识不到线程的存在
内核级线程:进程管理工作由操作系统内核完成。内核级线程的切换必然需要在核心态下才能完成。"
内核级线程" 就是 “
从内核视角能看到的程序”
多线程模型:
进程和线程区别:
Ⅰ 拥有资源
进程是资源分配的基本单位,但是线程不拥有资源,线程可以访问隶属进程的资源。
Ⅱ 调度
线程是独立调度的基本单位,在同一进程中,线程的切换不会引起进程切换,从一个进程中的线程切换到另一个进程中的线程时,会引起进程切换。
Ⅲ 系统开销
由于创建或撤销进程时,系统都要为之分配或回收资源,如内存空间、I/O 设备等,所付出的开销远大于创建或撤销线程时的开销。类似地,在进行进程切换时,涉及当前执行进程 CPU 环境的保存及新调度进程 CPU 环境的设置,而线程切换时只需保存和设置少量寄存器内容,开销很小。
Ⅳ 通信方面
线程间可以通过直接读/写同一进程中的数据进行通信,但是进程通信需要进程同步和互斥手段的辅助
处理机调度 --图
当多个进程并发,且多于处理机的个数时,需要从就绪队列中按照一定的算法选择一个进程并将处理机分配非它运行
- 高级调度(作业调度)按照某种规则,从后备队列中选择合适的作业将其调入内存,并为其创建进程
- 中级调度(内存调度)按照某种规则,从挂起队列中选择合适的进程将其调回内存(挂起状态的进,PCB会常驻内存)
- 低级调度(进程调度)按照某种规则,从就绪队列选择一个进程为其分配处理机
进程调度时机
临界区资源: 一个时间段只允许一个进程使用的资源。各进程需要互斥地访问临界资源(物理设备如摄像机,打印机)
临界区:进程中访问临界区资源的代码(在进程同步和互斥有详细解释)
错题