C++程序运行原理
Linux将虚拟存储器高端的1/4留给内核,剩下3/4全留给用户进程。虚拟存储器上中的程序主要由以下几个重要组成部分:1。进程控制块(process control block,简称PCB)PCB中保存了进程hello的运行时的存储器图像和寄存器信息,它帮助操作系统在内存中找到我们的hello程序,如果没有它,hello只是和其它程序杂乱无章地分布在内存中就乱套了。
2。栈(stack)和堆(heap)程序中的自动变量都位于栈上,而堆则用来让程序员自己手动分配(malloc)和释放(free)的内存空间,如果程序员忘了释放,则有垃圾收集器gc代劳。除此以外,栈还是程序转移中一个很重要的概念,程序的返回地址通常也保存在栈上。
3。文本段(text segment)和数据段(data segment)所谓的文本段和数据段对应的就是程序的代码部分和全局变量,把程序的代码和数据分开处理是有好处的,比如我们在windows打开好几个word,这些进程只是数据段不同罢了(它们都拥有相同的代码),因此内存中永远只要有一份word的代码就行了。
4。共享库的映射区域操作系统通过将共享的对象映射到虚拟存储器的“共享区域”来使得代码能够共享,一方面提高存储器的利用率,一方面可以使得进程能够共享一些数据。
答:C编的不就是EXE文件吗? 在平台里编译成EXE就可以执行了。详情>>
答:详情>>
问:我怎么可以调节我的心理我以前是一个工作很出色了男性,2003以后我的工作和生活就...
答:朋友你好!因为一时的不顺而失落消沉一时这是难免的,人人都会碰到!但要及时的调整自己的心态,及时从谷底向上爬!我觉得你应该多参加一些论坛,多参加一些活动和聚会,比...详情>>
问:蝎子蛰伤被蝎子蛰伤,麻痒.有什么偏方吗?最好用日常生活中随手可得的东西.先谢了.
答:白矾适量.水化开.涂于伤处,可立即止痛消肿. 此方用于蝎子蛰伤,局部肿痛者.详情>>