计算机

作者: 滩主 | 来源:发表于2018-09-28 15:59 被阅读0次

中间层惹的祸

所有计算机科学中的问题都能通过增加一个中间转换层来解决
All problems in computer science can be solved by another level of indirection
某种程度上,这种被动解决问题的方式使计算机软硬件的一系列发展只不过是惯性向前,看起来顺理成章,然而几乎所有从业者的智慧都浪费在不断学习和构建新的中间层,身不由己的推动这个庞然大物继续膨胀。忽然感觉索然无味,很无聊啊。

Cache (内存好慢)

image.png image.png

http://cenalulu.github.io/linux/all-about-cpu-cache/
https://zhuanlan.zhihu.com/p/35386457
https://www.cnblogs.com/yanlong300/p/8986041.html
http://0xffffff.org/2017/02/21/40-atomic-variable-mutex-and-memory-barrier/

进程地址空间

进程地址空间

多线程地址空间

image.png image.png
image.png image.png

Text Segmest 和 Data Segment
Text Segment,包含.text段、.rodata段、.plt段等。是从/bin/bash加载到内存的,访问权限为r-x。
Data Segment,包含.data段、.bss段等。也是从/bin/bash加载到内存的,访问权限为rw-。
堆和栈
堆(heap):堆说白了就是电脑内存中的剩余空间,malloc函数动态分配内存是在这里分配的。在动态分配内存时堆空间是可以向高地址增长的。堆空间的地址上限称为Break,堆空间要向高地址增长就要抬高Break,映射新的虚拟内存页面到物理内存,这是通过系统调用brk实现的,malloc函数也是调用brk向内核请求分配内存的。
栈(stack):栈是一个特定的内存区域,其中高地址的部分保存着进程的环境变量和命令行参数,低地址的部分保存函数栈帧,栈空间是向低地址增长的,但显然没有堆空间那么大的可供增长的余地,因为实际的应用程序动态分配大量内存的并不少见,但是有几十层深的函数调用并且每层调用都有很多局部变量的非常少见。

image.png

内存管理

https://www.cnblogs.com/fuzhe1989/p/3950179.html

https://blog.csdn.net/Apollon_krj/article/details/54565768

https://www.cnblogs.com/huxiao-tee/p/4660352.html

https://blog.acean.vip/post/linux-kernel/gai-shu-linuxnei-he-san-jia-ma-che-zhi-nei-cun-guan-li

https://gist.github.com/CMCDragonkai/10ab53654b2aa6ce55c11cfc5b2432a4

相关文章

  • 预科

    1 计算机分类: a超级计算机, b网络计算机, c个人计算机, d工业控制计算机, e镶入式系统 ...

  • 计算机组成原理之概述篇

    一 、章节导学 计算机的发展简史 计算机的分类 计算机的体系结构 计算机的层次与编程语言 计算机的计算单位 计算机...

  • 大学计算机基础总结与复习

    第1章 计算机的基本概念 1.1 计算机概述 1、 电子计算机={电子模拟计算机,电子数字计算机} 2、 计算机之...

  • 计算机系统 - 目录

    计算机系统 计算机系统001 - 电学概念 计算机系统002 - 数值运算 计算机系统003 - 硬件体系 计算机...

  • 计算机网络基本要素和结构

    什么是计算机网络 计算机网络的要素 计算机网络的协议 计算机网络的服务 计算机网络的结构 什么是计算机网络 计算机...

  • 01 Java学习前 2018-06-17

    01.01_计算机基础知识(计算机概述)(了解) A:什么是计算机?计算机在生活中的应用举例计算机(Compute...

  • Java基础笔记01

    01.01_计算机基础知识(计算机概述)(了解) A:什么是计算机?计算机在生活中的应用举例计算机(Compute...

  • Java学习笔记(一)

    01.01_计算机基础知识(计算机概述)(了解) A:什么是计算机?计算机在生活中的应用举例计算机(Compute...

  • JAVA笔记1-9

    01.01_计算机基础知识(计算机概述)(了解) A:什么是计算机?计算机在生活中的应用举例计算机(Compute...

  • Python简介及环境搭建

    什么是计算机语言 计算机就是一台用来计算机的机器,人让计算机干什么计算机就得干什么!需要通过计算机的语言来控制计算...

网友评论

      本文标题:计算机

      本文链接:https://www.haomeiwen.com/subject/rrldoftx.html