本人近期在学UCOS入手,顺便就去理解一下操作系统基本原理。
今天在网上看到了这么一句话“操作系统的服务把用户数据和应用程序装入内存中运行。“
这段话有点理解不通,我把我的见解说出来,麻烦各位高手看看我有没有想歪。
从基本的51裸机说起,譬如一个2Krom,1KRAM。
程序编译完成后都固化在ROM里面,程序运行时,CPU控制器从ROM中取出指令并执行,
全局变量和局部变量都分配在RAM中(还有些特殊寄存器),程序也就正常运行了。所以对于裸机来说,程序一直在ROM中,只是需要才取出来一条条运行,这个理解对吗?
操作系统的理解,譬如一个200KROM,2KRAM芯片,编译完成后程序大小可能是150kROM,30KRAM,
程序运行时候,MMU把程序分割成一块块,每一块ROM代码都放进RAM中运行,譬如首块ROM和RAM共只占1K AM空间
这样就等于实现了虚拟内存拓展,第一块结束时再把下一块放进内存,是不是这个意思? |