进程的定义:
进程就是一个程序在一个数据集上的一次动态执行过程,进程一般由程序,数据集,进程控制块三部分组成,我们编写的程序,用来描述进程要完成那些功能以及如何完成;数据集则是程序在执行过程中所需要使用的资源,进程控制块用来记录进程的外部特征,描述进程的执行变化过程,系统可以利用它来控制和管理进程,它是系统感知进程存在的唯一标志。
线程:
线程的出现就是为了降低上下文切换的消耗,提高系统的并发性,并突破一个进程只能干一样事的缺陷,使到进程并成为可能。
线程也叫轻量级线程,它是一个基本的CPU执行单元,也是程序执行过程中的最小单元,有线程id,程序计数器,寄存器集合和推栈共同组成,线程的引入减小了程序并发执行时的开销,提高了操作系统的并发性能,线程没有自己的系统资源。
进程与线程的关系:
在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程。
多线程(即多个控制线程)的概念是,在一个进程中存在多个控制线程,控制该进程的地址空间。
进程只是用来把资源集中到一起(进程只是一个资源单元,或者说资源集合),而线程才是CPU上的执行单位。
进程是计算机中的程序关于某数据集合上的一次运动活动,是系统进程资源分配和调度的基本单元,是操作系统结构的基础,或者说进程是具有一定独立功能的程序关于摸个集合上的一次运动活动,进程是系统进行资源分配和调度的一个独立单位。
线程则是进程的一个实体,试试CPU调度和分派的基本单元,它是比进程更小的能独立运行的基本单位。
一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程,
资源分配分进程,同一进程的所有线程共享该进程的所有资源。
CPU分给线程,即真正在CPU上运行的是线程。
并行和并发
无论是并行还是并发,在用户看来都是同时运行的,而一个cpu同一时刻只能执行一个任务
并行:同时运行,只有具备多个cpu才能实现并行。
并发:是伪并发,即看起来是同时运行,单个CPU+多道技术
所有现代的计算机经常会在用一时间做很多件事,一个用户(无论是单(cpu还是多Cpu)都可以同时运行多个任务(一个任务可以理解为一个进程)当启动系统时,会秘密启动许多进程:
启动一个进程来杀毒(360软件)
所有的这些进程都需要被管理,于是一个支持多道程序系统是至关重要的
多道技术:
内存中同时存入多道多个程序,cpu从一个进程快速切换到另外一个,使每个进程各自运行几十或几百毫秒,这样,虽然在某一个瞬间,一个cpu只能执行一个任务,但1秒内,cpu却可以运行多个进程,这就给人产生了并行的错觉,即伪并发,以此来区分处理器操作系统的正真硬件并行(多个cpu共享同一个物理内存)
同步于异步
同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才能继续执行下去,异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态,当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。