摘要: PEP8 https://www.python.org/dev/peps/pep-0008/ Python Enhacement Proposal #8,即8 号 Python 增强规范,以下简称 PEP8。 PEP8 第 38 条规定命名必须有意义,不能是无意义的单字母。 pycharm 安装PE 阅读全文
posted @ 2021-11-07 16:43 jingmojing 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 1 import threading import time from threading import current_thread def myThread(arg1, arg2): print(current_thread().getName(),'start') print('%s %s'% 阅读全文
posted @ 2021-11-07 16:37 jingmojing 阅读(53) 评论(0) 推荐(0) 编辑
摘要: Doc: https://docs.python.org/3.10/library/index.html 日常应用比较广泛的模块是: 1. 文字处理的 re https://docs.python.org/3.10/library/re.html re: regular expression 正则表 阅读全文
posted @ 2021-11-07 16:36 jingmojing 阅读(46) 评论(0) 推荐(0) 编辑
摘要: stress, sysstat, dstat, docker apt install stress sysstat dstat apt install docker.io linux-tools-common apache2-utils bcc 在 Ubuntu 系统中安装 bcc: sudo ap 阅读全文
posted @ 2021-09-21 10:12 jingmojing 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 内核页表 和用户态页表不同,在系统初始化的时候,我们就要创建内核页表了。我们从内核页表的根 swapper_pg_dir 开始找线索。 // arch/x86/include/asm/pgtable_64.h extern pud_t level3_kernel_pgt[512]; extern p 阅读全文
posted @ 2021-07-05 23:38 jingmojing 阅读(244) 评论(0) 推荐(0) 编辑
摘要: mmap 的原理 每一个进程都有一个列表 vm_area_struct,指向虚拟地址空间的不同的内存块,这个变量的名字叫 mmap。 其实内存映射不仅仅是物理内存和虚拟内存之间的映射,还包括将文件中的内容映射到虚拟内存空间。 这个时候,访问内存空间就能够访问到文件里面的数据。而仅有物理内存和虚拟内存 阅读全文
posted @ 2021-06-30 23:49 jingmojing 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 什么情况下会发生抢占呢?最常见的现象就是一个进程执行时间太长了,是时候切换到另一个进程了。 那怎么衡量一个进程的运行时间呢?在计算机里面有一个时钟,会过一段时间触发一次时钟中断,通知操作系统,时间又过去一个时钟周期,这是个很好的方式,可以查看是否是需要抢占的时间点。 时钟中断处理函数会调用 sche 阅读全文
posted @ 2021-06-27 12:22 jingmojing 阅读(1370) 评论(0) 推荐(1) 编辑
摘要: 整个虚拟内存空间一分为二,一部分是用户态地址空间,一部分是内核态地址空间,这两部分的分界线由 task_size 来定义。 struct task_struct => struct mm_struct *mm; => unsigned long task_size; /* size of task 阅读全文
posted @ 2021-06-20 22:56 jingmojing 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 在 Linux 里面,无论是进程,还是线程,到了内核里面,统一称为任务(Task)。 Linux内核通过一个被称为进程描述符的 task_struct 结构体来管理,这个结构体包含了一个task所需的所有信息。 task_struct 定义在 include/linux/sched.h 文件中。 s 阅读全文
posted @ 2021-06-20 20:41 jingmojing 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 创建线程 #include <pthread.h> #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h> #define NUM_OF_TASKS 5 // 1. 定义线程函数 void * 阅读全文
posted @ 2021-06-20 12:59 jingmojing 阅读(83) 评论(0) 推荐(0) 编辑