摘要:1. 描述线程与进程的区别?进程是系统所有资源分配时候的一个基本单位,拥有一个完整的虚拟空间地址,并不依赖线程而独立存在。进程可以定义程序的一个实例,但它只是占据应用程序所使用的地址空间。为了让进程完成一定的工作,进程必须至少占有一个线程,这个线程即为主线程,默认程序的工作都在这个主线程中完成,可以通过程序创建多个线程,使多个线程可以同时运行(多CPU支持下),这就是多线程技术。线程(Thread)与进程(Process)二者都定义了某种边界,不同的是进程定义的是应用程序与应用程序之间的边界,不同的进程之间不能共享代码和数据空间,而线程定义的是代码执行堆栈和执行上下文的边界。同一进程中的不同线
阅读全文
摘要:所指为XP系统,分为四个阶段,所需要用到的文件包括ntldr.exe(NTloader)、NTDetect.com、boot.ini、ntoskrnl.exe(NTosKernel.exe)、NTbootDD.exe、Bootsect.exe引导阶段初始化引导载入程序——首先运行的是ntldr.exe,将处理器的实模式(RealMode:内存钱640k留给MSDOS,剩余的当做扩展内存)改为 32位平坦处理模式(flat memory mode:可以使用计算机上安装的所有内存)。载入“微型文件系统驱动”,该驱动能使XP读取NTFS和FAT/FAT32上的文件。选择操作系统——根据boot.in
阅读全文
摘要:C++里面编译的单位是compile unit,也就是经过预处理之后的源文件,这包括宏的处理,以及include文件的替换等。一般来说,h文件用于函数和变量的声明,而cpp文件则用于定义。对于C++编译环境而言,他们都不过是操作系统内的文件,h文件可以include cpp文件,cpp文件也可以include h文件。他们的区别是人们在编译/链接过程中为了方便的强加进去的。单个的h文件也可以作为一个compile unit,但是如果h文件里面没有函数定义,那么编译器除了解析一遍函数原型,什么都干不了,不会生成对应的目标代码;如果h文件里面包含函数定义,这又分两种:内联函数和非内联函数。下面分别
阅读全文