摘要: 进程四要素 有一段程序代其执行 有进程专用的系统堆栈空间 在内核有task_struct数据结构 进程有独立的额存储空间,拥有专有的用户空间 如果具备前三点缺少第四条,称为“线程”; 如果完全没有用户空间,称为“内核线程”; 如果共享用户空间,称为“用户线程”。 进程生命周期 运行 等待:可以运行, 阅读全文
posted @ 2022-01-02 17:45 卧栏听风 阅读(318) 评论(0) 推荐(0)
摘要: 内存映射原理 物理地址空间 处理器在系统总线上看到的地址。 使用RISC(Reduced Instruction Set Computer RISC 精简指令集)的处理器通常只实现一个物理地址空间,外围设备和物理内存使用统一的物理地址空间。有些处理器架构把分配给外围设备的物理地址区域称为设备内存。 阅读全文
posted @ 2022-01-16 01:57 卧栏听风 阅读(603) 评论(0) 推荐(0)
摘要: 内存管理架构 内存管理子系统架构可以分为:用户空间、内核空间及硬件部分3个层面。 用户空间:应用程序使用malloc()申请内存资源/free()释放内存资源。 内核空间:内核总是驻留在内存中,是操作系统的一部分。内核空间为内核保留, 不允许应用程序读写该区域的内容或直接调用内核代码定义的函数。 硬 阅读全文
posted @ 2022-01-07 23:46 卧栏听风 阅读(193) 评论(0) 推荐(0)
摘要: 内核内存布局 64位Linux一般使用48位来表示虚拟地址空间,43位表示物理地址, 通过命令:cat /proc/cpuinfo。 cat /proc/meminfo ARM64架构处理器采用48位物理寻址机制,最大可寻找256TB的物理地址空间。对于目前应用完全足够,不需要扩展到64位的物理寻址 阅读全文
posted @ 2022-01-06 23:15 卧栏听风 阅读(355) 评论(0) 推荐(0)
摘要: RCU机制 RCU英文全称为Read-Copy-Update,顾名思义就是 “读 - 拷贝-更新”,是内核中重要的同步机制。 RCU原理 RCU记录所有指向共享数据的指针的使用者,当要修改该共享数据时,首先创建一个副本,在副本中修改。所有读访问线程都离开读临界区之后 ,指针指向新的修改后副本的指针, 阅读全文
posted @ 2022-01-05 22:35 卧栏听风 阅读(642) 评论(0) 推荐(0)
摘要: 基础部分 三种调度策略 SCHED_OTHER 分时调度策略 SCHED_FIFO 实时调度策略,先到先服务 SCHED_RR 实时调度策略, 时间片轮转 RR和FIFO属于实时任务。创建时优先级大于0(1-99)。按照可抢占优先级调度算法进行。就绪态的实时任务立即抢占非实时任务。 两个函数可以获得 阅读全文
posted @ 2022-01-05 00:20 卧栏听风 阅读(462) 评论(0) 推荐(0)
摘要: 实时调度类源码分析 Linux 实时进程与普通进程的根本不同之处,系统中有一个实时进程且可运行,调度器总是会选择它,除非另有一个优先级更高的实时进程。 SCHED_FIFO:没有时间片,在调度器被选择之后,可以运行任意长时间; SCHED_RR:有时间片,其值在进程运行时会减少。 实时调度实体sch 阅读全文
posted @ 2022-01-03 22:53 卧栏听风 阅读(355) 评论(0) 推荐(0)
摘要: 调度器分析 调度器 内核中安排进程执行的模块,用以切换进程状态。 做两件事:选择某些就绪进程来执行;打断某些执行的进程让其变为就绪状态。 分配CPU时间的基本依据:进程优先级。 上下文切换(context switch):将进程在CPU中切换执行的过程,内核承担 此任务,负责重建和存储被切换掉之前的 阅读全文
posted @ 2022-01-03 17:57 卧栏听风 阅读(455) 评论(0) 推荐(0)
摘要: 内核特征 组织形式为整体式结构 进程调度方式简单有效 支持内核线程(守护进程) 支持多种平台的虚拟内存管理 虚拟文件系统 模块机制 增加系统调用 面向对象 好处 提升研发水平 开发操作系统 计算机领域研究 性能优化 系统结构 所处位置 子系统间关系 数据结构 task_struct: task数组( 阅读全文
posted @ 2021-12-28 22:28 卧栏听风 阅读(188) 评论(0) 推荐(0)