别只做CRUD程序员,收下这篇操作系统干货(二)——进程管理!
一、进程的概念
1.进程的定义
现代操作系统的重要特点是程序的并发执行,及系统所拥有的资源被共享和系统的用户随机地使用。通常,操作系统的重要任务之一是使用户充分、有效地利用系统资源。
进程是描述程序的执行过程和作为资源分配的基本单位。
2.程序的并发执行
(1)程序是一个在时间上按严格次序前后相继的操作序列,是一个静态的概念。
(2)程序的顺序执行
Repeat IR ← M [pc]
pc ← pc+1
〈 Execute (instruction in IR)〉
Until CPU halt
把一个具有独立功能的程序独占处理机直至最终结束的过程称为程序的顺序执行。顺序执行的特点:
- 顺序性。程序顺序执行时,其执行过程可看作一系列严格按程序规定的状态转移过程。
- 封闭性。程序执行得到的最终结果由给定的初始条件决定,不受外界因素的影响。
- 可再现性。只要输入的初始条件相同,则无论何时重复执行该程序都会得到相同的结果。
(3)多道程序系统中程序执行环境的变化
计算机能够同时处理多个具有独立功能的程序。批处理系统、分时系统、实时系统以及网络与分布式系统等都是这样的系统。
这样的执行环境的特点如下:
- 独立性。每道程序都是逻辑上独立的,它们之间不存在逻辑上的制约关系。
- 随机性。在多道程序环境下,特别是在多用户环境下,程序和数据的输入与执行开始
时间都是随机的。 - 资源共享。资源共享将导致对进程执行速度的制约。
(4)程序的并发执行
分为两种:
- 多道程序系统的程序执行环境变化所引起的多道程序的并发执行。由于资源的有限性,多道程序的并发执行总是伴随着资源的共享与竞争。从而制约各道程序的执行速度。在宏观上并发执行,在微观上(指令级)仍是顺序执行;
- 并发执行是在某道程序的几个程序段中(例如几个程序),包含着一部分可以同时执行或顺序颠倒执行的代码。
程序的并发执行可总结为:一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的这种执行方式。
程序的并发执行不同于程序的并行执行。 程序的并行执行是指一组程序按独立的、异步的速度执行。
一般情况下,并发执行的各程序段如果共享软、硬件资源,都会造成其执行结果受执行速度影响的局面。