03 2024 档案

摘要:http://arthurchiao.art/blog/linux-cpu-2-zh/ 1.1 调度器:时分复用 + 任务调度 —— sched 1.3 有任务:用哪个频率执行任务?—— cpufreq 1.4 无任务:执行轻量级占坑程序 —— idle task 从原理来说,非常简单。产品经理:什 阅读全文
posted @ 2024-03-29 17:48 skyycj 阅读(1) 评论(0) 推荐(0) 编辑
摘要:http://arthurchiao.art/blog/how-does-ltrace-work-zh/ strace 是一个系统调用,也是一个信号跟踪器(signal tracer), 主要用于跟踪系统调用,打印系统调用的参数、返回值、时间戳等很多信息。 也可以跟踪和打印进程收到的信号。 在前一篇 阅读全文
posted @ 2024-03-29 17:02 skyycj 阅读(6) 评论(0) 推荐(0) 编辑
摘要:http://arthurchiao.art/blog/system-call-definitive-guide-zh/ what 系统调用是一种 程序进入内核执行任务的方式 glibc 提供的 wrapper 封装了底层代码, 如果使用这些 wrapper 函数,只需要传递相应的参数给它就可以进入 阅读全文
posted @ 2024-03-29 16:53 skyycj 阅读(2) 评论(0) 推荐(0) 编辑
摘要:/procfs 运行时文件系统 loadavg:算法与内核实现 2.2 内核基础 本文主要关注的是与计算 load 有关的几个字段, // kernel/sched/sched.h // This is the main, per-CPU runqueue data structure. struc 阅读全文
posted @ 2024-03-29 15:52 skyycj 阅读(1) 评论(0) 推荐(0) 编辑
摘要:GDB底层 -- ptrace() -> sys_ptrace() https://zhuanlan.zhihu.com/p/336922639 2.3 GDB断点原理 在某行代码处打一个断点,其实就是将该行代码的汇编 (是指令级别!!!)用INT 3中断指令代替,原来的代码被保存到“断点链表”中。 阅读全文
posted @ 2024-03-29 14:25 skyycj 阅读(15) 评论(0) 推荐(0) 编辑
摘要:http://arthurchiao.art/blog/trace-packet-with-tracepoint-perf-ebpf-zh/ Linux 允许在主机上用虚拟网卡(virtual interface)和网络命名空间(network namespace)构建复杂的网络。但出现故障时,排障 阅读全文
posted @ 2024-03-29 11:04 skyycj 阅读(7) 评论(0) 推荐(0) 编辑
摘要:转载:http://www.wowotech.net/x_project/bubblegum_uboot_porting.html U-boot移植说明 前言 U-boot相关代码 board(开发板)->machine(zynq)->arch(arm)->cpu(armv8) 移植目录结构和Kco 阅读全文
posted @ 2024-03-26 15:45 skyycj 阅读(3) 评论(0) 推荐(0) 编辑
摘要:资源分配 资源 - cpu 内存 gpu等等 个人想法 (你是设计者,你该如何思考) 分配 - 排队算法(人 供销社 自由市场(为啥没有自由市场机制)时间片拍卖)任务的轻重缓急 (进程状态切换)堵塞和完成-就不是就绪态了 FCFS(先来先服务) 谁先排队(就绪队列,链表) 短作业优先调度 SJ(P) 阅读全文
posted @ 2024-03-26 11:06 skyycj 阅读(3) 评论(0) 推荐(0) 编辑
摘要:1. 进程描述符 1.1. 进程描述符的表示和存放 进程描述符task_struct完整地描述了进程的所有信息,它由slab分配器 (小内存分配)分配产生,并存放在叫任务队列(task list)的双向循环链表中。 一文看懂slab分配器实现 https://zhuanlan.zhihu.com/p 阅读全文
posted @ 2024-03-21 19:28 skyycj 阅读(9) 评论(0) 推荐(0) 编辑
摘要:转载:https://void-star.icu/archives/601 网络栈从定义上还比较抽象。不过从功能上看,它是为了让主机之间交换数据而生的。 要实现网络栈,最原始的一个方式就是:将想发送的报文封装成帧,然后发出去就完事了。接收主机会按约定好的方式解析。不过这种存在一个问题,如果要加密怎么 阅读全文
posted @ 2024-03-21 19:10 skyycj 阅读(4) 评论(0) 推荐(0) 编辑
摘要:转载:http://www.wowotech.net/process_management/scheduler-history.html 转载:O(n)、O(1)和CFS调度器 任务调度器是操作系统一个很重要的部件,它的主要功能就是把系统中的task调度到各个CPU上去执行满足如下的性能需求: 1、 阅读全文
posted @ 2024-03-21 19:05 skyycj 阅读(4) 评论(0) 推荐(0) 编辑
摘要:在当前的Linux内核中发挥着重要的作用。RCU主要针对的数据对象是链表,目的是提高遍历读取数据的效率,为了达到目的使用RCU机制读取数据的时候不对链表进行耗时的加锁操作。这样在同一时间可以有多个线程同时读取该链表,并且允许一个线程对链表进行修改(修改的时候,需要加锁)。RCU适用于需要频繁的读取数 阅读全文
posted @ 2024-03-21 17:33 skyycj 阅读(2) 评论(0) 推荐(0) 编辑
摘要:一 简介 1 并行编程的目标 并行编程(在单线程编程的目标之上)有如下三个主要目标。 1.性能。 2.生产率。 3.通用性。 线程优化:性能与扩展 通用: 需要牢记的是,并行编程只是提高性能的方案之一。其他熟知的 方案按实现难度递增的顺序罗列如下。 1.运行多个串行应用实例。 2.利用现有的并行软件 阅读全文
posted @ 2024-03-21 13:46 skyycj 阅读(18) 评论(0) 推荐(0) 编辑