1.进程和线程的概念
进程
计算机的核心是CPU,它承担了所有的计算任务;而操作系统是计算机的管理者,它负责任务的调度、资源的分配和管理,统领整个计算机硬件;应用程序侧是具有某种功能的程序,程序是运行于操作系统之上的。进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程是一种抽象的概念,从来没有统一的标准定义。进程一般由程序、数据集合和进程控制块三部分组成。程序用于描述进程要完成的功能,是控制进程执行的指令集;数据集合是程序在执行时所需要的数据和工作区;程序控制块,是进程存在的唯一标志。
进程具有的特征:
•动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的;•并发性:任何进程都可以同其他进程一起并发执行;•独立性:进程是系统进行资源分配和调度的一个独立单位;•结构性:进程由程序、数据和进程控制块三部分组成。
•进程的生命周期:
在早期只有进程的操作系统中,进程有五种状态,创建、就绪、运行、阻塞(等待)、退出。
•创建:进程正在创建,还不能运行。操作系统在创建进程时要进行的工作包括分配和建立进程控制块表项、建立资源表格并分配资源、加载程序并建立地址空间;
•就绪:时间片已用完,此线程被强制暂停,等待下一个属于他的时间片到来;
•运行:此线程正在执行,正在占用时间片;
•阻塞:也叫等待状态,等待某一事件(如IO或另一个线程)执行完;
•退出:进程已结束,所以也称结束状态,释放操作系统分配的资源。
线程
在早期的操作系统中并没有线程的概念,进程是能拥有资源和独立运行的最小单位,也是程序执行的最小单位。任务调度采用的是时间片轮转的抢占式调度方式,而进程是任务调度的最小单位,每个进程有各自独立的一块内存,使得各个进程之间内存地址相互隔离。后来,随着计算机的发展,对CPU的要求越来越高,进程之间的切换开销较大,已经无法满足越来越复杂的程序的要求了。于是就发明了线程,线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单位。一个进程可以有一个或多个线程,各个线程之间共享程序的内存空间。
一个标准的线程由线程ID、当前指令指针(PC)、寄存器和堆栈组成。而进程由内存空间(代码、数据、进程空间、打开的文件)和一个或多个线程组成。
•线程的生命周期
当线程的数量小于处理器的数量时,线程的并发是真正的并发,不同的线程运行在不同的处理器上。但当线程的数量大于处理器的数量时,线程的并发会受到一些阻碍,此时并不是真正的并发,因为此时至少有一个处理器会运行多个线程。在单个处理器运行多个线程时,并发是一种模拟出来的状态。操作系统采用时间片轮转的方式轮流执行每一个线程。现在,几乎所有的现代操作系统采用的都是时间片轮转的抢占式调度方式,如我们熟悉的Unix、linux、Windows及Mac OS X等流行的操作系统。
•创建:一个新的线程被创建,等待该线程被调用执行;
•就绪:时间片已用完,此线程被强制暂停,等待下一个属于他的时间片到来;
•运行:此线程正在执行,正在占用时间片;•阻塞:也叫等待状态,等待某一事件(如IO或另一个线程)执行完;
•退出:一个线程完成任务或者其他终止条件发生,该线程终止进入退出状态,退出状态释放该线程所分配的资源。
标签:操作系统,区别,程序,并发,线程,进程,执行 From: https://www.cnblogs.com/1713564464qq/p/16819318.html