一.共享内存数据结构
对于每个共享内存区,内核维护如下信息结构,定义在, 在ubuntu中路径:/usr/include/linux/shm.h
二. System V共享内存函数:
#include
#include
int shmget(key_t key, size_t size, int shmflg);
void *shmat(...
分类:
其他好文 时间:
2015-05-24 08:55:18
阅读次数:
224
一. 共享内存介绍系统V共享内存指的是把所有共享数据放在共享内存区域(IPC shared memory region),任何想要访问该数据的进程都必须在本进程的地址空间新增一块内存区域,用来映射存放共享数据的物理内存页面。系统调用mmap()通过映射一个普通文件实现共享内存。系统V则是通过映射sh...
分类:
其他好文 时间:
2015-05-15 10:38:24
阅读次数:
258
完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等);2) Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区。在启动Oracle数据库服务器时,实际上是在服务器的内...
分类:
数据库 时间:
2015-05-08 12:42:08
阅读次数:
152
一、库函数shmget()--共享内存区的创建与寻找asmlinkage long sys_shmget (key_t key, size_t size, int shmflg)
{
struct shmid_kernel *shp;
int err, id = 0;
down(&shm_ids.sem);
if (key == IPC_PRIVATE) {
err = newseg...
分类:
系统相关 时间:
2015-04-22 20:42:24
阅读次数:
304
大多数共享内存的具体实现,都是把由不同进程之间共享的内存映射为同一段物理内存。 多个进程都把该物理内存区域映射到自己的虚拟地址空间,这些进程就都可以直接访问该共享内存区域,从而可以通过该区域进行通信。
共享内存允许两个不相关的进程访问同一段物理内存, 由于数据不需要在不同的进程间复制,所以它是在两个正在运行的进程之间传递数据的一种非常有效的方式,一个进程向共享内存区域写入数据,共享该...
分类:
系统相关 时间:
2015-04-20 20:58:51
阅读次数:
287
共享内存区域是被多个进程共享的一部分物理内存。如果多个进程都把该内存区域映射到自己的虚拟地址空间,则这些进程就都可以直接访问该共享内存区域,从而可以通过该区域进行通信。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。这块共享虚拟内存的页面,出现在每一个共享该页面的进程的页表中。但是它不需要在所有进程的虚拟内存中都有相同...
分类:
系统相关 时间:
2015-04-20 20:58:44
阅读次数:
293
内核怎样保证各个进程寻址到同一个共享内存区域的内存页面
1、page cache及swap cache中页面的区分:一个被访问文件的物理页面都驻留在page cache或swap cache中,一个页面的所有信息由struct page来描述。struct page中有一个域为指针mapping ,它指向一个struct address_space类型结构。page cache或swap cac...
分类:
系统相关 时间:
2015-04-20 20:58:37
阅读次数:
644
一.mysql体系结构和存储引擎
1.1、数据库和实例的区别
数据库:物理操作系统或其他形式文件类型的集合。在mysql下数据库文件可以是frm,myd,myi,ibd结尾的文件。
数据库实例:由数据库后台进程/线程以及一个共享内存区组成。数据库实例才是真正用来操作数据库文件的。
mysql数据库是单进程多线程的程序,与sql s...
分类:
数据库 时间:
2015-04-17 20:33:03
阅读次数:
219
SystemV共享内存机制:shmgetshmatshmdtshmctl原理及实现:systemVIPC机制下的共享内存本质是一段特殊的内存区域,进程间需要共享的数据被放在该共享内存区域中,所有需要访问该共享区域的进程都要把该共享区域映射到本进程的地址空间中去。这样一个使用共享内存的进程可以将信息写...
分类:
系统相关 时间:
2015-04-17 15:26:58
阅读次数:
222
1,mysql体系结构由数据库和数据库实例组成,是单进场多线程架构。数据库:物理操作系统文件或者其它文件的集合,在mysql中,数据库文件可以是frm、myd、myi、ibd等结尾的文件,当使用ndb存储引擎时候,不是os文件,是存放于内存中的文件。数据库实例:由数据库后台进程/线程以及一个共享内存区组成,共享内存可以被运行的后台进程/线程所共享。2,mysql文件类型Mysql主要文件类型有如下...
分类:
数据库 时间:
2015-03-04 01:06:05
阅读次数:
249