内存,缓冲区和堆栈有什么区别?
这个问题在这里已经有了答案:
缓冲区临时存储数据,而数据是从一个地方移动到另一个地方(即输入设备到输出设备)的过程。 你可以说缓冲区是内存的一部分。 您可以说缓冲区是内存的预先分配区域,您可以在处理它时存储数据。
从这里:
另一方面,缓冲区主要存在于RAM中,并充当CPU可以临时存储数据的区域。 该区域主要用于计算机和其他设备具有不同处理速度的情况。 通常,数据在从输入设备(例如鼠标)检索时或者在其被发送到输出设备(例如扬声器)之前被存储在缓冲器中。 但是,当在计算机内的进程之间移动数据时,也可以使用缓冲区。
因此,计算机将数据写入缓冲区,从设备可以访问数据的地方开始,将数据作为自己的速度。 这使计算机能够在写入缓冲区中的数据后专注于其他事项; 反对不断关注数据,直到设备完成。
缓冲区可以在硬件中的固定存储位置实现,也可以通过软件中的虚拟数据缓冲区实现,指向数据缓冲区的数据缓冲区存储在物理存储介质中。 软件中使用了大部分缓冲区。 这些缓冲区通常使用更快的RAM来存储临时数据,因为RAM的访问时间比硬盘驱动器快得多。 缓冲区通常通过在内存中实现队列或FIFO算法来调整时序。 因此,它通常以一种速率将数据写入队列并以另一种速率读取数据。
堆栈是一组项目,其中插入数据并从称为堆栈顶部的一端移除。
在计算机科学中,堆栈是一种特定类型的抽象数据类型或集合,其中集合上的主要(或唯一)操作是将实体添加到集合中,称为推动和移除实体,称为流行
内存是存储关于程序的指令和数据的存储空间。 缓冲区和堆栈都是内存的一小部分。
缓冲区在程序执行时临时存储数据。
操作系统概念(第八ED):
缓冲区是存储区域,用于存储在两个设备之间或设备与应用程序之间传输的数据。
另一方面,堆栈是根据后进先出(LIFO)原则插入和移除的对象的容器。 在下推堆栈中,只允许执行两项操作:将项目推入堆栈,并将项目从堆栈中弹出。 堆栈是有限的访问数据结构 - 只能在顶部添加和删除堆栈中的元素。 push将一个项目添加到堆栈的顶部,pop从顶部删除该项目。
链接地址: http://www.djcxy.com/p/2257.html上一篇: What is the difference between memory, buffer and stack?
下一篇: Stack and heap in c#