操作系统学习笔记(二)--进程管理(1)
今天进行操作系统第二章的复习。这章内容及其重要,是考试以及学习过程中的重点。
进程管理
*橘黄色为重要内容
一、引入进程
在上一讲中我们提到多道程序设计。
多道程序设计特点
- 多道程序同时驻留内存
- 在宏观上并行执行
- 在微观上串行执行
多道程序设计问题
- 执行过程–间断性
- 执行环境–封闭性
- 执行结果–再现性
∴引入进程,描述程序的执行过程,并且跟方便分配相关资源。
二、进程概念、特征及状态
- 概念:进程是一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程,它是系统进行资源分配和调度的基本单位。
- 特征
- 动态性:动态的地址空间
- 并发性:多个进程同存于内存中,在一段时间内同时运行
- 独立性:各进程的地址空间相互独立
- 异步性:进程以各自独立、不可预知的 速度向前推进。
-
三种基本状态
- 就绪状态:除了处理器资源,其他资源都准备好了。
- 执行状态:
- 用户态(目态)
- 系统态(内核态、管态)
- 阻塞状态:进程由于等待I/O操作或进程同步等条件而暂停运行时所处的状态。
状态转换图如下:
就绪状态→执行状态:为就绪队列队首的程序分配处理器。
执行状态→就绪状态:时间片用完
执行状态→阻塞状态:I/O请求
阻塞状态→就绪状态:I/O完成
- 五种状态
进程被挂起时候进程被放置外存,不能接收处理机调度。
三、进程的组成及上下文
- 进程=程序控制块(PCB)+程序段+数据段+栈区
*PCB是系统感知进程存在的唯一标志,它包含进程的描述信息、控制信息及资源信息。是进程动态特征的集中反映。 - -进程上下文:进程执行活动全过程的静态描述。可分为用户级上下文、寄存器级上下文、系统级上下文
- 用户级上下文:用户正文段、用户数据段、用户栈
- 寄存器上下文:程序寄存器、处理器状态寄存器、栈指针、通用寄存器的值
- 系统级上下文:进程的静态部分(PCB和资源表格)、由核心栈等构成的动态部分
四、进程的创建与撤销
- 创建
- 方式:由系统程序创建、由父进程创建
- 引起创建的事件:用户登录、作业调度、提供服务、应用请求
- 过程:
- 申请空白PCB
- 为新进程分配资源
- 初始化进程控制块
- 将新进程插入就绪队列
- 撤销
- 方式:由操作系统终止、有进程发出请求
- 引起撤销的事件:正常结束、异常结束(越界错误、运行超时)、外界干预(父进程请求、父进程终止)
五、进程的阻塞与唤醒
引起阻塞或唤醒的主要事件:请求系统服务、启动某些操作、新数据尚未到达、无新工作可做
六、程序的挂起与**
**过程:(挂起为其逆过程)
- 将进程从外存调入内存
- 检查该进程现行状态
- 若是静止就绪,改为活动就绪;若是静止阻塞,改为活动阻塞
七、进程与程序
- 进程是动态的,程序是静态的。程序是有序代码的集合;进程是程序的执行。进程通常不可以在计算机之间迁移;而程序通常对应着文件、静态和可以复制。
- 进程是暂时的,程序是永久的。进程是一个状态变化的过程;程序可长久保存。
- 进程与程序的组成不同。进程的组成包括程序、数据和进程控制块(即进程状态信息)。
- 进程与程序是密切相关的。通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。进程可创建其他进程,而程序并不能形成新的程序。
进程是程序代码的执行过程,但并不是所有代码执行过程都从属于某个进程。
八、进程的通信方式
进程通信是指进城之间的信息交互。进程之间所交换的信息量,少则是一个状态或数值,多则是成千上万个字节。
- 分类
- 按通信量可分为低级通信、高级通信。
- 按通信过程中是否有第三方作为中转课分为直接通信、间接通信
- 方式
- 共享存储器系统:相互通信的进程共享某些数据结构或共享存储区,进程之间能够通过这些空间进行通信
- 管道通信:管道指用于连接一个读进程和一个写进程以实现他们之间通信的一个共享文件。向管道(共享文件)提供输入的发送进程(即写进程),以字符流形式将大量的数据送入管道,而接受管道输出的接收进程(即读进程),则从管道中接收(读)数据。适于传送大量数据。
- 消息传递系统:进程间的数据交换是以格式化的消息为单位。如:邮箱
九、线程概念、特征及状态
- 概念:线程(Thread)是一个动态的对象,它是处理器调度的基本单位,表示进程中一个控制点,执行一系列的指令。
- 特征:
- 线程的创建时间比进程短;
- 线程的终止时间比进程短;
- 同进程内的线程切换时间比进程短;
- 之间进行不通过内核的通信
- 状态:执行状态、就绪状态、阻塞状态
十、进程与线程的比较
- 地址空间资源:线程使用的是进程内共享空间;
- 通信关系:线程使用的是进程内通信;
- 调度切换:线程使用的是进程内线程描述表。