进程和线程

Posted My heart will go ~~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程和线程相关的知识,希望对你有一定的参考价值。

1.进程的概念

进程:有一定独立功能的程序在一个数据集合上的一次动态执行过程。
进程时处于执行状态的程序的抽象=程序+执行状态。同一个程序的多次执行过程对应为不同进程。

2.进程控制块

进程控制块(PCB):由操作系统控制和管理进程运行的过程。
创建进程的时候生成PCB,终止的时候回收PCB,通过对PCB组织管理实现进程控制。

内容:标志信息,处理机现场保存,进程控制信息

3.进程状态


进程切换:

4.三状态进程模型

三状态:就绪,运行,等待。
就绪:进程获取了除处理器以外的资源,得到处理机就可以开始运行了
等待:进程等待某事件出现而暂停

5.挂起进程模型

处于挂起状态的进程放在磁盘上,是为了减少内存的占用量。

相对于三状态模型,多了等待挂起和就绪挂起。
等待挂起:进程在外存并等待某事件的出现
就绪挂起:进程在外存,但只要进入内存,就可以运行
激活:在外村的状态调回到内存中来。

6.线程的概念

在一个进程内部,进一步提高并发性,就有了线程。
概念:线程是进程的一部分,描述指令流执行状态。是进程中的指令执行流的最小单元,是CPU调度的基本单位。

进程与线程的比较
1.进程时资源分配单位,线程是CPU调度单位。
2.进程时一个完整的资源平台,线程值独享指令流执行的必要资源。
3.线程有就绪、等待、执行三种基本状态和状态间的转换关系。
4.线程能减少并发执行的时间和空间开销。

7.用户线程

由一组用户级的线程库函数来完成线程的管理,包含线程的创建、终止、同步和调度等。

特征:不依赖操作系统内核,在用户空间实现线程机制,同一进程内的用户线程切换速度快,允许每个进程拥有自己的线程调度算法。

不足:线程发起系统调用而阻塞时,整个进程进入等待;不支持基于线程的处理机抢占;只能按进程分配CPU时间。

8.内核线程

进程是资源分配的单位,线程是处理机调度的单位。
进程由内核通过系统调用实现的线程机制,内核完成线程的创建、终止和管理。

以上是关于进程和线程的主要内容,如果未能解决你的问题,请参考以下文章

进程,线程

进程和线程区别

线程与进程的区别

JAVA线程与线程进程与进程间通信

进程和线程有什么区别

python中多进程和多线程的区别