深入理解linux+linux源码知识
文章平均质量分 90
威特
fgh431
非淡泊无以明志
展开
-
A NUMA API for LINUX*
A NUMA API for LINUX*白皮书网址添加链接描述 NUMA的优化方式是:将内存通过特定node分配,且让程序尽量快的读取这段内存。实现这种优化的首要方法是,线程通过node分配本地内存,且保证这个线程一直工作在这个node上(通过node affinity来确定)。这将会获得最低的时延,最小的内部互联开销。canci添加链接描述...原创 2020-10-18 19:29:59 · 159 阅读 · 0 评论 -
堆的地址怎么比栈还高啊?+栈和堆的地址哪个高+64位系统,调试时显示的地址为48位+linux每种变量的存储地址
文章目录堆的地址怎么比栈还高啊?栈和堆的地址哪个高64位系统,调试时显示的地址为48位堆的地址怎么比栈还高啊?#include <stdio.h>#include <stdlib.h>static int a = 0;const char* p = "wefrfg";void main(){ int temp; printf("%p\n", &temp); int* pointer = (int*)malloc(sizeof(int)*99999);原创 2020-07-26 13:23:35 · 851 阅读 · 0 评论 -
posix是啥+POSIX线程
文章目录posix是啥POSIX线程posix是啥Portable Operating System Interface,是IEEE为要在各种UNIX操作系统上运行软件,而定义API的一系列互相关联的标准的总称,正式称呼为IEEE Std 1003,而国际标准名称为ISO/IEC 9945。此标准源于一个大约开始于1985年的项目。名称是由理查德·斯托曼(RMS)应IEEE的要求而提议的一个易于记忆的名称。它基本上是Portable Operating System Interface(可移原创 2020-06-30 13:34:14 · 215 阅读 · 0 评论 -
intel手册网址
文章目录intel手册网址intel手册网址添加链接描述原创 2020-06-30 13:00:00 · 239 阅读 · 0 评论 -
轻量级进程 +SS寄存器和ESP寄存器+怎么理解linux内核栈?+用户态/内核态、用户栈/内核栈
文章目录SS寄存器和ESP寄存器SS寄存器和ESP寄存器SS寄存器:包含当前程序栈的段CS:代码段寄存器DS:数据段寄存器;SS:堆栈段寄存器。 CS:存放当前正在运行的程序代码所在段的段基值。DS:存放数据段的段基值。SS:存放堆栈段的段基值。 cs代码段地址,联合ip作为cpu指向当前正在执行的那条指令所使用,不能随意修改它。ss堆栈度段地址问联合sp定义一个答堆栈,一旦你确定了堆栈地址,ss也不能随便改变了。ds数据段地址定义一个数据段。 进程切换只发生在原创 2020-06-28 17:49:15 · 2404 阅读 · 1 评论 -
Linux的佩奇_奥弗塞特+printf_系统调用过程分析_write() putc() 函数实现
文章目录Linux的佩奇_奥弗塞特Linux的佩奇_奥弗塞特PAGE_OFFSET就是物理地址与线性地址之间的位移量。Linux的虚拟地址空间为0~4G。内核将最高的1G字节供内核使用,称为“内核空间”。将较低的3G字节,供各个进程使用,称为“用户空间)。因为每个进程可以通过系统调用进入内核,因此,Linux内核由系统内的所有进程共享。于是,从具体进程的角度来看,每个进程可以拥有4G字节的虚拟空间。本大爷发出提问:MIPS的存储空间的分布情况和这个不一样啊,这到底是是由处理器决定的还是原创 2020-06-30 10:43:08 · 636 阅读 · 0 评论 -
linux源码的疑问
文章目录linux代码中的.quad代表什么linux代码中的.quad代表什么是汇编伪指令 gas的指令,定义一个quard word也就是4字(8字节)原创 2020-06-16 22:46:31 · 161 阅读 · 1 评论 -
7 进程调度
文章目录调度策略Linux与任何分时系统一样,一个进程到另一个进程的快速切换,多个进程同时执行的神奇效果。进程切换本身已在第三章中讨论过,本章进程调度(schednling),什么时候进行进程切换及选择哪一个进程来运行。 三部分组成。“调度策略”理论上介绍 Linux进行进程调度所做的选择。“调度算法”实现调度所采用的数据结构和相应的算法。“与调度相关的系统调用”描述影响进程调度的系统调用 为简单,仍以80x86为例;假定系统采用统一内存访问( Uniform Mem原创 2020-08-02 22:30:46 · 279 阅读 · 0 评论 -
9 进程地址空间
文章目录内核中的函数直接了当获得动态内存,通过调用以下几种函数中的一个达到的:get_free pages()或alloc_pages()从分区页框分配器中获得页框,kmem_cache_alloc()或kmalloc()用slab分配器为专用或通用对象分配块,vmalloc()或vmalloc_32()获得一块非连续的内存区。如果所请求的内存区得以满足,返回一个页描述符地址...原创 2020-04-18 17:08:30 · 262 阅读 · 0 评论 -
14 块设备驱动程序
文章目录块设备(各类磁盘)的I/O驱动程序。块设备的特点,CPU和总线读写数据所花时间与磁盘硬件速度不匹配。块设备的平均访问时间很高。每个操作都要几毫秒才完成,主要是因为磁盘控制器必须在磁盘表面将磁头移动到记录数据的确切位置。但当磁头到达正确位置时,数据传送就可稳定每秒几十MB Linux:块设备处理程序的组织是相当复杂的。不可能对内核的块设备I/O0子系统中包含的所有函数都详细讨论;介绍一般软件体系结构。目标是描述 Linux如何支持各种块设备驱动程序的实现,而不只说明如何实现原创 2020-08-16 22:37:40 · 220 阅读 · 0 评论 -
16 访问文件
文章目录访问基于磁盘的文件是一种复杂的活动,涉及VFS抽象层(第十二章)、块设备的处理(第十四章)磁盘高速缓存的使用(第十五章)。本章内核如何用这些技术实现文件读写本章的主题既应用于磁盘文件系统的普通文件,也应用于块设备文件;将这两种文件系统都简单地统称“文件” 本章介绍的内容调用了读或写后(十二章中描述)系统所处的阶段说明每个读操作最终是如何把所需要的数据传递给用户态进程的,每个写操作最终又是如何把数据标志为“就绪”以传送到磁盘上。其他传送原创 2020-08-20 23:11:19 · 181 阅读 · 0 评论