进程与线程
进程:是一个动态的概念。 狭义定义:进程就是一段程序的执行过程。 广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元。
线程:独立运行和独立调度的基本单位。线程是进程中执行运算的最小单位。
- 一个进程可以至少包含一个线程。
- 进程是最基本的资源分配单元。线程是CPU 调度的最基本的执行单元
- 每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。
- 文本区域存储处理器执行的代码;
- 数据区域存储变量和进程执行期间使用的动态分配的内存;
- 堆栈区域存储着活动过程调用的指令和本地变量。
- 线程没有地址空间,线程包含在进程的地址空间中。线程上下文只包含一个堆栈、一个寄存器、一个优先权,线程文本包含在他的进程 的文本片段中,进程拥有的所有资源都属于线程。所有的线程共享进程的内存和资源。 同一进程中的多个线程共享代码段(代码和常量),数据段(全局变量和静态变量),扩展段(堆存储)。但是每个线程拥有自己的栈段, 寄存器的内容,栈段又叫运行时段,用来存放所有局部变量和临时变量。
-
进程5态
屏幕快照 2018-12-18 下午4.37.32.png
- 提交: 进程已经申请到了PCB(Process Control Block),并写入了进程信息和控制信息,获取到了执行所需要的资源。
- 选中: cpu 通过调度算法,运行该进程获取CPU资源开始进行运算
- 落选:CPU资源不在对该进程提供。如,时间片到或有更高优先级的进程需要执行。
- 出现等待事件:正在执行的进程所有资源不足或被其他进程占用。(例:等待I/O)
- 等待事件结束:获得所需要的资源。(其他进程I/O 完成,自己可以使用)
- 执行完成:进行结束
- 挂起: 由于系统不断创建进程,系统资源特别是主存已不能满足进程运行要求,此时必须将某些进程挂起(suspend),置于磁盘对换区,释放其所占资源,暂时不启用低级调度,起到平滑负载的目的。
- 解除挂起:资源重新获取
程序
定义:程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。说得直白一点,程序就是只写的代码。
网友评论