程序的执行方式
程序的执行是指将二进制代码文件(例如.exe文件)装入内存,由CPU按程序逻辑运行指令的过程。
程序的执行方式包括顺序和并发两种方式。
多道程序设计技术是现代操作系统普遍使用的,它可以允许多个程序进驻内存,系统通过某种调度策略交替执行程序。
1、程序的顺序执行
一个独立功能的程序独占处理器直至最终结束的过程称为程序的顺序执行。系统任意时刻只有一个程序被载入内存,占用CPU等资源在运行,一个程序执行完了才能执行另一个程序。
- 顺序执行的特征:
- 顺序性。
- 封闭性。(程序执行得到的结果不受外界因素影响)
- 可再现性。(无论任何时候重复执行都会得到相同结果)
2、程序的并发执行和并行执行
并发(concurrent)和并行(parallel)是相似但是有去别的两个概念。
并行是指多个事件在同一时刻发生,而并发是指多个事件在同一时期内发生,并行是并发的特例。
在单CPU的多道程序环境下,并发性是指在宏观上一段时间内系统中有多个程序在运行,在微观上这些程序只能是分时地交替运行。
在多CPU的环境下,并发程序可以分配到多个CPU,实现并行执行,多个程序便可以真正地同时执行。
- 并发执行的特性:
- 间断性。(程序不再是一条紧接着一条执行,可能会暂停等待CPU执行其他程序)
- 开放/交互性。(由于系统中载入了多个程序,存在资源共享/争用,因此程序运行时可能会互相影响)
- 不可再现性。(不同情况下可能出现不同的结果,甚至错误)
3、进程概念的引入
系统允许运行多个程序时,前述所谓程序顺序执行的特性将不复存在。
程序载入内存执行时,这个执行体与对应的二进制程序文件(例如.exe)不一定维持一一对应的关系。为了更好地描述,所以引入了进程的概念来描述程序的运行,情调其动态性并正确描述程序的执行状态。
概念梳理:
- 程序(Rrogram):
特指代码文件,强调静态性。可以是二进制机器指令也可以是高级语言。
- 进程(Process):
没有统一的定义,约定俗成的说法是可并发执行的程序在某个数据集合上的一次执行过程,是操作系统资源分配、保护、调度的基本单位。
其概念的理解侧重于进程是已装入内存中运行的程序及其相关的数据结构。
- 作业(Job):
作业一般是指批处理系统要装入系统运行的一系列程序和数据,一般由相应的作业控制语言来描述作业步骤、参数和执行细节。
Cre:类似windows系统的批处理(bat)语言?
(END)