16位操作系统是和16位CPU对应的,16位操作系统和16位程序对应的,32位操作系统是和32位CPU对应的,32位操作系统和32位程序对应的。只有对应的多少位操作系统才能运行多少位的程序,多少位的CPU才可以用多少位的操作系统。现在程序都是32位的,所以操作系统也是32位的,16位操作系统与32的区别在能有支持多少位的程序 ,多位的操作系统支持多少位的cpu。 要补充的是16位cpu可以同时执行8个2进制指令。32位cpu可以同时执行16个2进制指令.
所谓8位、16位、32位、64位等术语有时指总线宽度,有时指指令宽度(在定长指令集中),而在操作系统理论中主要是指内存寻址的宽度。如果内存的寻址宽度是16位,那么每一个内存地址可以用16个二进制位来表示,也就是说可以在64KB的范围内寻址。同样道理32位的宽度对应4GB的寻址范围,64位的宽度对应16 Exabyte的寻址范围。内存寻址范围并非仅仅是对操作系统而言的,其它类型的软件的设计有时也会被寻址范围而影响。但是在操作系统的设计与实现中,寻址范围却有着更为重要的意义。
在早期的16位操作系统中,由于64KB的寻址范围太小,大都都采用「段」加「线性地址」的二维平面地址空间的设计。分配内存时通常需要考虑「段置换」的问题,同时,应用程序所能够使用的地址空间也往往有比较小的上限。
在32位操作系统中,4GB的寻址范围对于一般应用程序来说是绰绰有余的,因而,通常使用一维的线性地址空间,而不使用「段」。