一、多线程 进程一般作为资源的组织单位,是计算机程序的运行实例,表示正在执行的指令,有自己独立的地址空间,包含程序内容和数据,进程间资源和状态相互隔离。 线程是程序的执行流程,CPU调度执行的基本单位,...
分类:
编程语言 时间:
2014-08-04 11:18:27
阅读次数:
249
//接前一章,本节主要介绍线性区以及相关线性区的操作。
线性区
Linux通过类型为vm_area_struct的对象实现线性区。
vm_area_struct:
struct vm_area_struct {
struct mm_struct * vm_mm; /* The address space we belong to. */
unsigned long vm_start...
分类:
系统相关 时间:
2014-08-03 10:21:55
阅读次数:
497
1.进程的基本概念 1.1操作系统有三大抽象概念: a)进程:程序的执行过程; b)文件: IO; c)虚拟内存:可用的地址空间; 1.2 进程在内核中是一种数据结构 task_struct(定义见/usr/src/linux-headers-3.8.0-29/include/...
分类:
系统相关 时间:
2014-08-02 23:19:24
阅读次数:
378
1.概述 共享内存区是IPC中最快的,当内存区映射到共享它的进程的地址空间,进程间数据的传递就不再涉及内核。 但是这需要某种形式的同步,最常用的是信号量。 不再涉及内核:进程不再通过执行任何进入内核的系统调用来彼此传递数据。内核必须建立允许各个进程共享该内存区的内存映射关系,然后一值管理该内存区。 ...
分类:
其他好文 时间:
2014-08-01 22:48:02
阅读次数:
299
1. 在 可执行文件 能够调用 DLL 之前,必须先把 DLL 载入到进程的地址空间中。 有两种载入 DLL 的方式: 隐式载入时链接、显式运行时链接 2. DLL 函数创建的任何对象都为调用线程或进程所有——DLL绝对不会拥有任何对象。 举个例子,如果 DLL 中一个函数调用了 VirtualAl...
分类:
其他好文 时间:
2014-07-31 16:48:06
阅读次数:
169
普通文件被映射到进程地址空间后,进程可以像访问普通内存一样对文件进行访问,不必再调用read(),write()等操作。刷新变化函数msync()进程在映射空间的对共享内容的改变并不直接写回到磁盘文件中,往往在调用munmap()后才执行该操作。可以通过调用msync()函数来实现磁盘文件内容与共享...
分类:
其他好文 时间:
2014-07-31 16:42:56
阅读次数:
151
如何向其他线程的地址空间中注入代码并在这个线程的上下文中执行之?目录:●导言●Windows 钩子(Hooks)●CreateRemoteThread 和LoadLibrary 技术○进程间通讯●CreateRemoteThread 和 WriteProcessmemory 技术○如何使用该技术子类...
分类:
其他好文 时间:
2014-07-31 16:23:16
阅读次数:
315
nginx进程间的通信
进程间消息传递
共享内存
共享内存还是Linux下提供的最基本的进程间通信方式,它通过mmap和shmget系统调用在内存中创建了一块连续的线性地址空间,而通过munmap或者shmdt系统调用可以释放这块内存。使用共享内存的好处是当多个进程使用同一块共享内存时,在任何一个进程修改了共享内存中的内容后,其他进程通过访问这段共享内存都能够得到修改后的内容。
Nginx...
分类:
其他好文 时间:
2014-07-29 14:28:38
阅读次数:
338
Windows进程
进程是一个容器,包含程序执行需要的代码、数据、资源等信息,
windows进程的特点:
每个进程都有自己的ID号
每个进程都有自己的地址空间,进程之间无法访问对方的地址空间。
每个进程都有自己的安全属性
每个进程至少包含一个线程。
获取和释放环境信息
GetEnvironmentStrings
FreeEnvironmentStrings
获取或设置 本程序...
分类:
编程语言 时间:
2014-07-28 15:55:23
阅读次数:
283
进程是正在执行的一个程序或命令,每一个进程都有自己的地址空间,并占有一定的系统资源。感性的认识,进程就是一个正在运行的程序
分类:
系统相关 时间:
2014-07-28 14:59:03
阅读次数:
268