【linux CentOS 7 mysql pt-query-digest 分析慢sql + profiling 分析具体SQL】教程文章相关的互联网学习教程文章

2018-2019-1 20189210 《LInux内核原理与分析》第八周作业【图】

一 、可执行程序工作原理 程序编译 预处理:gcc -E hello.c -o hello.i 编译:gcc -S hello.i -o hello.s -m32 汇编:gcc -c hello.s -o hello.o -m32 链接:gcc hello.o -o hello -m32 -static 其中用gcc -o hello.static hello.o -static静态编译出来的hello.static把C库里需要的东西也放到可执行文件里了,所以hello.static比较大。ELF(Excutable and Linking Format)是一个文件格式的标准。通过readelf-h hello查看可执行文件...

2018-2019-1 20189229 《Linux内核原理与分析》第九周作业【代码】【图】

教材内容总结 进程调度的时机中断处理过程(包括时钟中断、I/O中断、系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule(); 内核线程可以直接调用schedule()进行进程切换,也可以在中断处理过程中进行调度,也就是说内核线程作为一类的特殊的进程可以主动调度,也可以被动调度; 用户态进程无法实现主动调度,仅能通过陷入内核态后的某个时机点进行调度,即在中断处理过程中进行调度。总...

2018-2019-1 20189210 《LInux内核原理与分析》第七周作业【代码】【图】

一 、Linux内核创建一个新进程的过程 1、操作系统内核三大功能是进程管理,内存管理,文件系统,最核心的是进程管理。 2、对应的三个抽象的概念是进程,虚拟内存和文件。其中,操作系统最核心的功能是进程管理。 3、fork 被调用一次,能够返回两次。在父进程中返回新创建子进程的 pid;在子进程中返回 0 4、TASK_RUNNING有两个状态,一个是就绪态但是没有运行,另一个是运行态,这两个状态的转换依赖于内核中的调度器。 TASK_RUNNI...

2018-2019-1 20189218《Linux内核原理与分析》第七周作业【代码】

task_struck数据结构 在Linux内核中,通过task_struct这个结构体对进程进行管理,我们可以叫他PCB或者进程描述符。这个结构体定义在include/linux/sched.h中。 鉴于这个结构体的复杂,本文分成多个部分来分析它。 进程状态 进程状态由结构体中的如下代码定义:volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ 其中state的可取的值如下: /** Task state bitmask. NOTE! These bits are also* encoded in fs/...

Linux IO 监控与深入分析【代码】

https://jaminzhang.github.io/os/Linux-IO-Monitoring-and-Deep-Analysis/ Linux IO 监控与深入分析 引言 接昨天电话面试,面试官问了系统 IO 怎么分析, 当时第一反应是使用 iotop 看系统上各进程的 IO 读写速度, 然后使用 iostat 看 CPU 的 %iowait 时间占比,(%iowait:CPU等待输入输出完成时间的百分比,%iowait的值过高,表示硬盘存在I/O瓶颈)但回答并是不很全面,确实,比较久之前写过一篇 Linux iostat 使用, 很久没...

2018-2019-1 20189210 《LInux内核原理与分析》第六周作业【图】

系统调用实验(下): 将第四章的两个实验集成到MenuOS系统中,将其作为MenuOS系统的两个命令,新版本的menu中已经把两个系统调用添加进去了,只需重新克隆一个新版本的menu。使用make rootf 打开menu镜像,可以看到MenuOS菜单中新增了两条命令,time和time-asm。使用gdb跟踪系统调用内核函数sys_time 同第二个实验,打开gdb,在函数中设置断点,按c继续执行,在断点处停下来,可以用list查看这段代码。 (实验楼的环境非常卡,经常...

2018-2019-1 20189204《Linux内核原理与分析》第五周作业

第四章——系统调用的三层机制(上) 4.1用户态、内核态和中断 库函数封装系统调用,使得程序员不直接接触到系统调用,保持整个系统的稳定,避免崩溃。 1.用户态与内核态的区分 内核只能被系统调用操作,系统调用可以被API、Shell、应用程序操作,API和SHELL可以被应用程序操作 2.Intel x86 CPU的执行级别——0~3,数字越小,级别越高 OS----Ring0 驱动程序----Ring1、Ring2 应用程序----Ring3 在Linux系统中只采用了其中的0和3两个...

Linux系统IO分析工具之iotop常用参数介绍【代码】【图】

Linux系统IO分析工具之iotop常用参数介绍作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 Windows操作系统可以通过鲁大师等硬盘检测工具来查看硬盘读写速度,那么linux下测试硬盘IO读写情况怎么看?iotop是linux系统下测试硬盘IO读写的工具,本经验咗嚛以centos为例演示,iotop如何安装使用测试硬盘速度。 ? 1>.安装iotop[root@node105 ~]# yum -y install iotop2>.查看iotop的帮助信息 [root@node105 ~]# io...

2018-2019-1 20189221《Linux内核原理与分析》第四周作业【代码】【图】

2018-2019-1 20189221《Linux内核原理与分析》第四周作业 教材学习:《庖丁解牛Linux内核分析》 第 3 章 MenuOS的构造 计算机三大法宝:存储程序计算机,函数调用堆栈,中断 操作系统两把宝剑:中断上下文,进程上下文 Linux内核源代码: Linux内核使用的是第二周时下载的Linux-2.6版本 Linux内核目录:init目录下的main.c函数:start_kernel():init_task():rest_init():随书学习很有收获,也算是为实验操作做了很多准备。 实验...

2018-2019-1 20189219《Linux内核原理与分析》第三周作业

我果然还是喜欢在夜晚的时候学习呀。很安静,能够静下心来学进去。说实话,老师的书写的确实是不错的,对于基础薄弱的我来说很是适用,基本不需要什么操作系统和内核的知识,也能够把书上的知识掌握。当然,边看边动手这个是不能少的。下面回归正题。 可能由于GFW的存在,去下个对应版本的Linux内核都是坑爹的事情.我就遇到过.实验室老师用的是3.4.9版本的内核.这里如果手边没有3.4.9的内核(我就这样),但是你手边有别的内核版本...

2018-2019-1 20189205 《Linux 内核原理与分析》第三周作业【代码】【图】

操作系统是如何工作的 内核实现 本周学习内容是实现一个简单的时间片轮转多道程序内核。 首先需要在Linux虚拟机中再构建一个虚拟的x86CPU硬件平台。这个平台的构建我们利用了部分Linux 3.9.4版本源代码以及网上的内核源代码。 内核搭建好后其启动效果如下:而后,我们需要在搭建好的内核的基础上,修改内核的源程序,构建我们所需的程序内核。 首先我们增加一个mypcb.h头文件,用于定义进程控制块(PCB)的数据结构。我们知道,在操作...

20189204《Linux内核原理与分析》第三周作业【代码】【图】

OS是如何工作的 学习任务: 阅读学习教材「庖丁解牛Linux 」第2章 学习蓝墨云班课中第三周视频「操作系统是如何工作的?」,并完成实验楼上配套实验二。 云班课学习笔记: 计算机三大法宝程序存储计算机 即冯诺依曼体系结构 函数调用堆栈 高级语言可以运行的起点就是函数调用堆栈 中断机制 深入理解函数调用堆栈 堆栈的功能记录函数调用的框架 传递函数参数 保存返回值地址 提供函数内部局部变量的存储空间堆栈相关的寄存器ESP:堆...

2018-2019-1 20189206 《Linux内核原理与分析》第三周作业【代码】【图】

linux内核分析学习笔记 ——第二章 操作系统是如何工作的计算机的“三大法宝”程序存储计算机 即冯诺依曼体系结构,基本上是所有计算机的基础性的逻辑框架 函数调用堆栈 高级语言可以运行的起点就是函数调用堆栈 中断机制函数调用堆栈堆栈的具体作用记录函数调用的框架 传递函数参数 保存返回值地址 提供函数内部局部变量的存储空间堆栈相关的寄存器ESP:堆栈指针,指向堆栈栈顶 EBP:基址指针,指向堆栈栈底,在C语言中记录当前函...

20189220 余超《Linux内核原理与分析》第三周作业【代码】

操作系统如何工作的 第二章的基础知识计算机的三大法宝:存储程序计算机,函数调用堆栈机制,中断。 堆栈:堆栈是C语言程序运行时必须使用的几率函数条用路径和参数存储的空间,具体作用分为:记录函数条用的框架,传递函数参数,保存返回的地址,提供函数内部局部变量的存储空间等。 esp:是栈指针,是cpu机制决定的,push、pop指令会自动调整esp的值。 ebp:只是存取某时刻的esp,这个时刻就是进入一个函数内后,cpu会将esp的值赋...

接收RA包自动配置IPv6地址 Linux内核实现分析【图】

本文以Linux 4.4版本为例 1 RA (Router Advertisement) IPv6地址配置和IPv4地址配置不同的一点,在执行dhcp前,会先向router发送RS包,等待路由器回复RA包。host再根据RA包的内容决定是利用DHCPv6协议想router获取IPv6地址(statefull模式),还是主机自己配置IPv6地址(stateless模式)。同样,这也是IPv6协议一个突出的特点:支持网络节点的地址自动配置。 下图为需要stateless模式自动主机配置IPv6地址的RA报文可以看出当,M-...