操作系统的核心概念是进程。
早期的无操作系统与单道批处理系统的计算机中,程序的执行方式是顺序执行,后期的多道、分时、实时等系统采用的是并发执行,即同一时间间隔运行多个进程同时执行。
进程顺序执行特点:
- 顺序性:按进入内存的顺序执行。
- 封闭性:程序一定开始运行不受外界因素影响。
- 可再现性:程序重复执行能得到相同结果。
进程的并发执行特点:
- 间断性:每个进程在CPU上的运行都是时断时续的。
- 失去封闭性:进程共享资源。
- 不可再现性:重复执行导致不同运行结果。
什么是进程:
是允许并发执行的程序在某个数据集合上的运行过程;是由正文段、用户数据段及进程控制块组成的执行环境。
进程印象:在某个特定时刻的进程内容被称为进程印象。
进程特征:
- 并发性:同一时间间隔运行多个进程同时执行。
- 动态性
- 独立性:(不引入线程外)进程是独立运行和资源调度的基本单位。
- 异步性:进程执行时断时续,状态无法预知,呈现随机的特性。
- 结构特征:进程实体包含正文段、用户数据段和进程控制块。
进程与程序的比较:
- 程序是静态、进程是动态。
- 程序时永久的、进程是暂时的。
- 程序时指令的集合、进程实体包含正文段、用户数据段和进程控制块。
- 进程是程序的一次执行。
- 进程对应至少一个特定的程序、一个程序可以对应多个进程。
- 菜谱好比是程序,制作的过程好比是进程。
什么是程序控制块:
是进程实体的一部分,是操作系统中最重要的数据结构。记录了操作系统所需要的、用于描述进程情况以及控制进程运行所需的全部信息。
进程控制块一般包含的信息:
进程标识符信息:进程控制符用于唯一标识一个进程,处理包含本进程的标识符,还有其父进程、子进程的标识符。
处理机状态信息:处理机是被进程共享的资源。一个进程在CPU上执行时可能对中断。中断后的进程通过CPU寄存器IR放回到内存中,等待下次执行的时间。处理机状态信息包括以下几个:
①通用寄存器:用于暂存信息。
②指令计数器:存放CPU要访问的下一条指令地址。
③程序状态字PSW:包含状态信息,如条件码,执行方式和中断屏蔽标志。
④用户栈指针:每个用户进程都有一个相关的系统栈,存放过程和系统调用参数,以及调用地址。栈指针指向该栈的栈顶(最后一项数据)。
进程调用信息: 包括进程状态信息,进程优先级、进程调度需要的其他信息。
进制控制信息:程序和数据的地址、进程同步、通信机制、资源清单、链接指针。
进程三种基本状态:
- 就绪态:进程在就绪队列中,一旦获得CPU就可以投入运行的状态,但是还未获得。
- 执行态:进程已经获得CPU正在运行的状态,有N个CPU就可以最多有N个进程处于执行态。
- 阻塞态:进程由于等待资源或其他因素暂停执行的状态,会被放在不同的阻塞队列中。
进程状态的转换:
就绪-执行:操作系统为就绪态的进程分配了CPU后,进程就转变为执行态。
执行-就绪:执行态的进程在CPU上运行的时间片递减为0,就转变为就绪态。
执行-阻塞:执行态的进程在CPU上被迫中断,转变为阻塞态,称为阻塞过程。
阻塞-就绪:阻塞态进行在因为某个事件发生或申请到资源后,系统将其转变为就绪态,称为唤醒过程。
什么是进程的组织:
因为操作系统中时刻都有多个进程,为了能让程序在有需要时检索到每一个进程。进程的组织主要是组织和管理进程块,是通过定义数据结构实现的。有以下三个方面:
- 链接方式:具有相同状态的进程块PCB,用其中的链接字连成一个队列。
- 索引方式:系统根据所有进程状态建立几张索引表,索引表的每一项指向一个控制块的物理块。
- 进程队列:相同状态的进程放在一个队列,具有不同状态的进程就形成不同队列。