Linux---线程基础

一、线程的概念

1、进程和线程的区分

进程:运行起来的程序。(进程=内核数据结构+代码和数据)--->操作系统:承担分配资源的基本实体。

线程:线程是进程内部的执行分支。

Linux"线程"在进程内部运行,本质是在进程的地址空间内运行。

我们一起学习的进程,本质:内部只有一个线程的进程~,进程内部只有一个执行分支。

进程=多个线程+地址空间+页表+代码和数据

代码段是一整块,没被切开

但每个线程,只跑其中的某一段代码

所以:每个线程执行的就是正文代码的一部分

2、TCB

TCB---->Tread Ctrl Block ---->线程控制块,在OS中,单独为线程设计TCB,

Linux复用进程相关的数据结构,task_struct。 用"进程"北河结构模拟实现"线程效果"。

3、注意

在CPU角度,没有进程,只有执行流!!!(线程)----->轻量级进程

执行流(粒度)<=进程

在linux系统中:执行流==轻量级进程,进程=一个或者多个轻量级进程+其他资源

Linux中,在这里我们不说线程,只有进程和轻量级进程。

二、创建一个轻量级进程(线程)

pthread_create

如下图:是同一个进程

完美验证了线程的核心特性:多个线程共享同一个进程 ID,属于同一个进程。

三、再谈虚拟地址空间(页表+虚拟地址+物理地址)

物理内存管理

物理内存管理其思想是将虚拟内存下的逻辑地址空间分为若干页,将物理内存空间分为若干页框,通过 页表便能把连续的虚拟内存,映射到若干个不连续的物理内存页。这样就解决了使用连续的物理内存 造成的碎片问题。

struct page mem1048576;

  • 物理内存侧 :被划分成一个个大小固定的单元,叫页框(Page Frame,也叫页帧),Linux 下默认大小就是 4KB。
  • 磁盘侧 :文件系统里,数据存储的基本单元叫块(Block),常见的默认大小也是 4KB。
  • 1:1 对应:内存和磁盘之间交换数据(比如加载程序、读写文件)时,都是以 4KB 为单位批量传输的,这就是图里 "1:1" 箭头的含义。

操作系统把物理内存切成 4KB 的页框,磁盘也以 4KB 为块,两者直接 1:1 交换;每个页框都有一个 struct Page 来记录状态,这就是物理内存管理的基础。

相关推荐
星恒随风15 小时前
MySQL 从零入门(五):MySQL 内置函数详解——日期、字符串、数学函数与实战案例
linux·数据库·笔记·sql·mysql
可乐ea19 小时前
智能体记忆该拆成几层:笔记、记忆表示与注入上下文
服务器·数据库·笔记·ai智能体·提示词工程·上下文工程·记忆系统
唐墨12320 小时前
linux kernel 比较数据大小的宏定义
linux·算法
程序开发阿元20 小时前
密码不进工具:一个独立开发者的服务器凭据管理办法
linux·ssh
分布式存储与RustFS1 天前
群晖 NAS 被 C3RB3R 锁了:本地备份一起被加密,RustFS 对象锁为什么删不掉
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
真好啊又活了一天1 天前
服务器和虚机配置IPV6
运维·服务器·github
zixu_star1 天前
定时任务是什么?从日常自动化到 AI 应用,软件如何自动执行任务?
运维·人工智能·自动化
AR-26710-1 天前
Linux Day33——定时任务+lvm
linux·运维
墨痕诉清风1 天前
SSRF漏洞实战记录+OSS桶命令执行+MCP漏洞
linux·服务器·数据库
byte轻骑兵1 天前
实战 4:BlueZ 源码中添加自定义设备过滤规则
linux·物联网·bluez·电脑蓝牙·嵌入式蓝牙