linux进程和内存管理了解
1.进程简介
1)运行中的一个程序的一个副本,是被载入内存的一个指令集合,是资源分配的单位
2)查看所有进程(两种):
[root@centos8 ~]# pstree -p #花括号的为线程 [root@centos8 ~]# ll /proc/ #目录里的数字其实就是进程文件 #在这些文件中含有一个名为"status"的文件,其中就显示了线程信息
1 | [root@centos8 ~] # cat /proc/711/status |
3)线程
可以把进程比作一个组织,而线程就是其中的员工,资源共享,每个线程也有私有资源比如:栈等。
4)协程
通过代码实现,可以理解为一个函数
2.进程结构
进程和进程之间会构成一个进程列表(the task lisk)由一个内存空间存储,构成一个双向循环链表,中间有指针双向连接,每个进程都存放在一个项(PCB)中。
3.进程相关概念
Page Frame:页框,用于存储页面数据,存储Page4k
查看:
1 | [root@centos8 ~] # getconf -a | grep -i size |
4.物理地址空间和虚拟地址空间
MMU:Memory Management Unit 负责虚拟地址转换为物理地址
程序在访问一个内存地址指向的内存时,CPU不是直接把这个地址送到内存总线上,而是被送到 MMU(Memory Management Unit),然后把这个内存地址映射到实际的物理内存地址上,然后通过总 线再去访问内存,程序操作的地址称为虚拟内存地址
TLB:Translation Lookaside Buffer 翻译后备缓冲区,用于保存虚拟地址和物理地址映射关系的缓存
写于2022-3-13-17:56
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话