下载地址:网盘下载 备用地址:网盘下载 内容简介编辑《Linux内核设计与实现(原书第3版)》基于Linux 2.6.34内核详细介绍了Linux内核系统,覆盖了从核心内核系统的应用到内核设计与实现等各方面的内容。《Linux内核设计与实现(原书第3版)》主要内容包括:进程管理、进程调度、时间管理和 ...
分类:
系统相关 时间:
2018-10-13 21:40:13
阅读次数:
233
Linux内核之进程地址空间 内核中的函数以相当直接了当的方式获得动态内存: __get_free_pages 或 alloc_pages从分区页框分配器中获得页框; kmem_cache_alloc或kmalloc使用slab分配器为专用或通用对象分配块; vmalloc获得一块非连续的内存块; ...
分类:
系统相关 时间:
2018-09-12 11:12:54
阅读次数:
158
虚拟内存,操作系统内核为了对进程地址空间进行管理(process address space management)而精心设计的一个逻辑意义上的内存空间概念。 内核会为系统中每一个进程维护一份相互独立的页映射表 物理内存,共享内存:https://blog.csdn.net/u012398613/a ...
分类:
系统相关 时间:
2018-07-29 19:02:36
阅读次数:
158
fork和vfork分析: 在fork还没有实现copy on write之前,Unix设计者很关心fork之后立即执行exec所造成的地址空间浪费,也就是拷贝进程地址空间时的效率问题,所以引入vfork系统调用。 vfork有个限制,子进程必须立刻执行_exit或者exec函数。 即使fork实现 ...
分类:
系统相关 时间:
2018-07-21 22:38:17
阅读次数:
207
1.排序的分类,冒泡排序和快排的实现 2.快排的最差情况: 经典快排总拿第一个数进行划分,这样在数组有序的情况下,每次划分都得到最坏的结果,都是左边 n-1个数,右边0个数,每次划分都只能减少一个数,T(n) = T(n-1) + 1;快排将退化成冒泡排序。 解决办法是:随机化算法,随机选取一个元素 ...
分类:
其他好文 时间:
2018-07-20 23:41:20
阅读次数:
286
一只菜鸟横空出世,码农世界闯一闯,每天进展多一丢丢。 brk()与sbrk()函数的学习与使用 brk()与sbrk()函数定义如下: #include <unistd.h> int brk(boid *addr); addr:把内存末尾指针设置为addr.返回值:0表示成功,非0表示失败 void ...
分类:
其他好文 时间:
2018-07-05 13:55:18
阅读次数:
178
Posix共享内存有两种非亲缘进程间的共享内存方法:1). 使用内存映射文件,由open函数打开,再由mmap函数把返回的文件描述符映射到当前进程空间中的一个文件。2). 使用共享内存区对象,由shm_open打开一个 Posix IPC名字。再由mmap把返回的描述符映射到当前进程的地址空间。Po ...
分类:
系统相关 时间:
2018-06-25 22:54:02
阅读次数:
299
前一篇博客说了怎样通过命名管道实现进程间通信,但是要在windows是使用命名管道,需要使用python调研windows api,太麻烦,于是想到是不是可以通过共享内存的方式来实现。查了一下,Python中可以使用mmap模块来实现这一功能。 Python中的mmap模块是通过映射同一个普通文件实 ...
分类:
编程语言 时间:
2018-04-25 18:55:39
阅读次数:
187
一、虚拟内存 先来看一张图(来自《Linux内核完全剖析》),如下: 分段机制:即分成代码段,数据段,堆栈段。每个内存段都与一个特权级相关联,即0~3,0具有最高特权级(内核),3则是最低特权级(用户),每当程序试图访问(权限又分为可读、可写和可执行)一个段时,当前特权级CPL就会与段的特权级进行比 ...
分类:
系统相关 时间:
2018-02-26 15:03:02
阅读次数:
221
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。 采用共享内存通 ...
分类:
其他好文 时间:
2018-02-25 11:31:14
阅读次数:
212