05 2013 档案

摘要:SA****6343 孙洪菠对进程的创建与可执行程序的加载总结如下: linux系统通过函数fork()、exec()来创建一个新的进程,更确切的说,这两个函数是分别用于进程的创建和进程修改,函数fork()用来创建一个新的进程,该进程几乎是当前进程的一个完全拷贝;函数族exec()用来启动另外的进程以取代当前运行的进程。一、进程的创建过程: Linux中创建进程的调用fork实际上是调用do_fork(),do_fork在做一些预处理之后,实际上是调用copy_process()函数复制进程。copy_process... 阅读全文
posted @ 2013-05-30 23:10 basuny 阅读(545) 评论(0) 推荐(0)
摘要:Linux系统中进程堆栈的使用Linux 0.12系统中共使用了4种堆栈。第1种是系统引导初始化时临时使用的堆栈;第2种是进入保护模式之后提供内核程序初始化使用的堆栈,位于内核代码地址空间固定位置处。该堆栈也是后来任务0使用的用户态堆栈;第3种是每个任务通过系统调用,执行内核程序时使用的堆栈,我们称之为任务的内核态堆栈。每个任务都有自己独立的内核态堆栈;第4种是任务在用户态执行的堆栈,位于任务(进程)逻辑地址空间近末端处。使用多个栈或在不同情况下使用不同栈的主要原因有两个。首先是由于从实模式进入保护模式,使得CPU对内存寻址访问方式发生了变化,因此需要重新调整设置栈区域。另外,为了解决不同CP 阅读全文
posted @ 2013-05-30 22:36 basuny 阅读(303) 评论(0) 推荐(0)
摘要:X~b(n,p),其中n≥1,0<p<1. P{X=k}=C(n,k)*p^k*(1-p)^(n-k),k=0,1,...,n. EX=np,DX=np(1-p). 最简单的证明方法是:X可以分解成n个相互独立的,都服从以p为参数的(0-1)分布的随机变量之和: 证明方法: X=X1+X2+...+ 阅读全文
posted @ 2013-05-17 13:06 basuny 阅读(2012) 评论(0) 推荐(0)
摘要:SA****6343 孙洪菠 信息安全一、C程序的编译过程1.1 C程序的编译过程: GCC接受example.c作为输入,最后生成可执行代码example的看似简单的流程所经历的复杂步骤 编译预处理:读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理; 编译阶段:通过词法分析和语法分析,在确认所有的指令都符合语法规则后,将其翻译成等价的中间代码表示或汇编代码; 汇编阶段:把汇编代码翻译成目标机器指令; 链接:将有关的目标文件彼此连接。1.2 源文件Example.c 1 //Exa... 阅读全文
posted @ 2013-05-16 20:21 basuny 阅读(335) 评论(0) 推荐(0)