Linux 高并发学习笔记 - 进程概述,并发与并行,五态模型

2.1 进程概述

Linux 高并发学习笔记 - 笔记索引

2.1.1 程序与进程
  • 程序:包含一系列二进制信息的文件,用于描述如何创建一个进程程序存储于磁盘中。包含:二进制格式标识、程序入口地址、机器码指令、数据、符号表与重定位表(如调试信息)、共享库与动态链接信息、其他。

  • 进程进程是正在运行的程序,一个程序的实例,占用内存CPU等资源。进程是一个程序关于某个数据集的运行活动,是传统操作系统中基本的分配单元执行单元

  • PCBProcessing Control Block):内核中一个复杂的数据结构,用于描述进程的运行状态,包含:进程标识、进程状态、虚拟内存表、文件标识符表、信号传递与处理有关信息、进程资源使用与限制信息、当前工作目录、其他。

    PCB的定义源码见/usr/src/linux-headers-xxx/include/linux/sched.h::task_struct

2.1.2 并发与多道程序
  • 单道程序:早期计算机仅支持一个程序在计算机上运行,不支持多个程序同时运行。它是效率低下的。
  • 多道程序:通过时序控制程序,使多个程序任务穿插进行,多个程序共享系统资源,同时处于开始到结束之间的状态。多道程序由于快速切换任务并将原任务挂起,可以更好的分配系统资源,使CPU始终处于忙碌状态,类似于流水线原理多道程序中的“多道程序”是宏观上的体现,实际上同一时刻,一个CPU上只能运行一个程序。
  • 时间片多道程序进程切换的单位。当一个程序占用CPU一个时间片后,将会被立即挂起,由下一个程序占用,从而使多个任务穿插进行。Linux中时间片的长度为5ms~800ms
  • 并行parallel):多个程序同时在多个处理器执行。
  • 并发concurrency):多个程序同时在一个处理器穿插执行。

在这里插入图片描述

2.1.3 进程状态转换
五态模型
  • 新建态:进程创建,但尚未获取任何系统资源。

  • 就绪态:进程准备就绪,获得除CPU资源外的一切资源,等待CPU资源,此时进程一旦获取CPU资源就能立即进入运行态。就绪态进程将进入就绪队列等待,就绪队列依次被CPU调度,正常结束时间片的进程将进入就绪队列队尾。

  • 运行态:进程占用CPU运行。

  • 阻塞态:进程等待IO请求,包括:等待读取磁盘、等待网络响应、等待用户事件、其他。这种状态通常称为挂起/睡眠sleep)。

  • 终止态:进程正常结束、异常结束或强制结束。终止态进程释放用户区数据、保留内核区数据,等待父进程回收内核区数据。进程可以从任何状态进入终止态,通常在运行态结束。

注:为什么终止态进程不释放内核区数据? 内核区数据保存进程结束状态信息,如果进程异常结束,父进程有可能需要获取其结束状态信息,进行异常处理。

在这里插入图片描述

三态模型
  • 三态模型就绪态运行态阻塞态
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值