1,一个基于Avalon接口的系统会包含很多功能模块,这些功能模块就是Avalon存储器映射外设,通常简称Avalon外设。所谓存储器映射外设是指外设和存储器使用相同的总线来寻址,并且CPU使用访问存储器的指令也用来访问I/O设备。为了能够使用I/O设备,CPU的地址空间必须为I/O设备保留地址。2...
分类:
其他好文 时间:
2014-12-15 19:01:34
阅读次数:
2312
线程是进程的一条执行路径,它包含独立的堆栈和CPU寄存器状态,每个线程共享所有的进程资源,包括打开的文件、信号标识及动态分配的内存等。一个进程内的所有线程使用同一个地址空间,而这些线程的执行由系统调度程序控制,调度程序决定哪个线程可执行以及什么时候执行线程。线程有优先级别,优先权较低的线程必须等到优...
分类:
编程语言 时间:
2014-12-11 23:53:21
阅读次数:
222
8086CPU地址总线宽度为20, 也就是说一个内存物理地址是5位,内存地址空间为1Mb;数据总线为16位;寄存器为16位。16位结构的CPU包括以下特性:1,运算符最多处理16位数据。2,寄存器最大宽度为16位。3,寄存器与运算器之间的通路是16位。这里就出现了一个问题,如果由16位推出20位的物...
分类:
其他好文 时间:
2014-12-11 15:18:03
阅读次数:
214
通常程序访问的地址都是虚拟地址,用32位操作系统来讲,访问的地址空间为4G,linux将4G分为两部分。如图1所示,其中0~3G为用户空间,3~4G为内核空间。通过MMU这两部分空间都可以访问到实际的物理内存。
进程在用户态只能访问0~3G,只有进入内核态才能访问3G~4G
*进程通过系统调用进入内核态
*每个进程虚拟空间的3G~4G部分是相同的
*进程从用...
分类:
系统相关 时间:
2014-12-10 16:17:30
阅读次数:
278
几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种:(1)I/O映射方式(I/O-mapped)典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I...
分类:
系统相关 时间:
2014-12-08 21:03:19
阅读次数:
365
ASLR:
Address space layout randomization:地址空间布局随机化,是参与保护缓冲区溢出问题的一个计算机安全技术。是为了防止攻击者在内存中能够可靠地对跳转到特定利用函数。ASLR包括随机排列程序的关键数据区域的位置,包括可执行的部分、堆、栈及共享库的位置。
历史:
在1997年,Memco软件公司实现了一个有限的堆栈随机化作为SeOS访问控制产品的一部...
分类:
其他好文 时间:
2014-12-08 00:55:02
阅读次数:
438
进程和线程 进程概念的两个特点: 资源所有权:一个进程包括一个存放进程映像(包括程序,数据,栈和进程控制块)的虚地址空间。进程拥有对资源的控制和所有权,包括主存,I/O通道,I/O设备和文件等; 调度/执行:一个进程沿着通过一个或者多个程序的一条执行路径执行,其执行过程可能与其他进程的执行过程...
分类:
编程语言 时间:
2014-12-04 17:31:24
阅读次数:
322
通常通过读写设备寄存器对设备进行编程,在X86系统上,有专门的IO指令进行编程,在其他诸如MIPS、SPARC这类系统上,通过将设备的寄存器映射到内存地址空间直接使用读写内存的方式对设备进行编程。 Radeon显卡提供两种方式对硬件进行编程,一种称为“推模式”(push mode)即直接写寄存...
分类:
系统相关 时间:
2014-11-29 08:24:23
阅读次数:
412
1、什么是进程?狭义定义:进程就是一段程序的执行过程。广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。在传统操作系统中,进程作为资源分配和独立运行的基本单元。2、每个进程的地址空间都一样吗?地址空间都包括哪些内容?每一个进程都有它自己的地址空间,一般情况下,包括文本区域(t...
分类:
编程语言 时间:
2014-11-28 09:55:39
阅读次数:
173
1.相较于线程,进程所使用的系统资源更多。其原因在于地址空间。为一个进程创建一个虚拟的地址空间需要大量系统资源。线程只有一个内核对象和一个栈。 2.线程的入口函数 DWORD WINAPI ThreadFunc(PVOID pvParam){ DWORD dwResult = 0; ... retu...
分类:
编程语言 时间:
2014-11-28 01:02:21
阅读次数:
218