当前位置: 首页 > news >正文

【linux】在多核CPU下,好像看到不同进程在不同CPU调度

在2353这行打印的情况来看,操作系统好像给不同的进程分配不同的CPU,从上图来看,同一个进程好像基本使用的相同的CPU:

其实摸索syscall文件系统操作,本意是想找到内核文件系统中文件的创建,写入,目录创建,目录写入这样的流程。

比如:本人虚拟机中文件系统的类型是ext4

 开始是正方向摸索流程,其实这有点难(也有相当的可能性是方法不对)

开始想像的是操作系统上层的应用层创建文件,写入文件,创建目录,写入目录,在内核层肯定会调用到ext4文件系统类型对应的文件创建,写入文件,创建目录,写入目录。

但是现在的问题是我们要去找对应的这四个函数(其实最好是先只找一个,找到一个后,其他三个就比较容易了),当时根据函数名字猜测会不是是这个数据结构。

从右边的目录结构来看好像是内核里边为了适配不同文件系统的源代码。

基于猜测的结果继续打印日志:

 其实ext4_file_write_iter是可以被调到到的:

下边这个看名称好像是内核对ext4文件系统目录操作相关函数。

这是添加的打印日志:

这是从打印日志搜索到的:

在测试的时候,我们的test.sh如果把mkdir test_dir这行注释掉,从打印的日志搜索不到ext4_mkdir

如果我们把mkdir行取消注释,执行一把这个test.sh脚本,那么从日志是可以搜索到ext4_mkdir的:

 

 

找到函数入口后,下一步再找代码执行的流程,估计容易些。

测试目录创建,不知道这种测试手段是否足够严谨。

测试文件写,首先建立一个长时间下载的进程,时间太短容易退出,并且这个操作会写入文件。

 查看这个进程的ID:

清空原来的syslog日志,打开pr_info_self打印开关,过一秒然后关闭打印开关,然后把日志拷贝过来,然后再进行对日志搜索:

搜索的结果如下:

以上基本是个人观点,测试的流程不知道是否足够严谨。 

r77683962/linux-6.9.0icon-default.png?t=N7T8https://gitee.com/r77683962/linux-6.9.0/test_log/syslog_2024_07_25_10_59_15

日志地址如上。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • vue js 将对象转换为 JSON 字符串 ;将 JSON 字符串转换为对象
  • 人工智能与机器学习原理精解【9】
  • SQL进阶技巧:车辆班次问题分析
  • Typescript配置文件(tsconfig.json)详解系列四:esModuleInterop和allowSyntheticDefaultImports
  • Redis7-入门-安装
  • C#使用csvhelper实现csv的操作
  • 【数据采集与可视化案例】基于python的国家级非物质文化遗产数据采集与可视化分析
  • 【漏洞扫描器】使用nessus扫描工具扫描服务器,并生成漏扫报告
  • SpringBoot Vue用自签名证书SSL配置https,http转发到https(整理文章)
  • test1111
  • 【前端】fis框架学习
  • 大模型是如何“炼”成的?揭秘AI背后的训练秘籍!
  • 消息推送只会用websocket、轮询?试试SSE,轻松高效。
  • Linux云计算 |【第二阶段】AUTOMATION-DAY5
  • moment.js的使用方法
  • Angular 4.x 动态创建组件
  • Brief introduction of how to 'Call, Apply and Bind'
  • leetcode388. Longest Absolute File Path
  • Rancher-k8s加速安装文档
  • React-生命周期杂记
  • SpiderData 2019年2月25日 DApp数据排行榜
  • vue总结
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 关于for循环的简单归纳
  • 面试遇到的一些题
  • 批量截取pdf文件
  • 前端技术周刊 2019-01-14:客户端存储
  • 深度学习中的信息论知识详解
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 一道闭包题引发的思考
  • Android开发者必备:推荐一款助力开发的开源APP
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • ​什么是bug?bug的源头在哪里?
  • #QT(智能家居界面-界面切换)
  • $.ajax()方法详解
  • (003)SlickEdit Unity的补全
  • (4)Elastix图像配准:3D图像
  • (C#)一个最简单的链表类
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (多级缓存)多级缓存
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (二)学习JVM —— 垃圾回收机制
  • (二)延时任务篇——通过redis的key监听,实现延迟任务实战
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (南京观海微电子)——COF介绍
  • (一)80c52学习之旅-起始篇
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转载)利用webkit抓取动态网页和链接
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)