操作系统中线程和进程的概念
现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。
进程的特点:
动态特征
进程具有生命周期,由创建而产生,由调度而运行,由得不到资源而阻塞,由撤消而消亡。
并发特性
多个进程共同驻留在内存中,能在一段时间内交错执行。
独立特征
进程是系统进行资源分配和调度的一个基本单位。
结构特征
为描述进程的变化运动过程,系统为每一个进程配置一个进程控制块(PCB),这样从结构上看,进程由程序、数据集合及PCB三部分组成,一般把进程的这三部分组成内容称之为进程映像或进程实体。
异步特征
各进程按其各自独立的,不可预知的速度向前推进,对系统来说,需提供一些机制来协调它们。
进程的两个基本特征:
1、 进程是一个拥有资源的独立单元,一个进程包括一个保存进程映像的虚拟地址空间,并可对资源实施控制或拥有资源,如I/O通道,I/O设备,文件和内存等
2、 进程又是一个被操作系统独立调度和执行的基本单元,进程沿着一个或多个程序间的执行轨迹动行。其运行过程可能与其他进程的执行过程交替执行。
线程
线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存。“同时”执行是人的感觉,在线程之间实际上轮换执行。
线程与进程的区别:
(1) 调度执行:
线程是操作系统调度执行的基本单位,在引入线程的操作系统中,进程一般不再是可调度分派的基本单位。
(2) 资源拥有:
通过把一个应用程序分解并创建出对应的多个线程,程序员可以控制应用程序的模块性和应用程序相关事件的时间安排。线程基本上不拥有资源,它的运行资源取自于其所属的进程所拥有的情况。
(3) 地址空间:
不同进程的地址空间是相互独立的,而隶属于同一进程的各线程共享同一地址空间。
(4) 数量关系:
一个进程可以包含一个或多个线程,反过来则不然,一个进程中线程对另外一个进程来讲是不可见的。
(5) 通信关系:
进程间通信必须使用操作系统提供的进程间通信机制,而同一进程中的各线程间可以通过直接读写数据段(如全局变量)来进行通信。
线程的优点
1、创建时间短
2、终止时间开销少
3、切换快
4、通信效率高
进程的五种状态(内核态):
运行、可中断、不可中断、被其他进程跟踪、停止执行
运行中的进程三种状态(用户态):
就绪、执行、挂起
进程与线城的区别
操作系统中线程和进程的概念
现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。
进程的特点:
动态特征
进程具有生命周期,由创建而产生,由调度而运行,由得不到资源而阻塞,由撤消而消亡。
并发特性
多个进程共同驻留在内存中,能在一段时间内交错执行。
独立特征
进程是系统进行资源分配和调度的一个基本单位。
结构特征
为描述进程的变化运动过程,系统为每一个进程配置一个进程控制块(PCB),这样从结构上看,进程由程序、数据集合及PCB三部分组成,一般把进程的这三部分组成内容称之为进程映像或进程实体。
异步特征
各进程按其各自独立的,不可预知的速度向前推进,对系统来说,需提供一些机制来协调它们。
进程的两个基本特征:
1、 进程是一个拥有资源的独立单元,一个进程包括一个保存进程映像的虚拟地址空间,并可对资源实施控制或拥有资源,如I/O通道,I/O设备,文件和内存等
2、 进程又是一个被操作系统独立调度和执行的基本单元,进程沿着一个或多个程序间的执行轨迹动行。其运行过程可能与其他进程的执行过程交替执行。
线程
线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存。“同时”执行是人的感觉,在线程之间实际上轮换执行。
线程与进程的区别:
(1) 调度执行:
线程是操作系统调度执行的基本单位,在引入线程的操作系统中,进程一般不再是可调度分派的基本单位。
(2) 资源拥有:
通过把一个应用程序分解并创建出对应的多个线程,程序员可以控制应用程序的模块性和应用程序相关事件的时间安排。线程基本上不拥有资源,它的运行资源取自于其所属的进程所拥有的情况。
(3) 地址空间:
不同进程的地址空间是相互独立的,而隶属于同一进程的各线程共享同一地址空间。
(4) 数量关系:
一个进程可以包含一个或多个线程,反过来则不然,一个进程中线程对另外一个进程来讲是不可见的。
(5) 通信关系:
进程间通信必须使用操作系统提供的进程间通信机制,而同一进程中的各线程间可以通过直接读写数据段(如全局变量)来进行通信。
线程的优点
1、创建时间短
2、终止时间开销少
3、切换快
4、通信效率高
进程的五种状态(内核态):
运行、可中断、不可中断、被其他进程跟踪、停止执行
运行中的进程三种状态(用户态):
就绪、执行、挂起