1. 多道程序设计
多道程序设计在多道批处理操作系统中被首次引入,应用于此后出现的分时、实时、网络和分布式等各类操作系统,是操作系统的重要能力之一。
多道程序设计可以同时把多个程序装入内存,并允许它们交替在CPU中运行。它们共享系统中的各种软硬件资源,当一道程序因等待其他资源(如I/O请求)而暂停运行时,CPU便立即转去运行另一道程序。通过花费少量时间切换任务,达到系统各部件并行工作的效果,提高资源利用率,从而提高系统整体运行效率。
多道程序设计的特点:多道、宏观上并行、微观上串行。
2. 进程的概念
在多道程序环境下,并发执行的多个程序失去封闭性,并具有间断性和不可再现性。
Q: 程序并发执行为什么会产生间断性?
A:由于并发执行的程序共享系统资源,并且有时为完成一项任务而相互合作,致使它们之间形成相互制约的关系,从而使得程序并发执行期间出现间断性。
Q: 程序并发执行为什么会失去封闭性和可再现性?
A: 并发执行的多个程序共享系统中的各种资源,这些资源的状态将由多个程序来改变,致使程序的运行失去了封闭性。由于失去了封闭性,程序经过多次执行后,其计算结果与并发程序的执行速度有关,从而使程序的执行失去可再现性。
引入进程的目的:更好地描述和控制程序的并发执行,实现操作系统的并发性和共享性。
进程的概念:进程是进程实体的运行过程,是操作系统资源分配和独立运行的基本单位,也是操作系统资源分配和调度分派的一个独立单位。
注意:线程才是操作系统调度分派的基本单位。
进程是动态的、过程性的:1. 进程是程序的一次执行过程;2. 进程是程序及其数据在处理机上顺序执行时发生的活动;3. 进程是具有独立功能的程序在一个数据集合上运行的过程。
引入进程的好处是使多个程序能够并发执行,极大地提高了资源利用率和系统吞吐量。但是,管理进程也需要付出一定的代价,包括进程控制块及协调各运行机构所占用的内存空间开销,以及为进程间的切换、同步及通信等所付出的时间开销。