发信人: supermario()
整理人: wenbobo(2002-12-06 22:56:22), 站内信件
|
Windows 技术基本定义。
WINAPI:Win32应用程序编程接口,是用于Microsoft Windows操作系统家族
的主要编程接口,Microsoft Windows操作系统家族包括Windows NT,Microsoft
Windows 9x(win95,win98)以及Microsoft Windows CE,每个操作系统实现了
Win32的不同子集,从很大程度上讲,Windows NT是所有Win32实现的超集。
目前来说,Win32是主要的接口,它提供了对基本的Windows NT系统服务的
最大程度的访问。因为为了保持16位与32位API的兼容,所以在接触Win32 API
时会发现很多函数名称与接口看起来很矛盾。
Win32 API函数:Win32中文档化,可调用的子程序,例如:CreatePorcess。
DLL(动态链接库)作为二进制映像链接的,可调用的子例程集。该二进制
映像可被使用这些子例程的应用函数动态加载,例如MSVCRT.DLL
进程和线程:
看上去程序和进程很相似,但是它们在本质上是不同的。程序是指静态的
指令序列,而进程是为了执行该程序而保留的资源集。
Windows进程的组成如下:
1、一个可执行程序,它定义了初始代码和数据。
2、一个专用的“虚拟地址空间“,它是进程能够使用的一组虚拟内存地址。
3、系统资源,例如信号量、通信端口和文件,它们是在程序执行的过程中,
当线程打开这些资源时操作系统分配给进程的。
4、称为“进程ID”的唯一标示符。
5、至少一个执行线程。
线程是Windows调度执行的进程内的实体。如果没有线程,进程的程序就无法
运行。线程包括下列基本组件:
1、表示处理器状态的一组易失寄存器的内容。
2、两个由线程使用的堆栈,一个在核心态时使用,另一个在用户态时使用。
3、供子系统、运行时库和DLL使用的专用存储区。
4、称为“线程ID”的唯一标示符(进程ID和线程ID产生自不同的命名空间,
不会重叠。
1、2、3项统称为线程的描述表。进程内的每个线程都共享进程的虚拟地址
空间(加上属于该进程的剩余资源),进程中的所有线程都可以从彼此的内存
中读取和写入。但是线程不能引用其他进程中的地址空间,除非其他线程把它
专用的地址空间的一部分作为“共享内存区”(在Win32 API中称为“文件映射
对象”)
在Windows中,实际执行的总是进程中的一个线程。
除了专用地址空间和一个或多个线程外,每个进程还有一个安全标识和一个
打开的对象句柄的列表,如文件、共享内存区、同步对象(互斥体、事件、
信号量)
-- 点解,点解啊?!!(摧胸顿足状)
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.102.129.238]
|
|