进程 线程 模块

以下解释出具《深入浅出MFC》——侯捷 译

模块——如果我们能够知道操作系统如何看待模块和进程,就能够给出具体的答案。一段可执行的程序(包括EXE和DLL),其程序代码、数据、资源;被加载到内存中,由系统静置的数据结构来管理它,就是一个,这里所有的数据结构,名为Module/'mɑdʒul/ (模块、组件) Database (MDB),其实就是PE格式中的PE表头,你可以从WINNT.H文件中找到一个IMAGE_NT_HEADER结构。

进程——进程主要表达“拥有权”的观念,线程则主要表达模块中的程序代码的“执行事实”。进程拥有地址空间(由memory context决定)、动态配置而来的内存文件线程和一系列的模块。操作系统使用一个所谓的Process Database(PDB)数据结构,来记录(管理)他所拥有的一切。

线程——线程则主要表达模块中的程序代码的“执行事实”。系统也是一个特定的数据结构(Thread Database ,TDB)记录线程的所有相关数据,包括线程局部储存空间(Thread Local Storage,TLS)、消息队列,Handle 表格,地址空间(Memory Context)等等。

最初,进程是以一个线程(称为主线程,primary thread)作为开始,如果需要,进程可以产生更多的线程(利用CreateThread),让CPU 在同一时间执行不同段落的码。当然,我们都知道,在只有一颗CPU的情况下,不可能真正有多任务的情况发生,“多线程同时工作”的幻觉主要是靠调度器来完成——它以一个硬件定时器和一组复杂的游戏规则,在不同的线程之间做快速切换操作,




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值