在内存管理中存在这两类算法:一类是内存分配算法,一类是页面置换算法内存分配算法:是指怎么从连续的逻辑地址空间上分配内存地址给进程。常见内存分配算法及优缺点如下: (1)首次适应算法。使用该算法进行内存分配时,从空闲分区链首开始查找,直至找到一个能满足其大小要求的空闲分区为止。然后再按照作业的大小,....
分类:
编程语言 时间:
2014-11-08 22:04:20
阅读次数:
408
IPv6地址介绍2008 年 04 月 10 日1. 认识IPv6地址IPv4地址是类似 A.B.C.D 的格式,它是32位,用\".\"分成四段,用10进制表示;而IPv6地址类似X:X:X:X:X:X:X:X的格式,它是128位的,用\":\"分 成8段,用16进制表示;可见,IPv6地址空间相...
分类:
其他好文 时间:
2014-11-08 16:31:58
阅读次数:
139
1. 内存管理区
为什么分成不同的内存管理区?
ISA总线的DMA处理器有严格的限制:只能对物理内存前16M寻址。
内核线性地址空间只有1G,CPU不能直接访问所有的物理内存。
ZONE_DMA 小于16M内存页框
ZONE_NORMAL 16M~896M内存页框
ZONE_HIGH...
分类:
系统相关 时间:
2014-11-06 17:40:56
阅读次数:
359
进程的定义:一个其中运行着一个或者多个线程的地址空间和这些线程所需要的系统资源。通俗的说就是正在运行的程序。可以使用ps -ajx查看进程,每个进程都会被分配一个唯一的数字编号,为进程标识符(PID)父进程的描述符称为(PPID),STAT表示系统进程的运行状态,其中,S表示睡眠,R表示可运行,.....
分类:
系统相关 时间:
2014-11-03 20:57:35
阅读次数:
339
文本由 www.169it.com 搜集整理 windows下的堆栈溢出攻击和unix下的,原理基本相同。但是,由于windows用户进程地址空间分配和堆栈处理有其独立的特点,导致了windows?环境下堆栈溢出攻击时,使用的堆栈溢出字符...
我们在学习C程序开发时经常会遇到一些概念:代码段、数据段、BSS段(Block Started by Symbol)、堆(heap)和栈(stack)。先看一张教材上的示意图(来源,《UNIX环境高级编程》一书),显示了进程地址空间中典型的存储区域分配情况。从图中可以看出:从低地址到高地址分别为:代...
分类:
系统相关 时间:
2014-11-01 11:38:26
阅读次数:
327
在linux中,地址空间映射是这样的,把0xc0000000~0xffffffff这1GB内核地址空间划分成2个部分低端的796MB + 高端的128MB,低端796MB就使用f映射,直接映射到物理内存的前796MB上,而高端128MB就用来随时变更g来映...
分类:
系统相关 时间:
2014-10-30 21:05:14
阅读次数:
278
对于Linux的虚拟内存的理解,这个例子算是一个很好的引导了,原文链接:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=26683523&id=3201345
《Linux内核设计与实现》15章节给出的例子更详细些。
*********************************************************...
分类:
系统相关 时间:
2014-10-28 17:59:13
阅读次数:
308
1) 用ftok()函数获得一个ID号.2) shmget()用来开辟/指向一块共享内存的函数3) shmat()将这个内存区映射到本进程的虚拟地址空间。4) shmdt()函数删除本进程对这块内存的使用5) shmctl() 控制对这块共享内存的使用1) mmap()系统调用使得进程之间通过映射同...
分类:
系统相关 时间:
2014-10-28 00:18:18
阅读次数:
387
11,进程的创建linux的进程创建可以分为两个步骤,分别为fork()和exec()函数,fork()负责创建一个子进程,和父进程的差别仅仅是PID PPID以及一些统计量,exec()函数负责读取可执行文件载入地址空间运行。fork()函数原型pid_t fork(void); 子进程返回0,父...
分类:
系统相关 时间:
2014-10-26 09:07:25
阅读次数:
324