线程、进程及其联系与区别

一、进程
        1、进程的概念
                进程是操作系统实现并发执行的重要手段,也是操作系统为程序提供的重要运行环境抽象。
                进程最根本的属性是动态性和并发性。以下是从不同角度对进程的解释:
                a、进程是程序的一次执行
                b、进程是可以与其他计算并发执行的计算
                c、进程是一个程序程序及其数据在处理器上顺序执行时发生的活动
                d、进程是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位
                e、进程是进程实体的一次活动
                f、进程是支持程序运行的机制
        2、进程的定义
                进程是具有一定功能的程序在一个数据结合上的运行过程,它是系统进行资源分配和调度管理的一个可并发执行的基本单位。
        3、进程的基本特性
                a、动态性:进程的实质是程序的一次执行过程,它由系统创建而产生,能够被调度而执行,因申请的共享资源被其他进程占用而暂停,完成任务后被撤销。动态性是进程最重要的特性。
                b、独立性:系统内多个进程可以并发执行,引入进程的目的也是为了使系统某个程序能够和其他进程并发执行。
                c、异步性:进程由于共享资源和协同合作,因此产生了相互制约的关系,进程实体通过进程管理以异步的方式使用处理器和其他资源,系统必须统一调度,依据一定的算法来保证各个进程能够协同运行并共享处理器和其他资源。
                d、结构特性:系统中运行的进程实体通常由程序、数据和一个PCB(进程控制块)组成。
        4、进程的基本状态和转换
                
 
                        上图中的    运行——>阻塞中的事件请求即等待资源、事件
                                           阻塞——>就绪中的事件发生即事件发生,资源释放。
二、线程
        1、线程的概念
                线程是进程中实施调度和分派的基本单位。
                操作系统提供现成的目的就是为了方便高效地实现并发处理(进一步提高并发度)。
        2、线程分类
                线程一般分为用户级线程和核心级线程。
        3、线程池
                设计思想:在创建一个进程是,相应地创建若干个线程,将它们放在一个缓冲池中,这些线程在等待工作。当服务器接收到一个请求时,系统就唤醒其中的一个线程,并将请求传给它,由这个线程进行服务。当完成任务后,线程重新被放入线程池中,等待下面新的请求和服务。如果线程池中没有可用的线程,服务器就要等待,直到有一个线程被释放。
三、线程和进程的关系
        1、一个进程可以有多个线程,但至少有一个线程;而一个线程只能在一个进程的地址空间内活动。
        2、资源分配给进程,同一个进程的所有线程共享该进程所有资源。
        3、CPU分配给线程,即真正在处理器运行的是线程。
        4、线程在执行过程中需要协作同步,不同进程的线程间要利用消息通信的办法实现同步。
 
注:进程是最基本的资源拥有单位和调度单位。        
        进程间通信方式:(1)消息传递(2)共享存储(3)管道通信
 
参考书籍   操作系统原理与实践  邹鹏  高等教育出版社
                
原文地址:https://www.cnblogs.com/chump-zwl/p/6962762.html