进程
概念
进程概念的引入是在多道程序的环境下,资源共享和程序的并发导致各个程序相互间存在制约关系,故引入了进程。
进程的定义:进程是程序关于数据集合的一次执行,该程序可与其他程序间并行。
每个进程都有自己的地址空间,地址空间内有三大部分,分别是程序、数据集合以及进程控制块(PCB)。
程序
描述进程要执行的功能,也就是我们的代码。此部分是执行时不可修改部分。
数据集合
这部分是程序执行所需的数据和动态分配的内存。此部分是执行时可修改的部分。
进程控制块(PCB)
这部分是为了描述程序的动态变化,便于系统对进程进行控制管理的。
进程与程序的区别
1.程序是静态的,进程是动态的,进程是程序的一次执行。(程序写完后就是一片代码,是死的!而进程是程序的一次执行,进程是活的!是动起来的!)
2.进程是短暂的,当进程完成它的使命后,就会被撤销掉,而程序是一直都存在的。
3.一个进程可以执行一个或多个程序,一个程序也可能由一个或多个进程组成。
4.进程是可并发的。
5.传统操作系统中,进程是系统进行资源分配和调度的基本单位,在引入线程的系统中,进程不再是调度的基本单位。
进程的三种基本调度状态
1.运行状态
表示当前进程获得了处理机资源,处理机正在执行此进程。
2.就绪状态
表示该进程已具备条件,正在等待分配处理机。
3.阻塞状态
表示进程暂时不能运行,收到了阻塞,就算处理机空闲也不能使用,在条件满足之前只能干等着条件满足为止。
进程的控制
进程是由原语来进行控制的。原语的概念:原语的执行不能被中断!原语操作具有不可分割性!就算一条原语由多条机器语言构成,操作系统也会采用屏蔽中断的方法来保证原语的不可分割性。原语可用于创建一个新进程,终止一个已完成的进程,或者去终止一个因出现某事件而使其无法运行下去的进程,还可负责进程运行中的状态转换。
线程
概念
线程可以看做是进程内的一个执行单位,也就是一个进程包含至少一个线程,是进程中实际的运作单位。
与进程的区别
1.线程是进程内的一部分。
2.进程是资源分配的基本单位,线程是独立运行和独立调度的基本单位。
3.进程间的资源空间都是独立的,而线程是共享一个进程的资源空间。资源是分配给进程的,当线程在执行中需要资源时,系统是从分配给进程的资源中分配给线程。线程都是在进程的地址空间内活动。
4.多进程比多线程更健壮,多线程中当有一个线程死掉后,整个进程也就死掉了,而多进程中有一个进程死掉后,对其他进程并无影响,因为进程间的地址空间都是分割开的,都有着自己独立的地址空间,互不影响。