一、前言 本文是描述Linux virtual memory运行参数的第二篇,主要是讲OOM相关的参数的。为了理解OOM参数,第二章简单的描述什么是OOM。如果这个名词对你毫无压力,你可以直接进入第三章,这一章是描述具体的参数的,除了描述具体的参数,我们引用了一些具体的内核代码,本文的代码来自4.0 ...
分类:
系统相关 时间:
2018-02-13 22:51:01
阅读次数:
223
4.1进程性能统计信息4.1.1. 内核时间VS用户时间 一个应用程序所耗时间最基本的划分是内核时间与用户时间。内核时间是消耗在Linux内核上的时间,而用户时间则是消耗在应用程序或库代码上的时间。Linux有工具,如time和ps,可以(大致)表明应用程序将其时间花费在应用程序代码上还是话费在内核代码上。4.1.2 库时间V
分类:
系统相关 时间:
2018-02-05 10:42:38
阅读次数:
207
我们会在代码中发现一些整型的名字,比如UINT、__int16、u64、int64_t,等等。 这些类型有的源自于编译器的自行扩展,有的则是来自某些编程环境(比如工作在Linux内核代码中),不一而足。 而事实上,在C++11中一共只定义了以下5种标准的有符号整型: · signed char · ...
分类:
其他好文 时间:
2018-02-04 11:13:58
阅读次数:
194
一、现代操作系统的权限分离: 现代操作系统一般都至少分为内核态和用户态。一般应用程序通常运行于用户态,而当应用程序调用系统调用时候会执行内核代码,此时会处于内核态。一般的,应用程序是不能随便进入内核态的而是需要向OS申请,因为内核态拥有更高的权限。所以当程序运行的时候,其实是有两个栈的,一个位于用户 ...
分类:
系统相关 时间:
2018-01-30 12:33:11
阅读次数:
229
machine_desc->boot_params参数保存的是u-boot传入的启动参数的地址,如果没有传入启动参数,使用如下的默认参数: 内核代码通过下面的宏保存对不同的tag的处理函数, 通过__tagtable宏定义的struct tagtable都保存在特定的数据断中, 常用的3个atag解 ...
分类:
其他好文 时间:
2017-12-25 22:10:01
阅读次数:
146
本文转载自:http://blog.csdn.net/liuhuahan/article/details/42145507 看内核代码的时候看到这个函数不理解它的具体作用 然后就上网上查,但是网上只查到英文资料,现结合 英文man手册的内容,把我自己的理解加上,因为英文 水平有限,不一定完全正确,仅 ...
分类:
其他好文 时间:
2017-12-21 18:15:54
阅读次数:
119
当一个应用程序执行系统调用而陷入内核代码执行时,则处于内核态,此时CPU执行处于特权0级的内核代码,内核代码使用当前进程的内核栈(每个进程都有自己的内核栈)。 当一个应用程序执行自己的代码时,则处于用户态,此时CPU执行处于特权3级用户代码。 从目态转换为管态的唯一途径是中断, 从管态到目态可以通过... ...
分类:
其他好文 时间:
2017-12-09 14:51:31
阅读次数:
282
实验:理解进程调度时机跟踪分析进程调度与进程切换的过程 一、实验要求 (1)理解Linux系统中进程调度的时机,可以在内核代码中搜索schedule()函数,看都是哪里调用了schedule(),判断我们课程内容中的总结是否准确。 (2)使用gdb跟踪分析一个schedule ...
分类:
系统相关 时间:
2017-11-26 22:52:12
阅读次数:
198
攥写人:李鹏举 学号:20179203 ( 原创作品转载请注明出处 ) ( 学习课程:《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC 1000029000 ) 一、实验要求: 1.理解Linux系统中进程调度的时机,可以在内核代码中搜索s ...
分类:
系统相关 时间:
2017-11-26 18:44:23
阅读次数:
155
面向对象编程介绍 面向过程编程 核心是过程,也就是流水线思维,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西,主要应用在一旦完成很少修改的地方,如linux内核,git,apache服务器等。 优点:极大降低了程序的设计复杂度 缺点:可拓展性查,改动一个 ...
分类:
其他好文 时间:
2017-11-25 11:23:22
阅读次数:
96