进程的描述与控制(一)
1、为什么会有进程的概念
在早期的未配置OS的系统和单批道处理系统中,程序的执行时顺序执行,及在内存中进装入一道用户程序,由它独占系统中的所有资源,只有一个用户程序执行完成后,才允许装入另一个程序并执行。这种方式存在浪费资源的、系统运行效率低等缺点。而在多道程序系统中,内存中可以同时装入多个程序,使他们共享系统资源,并发执行,这显然可以克服上述缺点。程序的这两种执行方式间存在着显著的不同,尤其是考虑到程序并发执行时的特征,才导致了在操作系统中引入了进程的概念。
2、程序的执行
程序的执分为顺序执行和并发执行
顺序执行:一个应用程序通常是由若干个程序段组成,每个程序段都有自己能够完成的特定功能,他们在执行的时候,需要按照某种先后次序依次顺序执行,只有当前一段执行完成后才运行后一段程序,这样的执行方式称顺序执行。有利于程序的调试,但资源利用率低
顺序执行的特征:
- 顺序性: 处理机严格的按照程序说规定的顺序执行,及每个操作必须在上一个操作完成后且下一操作执行前完成
- 封闭性:指程序在封闭的环境下运行,及执行程序运行时独占全机资源。
- 可再现性:程序在执行的环境和条件相同时,执行的结果始终是相同的。
并发执行:一个应用程序的各个程序段之间不一定需要按照先后次序依次执行,而是可以在同一时间间隔内执行(注意:并行指多个事件在同一时刻发生,并发指多个事件在同一时间间隔发生),这样的执行方式称并发执行。并发执行的程序段之间,不能存在前驱关系
并发执行的特征:
- 间断性:程序在执行时,各个程序段之间共享系统资源,因此可能出现不同程序段之间需要使用同一资源,而该资源已经被占用的情况,那么另一个程序段则需要等待占用该资源的程序段执行完成后再使用,这样就是是的程序出现了执行-中断(等待)-执行的情况
- 失去封闭性:由于资源的共享,资源的状态可能会受到这些程序段的改变,就使得同样需要使用这一资源的程序段的执行状态改变,这样就造成了程序的执行失去了封闭性
- 不可再现性:由于同一程序段的执行速度并不是每次都一样,这样就使得资源在共享时不一定每次都是被相同的程序段按照相同的顺序使用。例如,有两个程序段A、B都需要用到O资源,第一次执行程序时A先执行完,B就需要等待O资源;第二次执行程序时B先执行完,A就需要等待O资源。这样就使得程序最终的执行结果不同。