计算机操作系统 内存管理常见问题(菜鸡自学,非专业)
1.为什么要有内存管理?
首先,无论是单片机还是计算机,在进行运算时都需要从内存中获取数据资源,如何去找到正确的数据地址,这就需要内存管理。
其次,计算机相比于单片机,可以同时运行的程序(进程)更多,进程中的变量、程序都需要访问内存中的物理地址。但是物理地址是唯一的,要想保证物理地址不冲突,就设计出了虚拟内存(类似于相对地址)来方便内存管理,由内存管理单元负责将虚拟地址映射到真实物理地址。
2.虚拟内存有什么用?
1.虚拟内存可以扩大计算机的内存空间。
2.每个进程都有自己的页表,所有其虚拟内存空间是独立的,这解决了多进程地址冲突的问题。
3.页表还有标记属性。
3.内存分段是什么?会导致什么问题?
内存分段就是内存管理中的一种映射模式,它通过段基地址和偏移量来确定分段位置。
内存分段会到导致:
1.外部内存碎片(进程间内存碎片),即进程A、进程B、进程C运行时,进程B退出但是进程D占用空间比进程B大,导致进程D进不来,进程B原有空间浪费的问题。
2.内存交换效率低。面对问题1,进程C需要从内存移动到硬盘,再重新写回进程A旁边,这样才能给进程D腾出空间,这导致了进程C的频繁读写,浪费了资源。