自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (6)
  • 收藏
  • 关注

转载 堆和栈的区别 之 数据结构和内存

版权归作者所有,仅供学习。数据结构的栈和堆首先在数据结构上要知道堆栈,尽管我们这么称呼它,但实际上堆栈是两种数据结构:堆和栈。堆和栈都是一种数据项按序排列的数据结构。栈就像装数据的桶或箱子我们先从大家比较熟悉的栈说起吧,它是一种具有后进先出性质的数据结构,也就是说后存放的先取,先存放的后取。这就如同我们要取出放在箱子里面底下的东西(放入的比较早的物体),我们首先要移开压在它上面的物体(放入的比较晚...

2018-02-26 13:54:26 20760

转载 存储类别

一、存储区域1.寄存器:存放立即参加运算的数据。2.系统区:存放系统软件。3.用户程序代码区:存放用户程序的程序代码。4.库程序代码区:存放库函数的代码。5.数据区,分为堆区、栈区和静态存储区。(1)堆区:存放动态变量,即由malloc申请的动态变量。(2)栈区:存放自动存储类型的变量,包括函数和复合语句中的局部变量等。(3)静态存储区:存放具有显式声明的静态类型的变量。二、这个存储空间可以分为三...

2018-02-25 23:34:25 4072

转载 深入理解“栈”(4)

我们学习的大部分内容都是与特定编程语言无关的元素,但是,我主要还是专注于 JavaScript,以及一些 C。让我们以一个简单的 C 程序开始,它的功能是读取一首歌曲和乐队名字,然后将它们输出给用户:stackFolly.c 下载#include <stdio.h>#include <string.h>char *read(){ char data[64]...

2018-02-25 23:22:01 1829

转载 深入理解“栈”(3)

在探秘“栈”的倒数第二篇文章中,我们提到了尾调用、编译优化、以及新发布的 JavaScript 上特有的尾调用。当一个函数 F 调用另一个函数作为它的结束动作时,就发生了一个尾调用。在那个时间点,函数 F 绝对不会有多余的工作:函数 F 将“球”传给被它调用的任意函数之后,它自己就“消失”了。这就是关键点,因为它打开了尾调用优化的“可能之门”:我们可以简单地重用函数 F 的栈帧,而不是为函数调用 ...

2018-02-25 23:21:12 329

转载 深入理解“栈”(2)

上一周我们讲解了 栈是如何工作的 以及在函数的开端上栈帧是如何被构建的。今天,我们来看一下它的相反的过程,在函数结束时,栈帧是如何被销毁的。重新回到我们的 add.c 上:简单的一个做加法的程序 - add.cint add(int a, int b){ int result = a + b; return result;}int main(int argc){ int an...

2018-02-25 23:16:21 440

转载 深入理解“栈”(1)

原文来自:https://github.com/LCTT/TranslateProject早些时候,我们讲解了 “剖析内存中的程序之秘”,我们欣赏了在一台电脑中是如何运行我们的程序的。今天,我们去探索栈的调用,它在大多数编程语言和虚拟机中都默默地存在。在此过程中,我们将接触到一些平时很难见到的东西,像闭包(closures)、递归、以及缓冲溢出等等。但是,我们首先要作的事情是,描绘出栈是如何运作的...

2018-02-25 23:15:06 1227

转载 IO端口和IO内存的区别及分别使用的函数接口

  每个外设都是通过读写其寄存器来控制的。外设寄存器也称为I/O端口,通常包括:控制寄存器、状态寄存器和数据寄存器三大类。根据访问外设寄存器的不同方式,可以把CPU分成两大类。一类CPU(如M68K,Power PC等)把这些寄存器看作内存的一部分,寄存器参与内存统一编址,访问寄存器就通过访问一般的内存指令进行,所以,这种CPU没有专门用于设备I/O的指令。这就是所谓的“I/O内存”方式。另一类C...

2018-02-25 22:59:11 4982

转载 I/O端口与内存地址

外设都是通过读写设备上的寄存器来进行的,外设寄存器也称为"I/O端口",而IO端口有两种编址方式:独立编址和统一 编制。而具体采用哪一种则取决于CPU的体系结构。独立编址:"I/O映射方式"内存和外设分开独立编址(它们的地址原则上可以有重合区域);因为独立,所以内存编址可以从0~N,外设编址也可以从0~N; 这就是所谓的"I/O映射方式"(I/O-mapped),也就是“独立编址”。 而X86等则...

2018-02-25 22:55:45 7663

转载 页面缓存——内存与文件的那些事儿

原文标题:Page Cache, the Affair Between Memory and Files原文地址:http://duartes.org/gustavo/blog/版权归作者所有,仅供学习。上次我们考察了内核如何为一个用户进程管理虚拟内存,但是没有涉及文件及I/O。这次我们的讨论将涵盖非常重要且常被误解的文件与内存间关系的问题,以及它对系统性能的影响。提到文件,操作系统必须解决两个重...

2018-02-25 22:53:38 424

转载 内核是如何管理内存的?

原文标题:How The Kernel Manages Your Memory原文地址:http://duartes.org/gustavo/blog/版权归作者所有,仅供学习。在仔细审视了进程的虚拟地址布局之后,让我们把目光转向内核以及其管理用户内存的机制。再次从gonzo图示开始:    Linux进程在内核中是由task_struct的实例来表示的,即进程描述符。task_struct的mm...

2018-02-25 22:47:29 380

转载 剖析程序的内存布局

原文标题:Anatomy of a Program in Memory原文地址:http://duartes.org/gustavo/blog/版权归作者所有,仅供学习。      内存管理模块是操作系统的心脏;它对应用程序和系统管理非常重要。今后的几篇文章中,我将着眼于实际的内存问题,但也不避讳其中的技术内幕。由于不少概念是通用的,所以文中大部分例子取自32位x86平台的Linux和Window...

2018-02-25 22:41:06 272

转载 Cache:一个隐藏并保管数据的场所

原文标题:Cache: a place for concealment and safekeeping原文地址:http://duartes.org/gustavo/blog/版权归作者所有,仅供学习。本文简要的展示了现代Intel处理器的CPU cache是如何组织的。有关cache的讨论往往缺乏具体的实例,使得一些简单的概念变得扑朔迷离。也许是我可爱的小脑瓜有点迟钝吧,但不管怎样,至少下面讲述...

2018-02-25 22:32:15 820

转载 CPU如何操作内存?

原文标题:Getting Physical With Memory原文地址:http://duartes.org/gustavo/blog/版权归作者所有,仅供学习。在你试图理解一个复杂的系统时,如果能揭去表面的抽象并专注于最低级别的概念,往往会有不小的收获。在这个精神的指导下,让我们看看对于内存和I/O端口操作来说最简单、最基础的概念,即CPU与总线之间的接口。其中的细节是很多上层概念的基础,比...

2018-02-25 22:28:52 4219 1

转载 CPU环,特权和保护

原文标题:CPU Rings, Privilege, and Protection原文地址:http://duartes.org/gustavo/blog/版权归作者所有,仅供学习。可能你凭借直觉就知道应用程序的功能受到了Intel x86计算机的某种限制,有些特定的任务只有操作系统的代码才可以完成,但是你知道这到底是怎么一回事吗?在这篇文章里,我们会接触到x86的特权级(privilege le...

2018-02-25 22:15:15 2481

转载 内存地址转换与分段

原文标题:Memory Translation and Segmentation原文地址:http://duartes.org/gustavo/blog/版权归作者所有,仅供学习。本文是Intel兼容计算机(x86)的内存与保护系列文章的第一篇,延续了启动引导系列文章的主题,进一步分析操作系统内核的工作流程。与以前一样,我将引用Linux内核的源代码,但对Windows只给出示例(抱歉,我忽略了B...

2018-02-25 22:07:27 576

转载 内核引导过程

原文标题:The Kernel Boot Process原文地址:http://duartes.org/gustavo/blog/版权归作者所有,仅供学习。上一篇文章解释了计算机的引导过程,正好讲到引导装载程序把系统内核镜像塞进内存,准备跳转到内核入口点去执行的时刻。作为引导启动系列文章的最后一篇,就让我们深入内核,去看看操作系统是怎么启动的吧。由于我习惯以事实为依据讨论问题,所以文中会出现大量的...

2018-02-25 21:39:25 734

转载 计算机启动过程

原文标题:How Computers Boot Up原文地址:http://duartes.org/gustavo/blog/版权归原作者所有,仅供学习。计算机的启动是一个复杂、多阶段并且相当有趣的事情。下图描述了整个计算机启动的过程:计算机启动过程当你按下计算机的电源按钮时,启动过程就开始了。一旦主板电源接通,主板就会初始化主板上的固件——一些芯片组和周边——并且会尝试让CPU运行起来。如果在这...

2018-02-25 19:18:58 8617

转载 主板芯片组和内存映射

最近一直想了解在学习内存方面的编程,但是一直不理解这个内存是什么东西,然后就一直搜索,找到一个大神的一些深刻解释。版权归原作者所有,仅供学习。文章:https://manybutfinite.com/archives/(原文地址:http://duartes.org/gustavo/blog/)原文标题:Motherboard Chipsets and the Memory Map这第一篇文章讲述...

2018-02-25 11:34:23 1902

转载 window10下CUDA9安装和vs2015配置

环境是window10下cuda9和vs2015配置的,教程按照下面进行配置的,如果出现link2019错误,是因为lib库问题。lib库需要将cuda_path的lib库全部添加进去以及lib的名字。版权归原作者所有,配置过程仅供参考。1.VS2013 + CUDA7.5 安装和配置转载地址:http://blog.csdn.net/u011314529/article/deta

2018-02-20 10:13:22 12668 3

原创 ubuntu mate配置阉割版teamviewer开机启动

1、首选取消Mate的自动登录界面在user and group中取消自动登录界面2、添加启动相修改/etc/lightdm 下的lightdm.conf文件如果没有则自己创建一个 内容为[SeatDefaults]autologin-user=mi

2018-02-09 17:37:39 1311

转载 CUDA 6.0 统一寻址

本文版权归NVIDIA官网所有,仅供学习使用。借助CUDA 6,NVIDIA推出了CUDA平台统一存储器历史上最引人注目的编程模型改进之一。在当今典型的PC或集群节点中,CPU和GPU的存储器在物理上是独立的,并且由PCI-Express总线分开。在CUDA 6之前,程序员正是如此看待事物。在CPU和GPU之间共享的数据必须分配到两个存储器中,并由程序明确地在它们之间复制。这给CUDA程序

2018-02-06 11:01:11 529

Tensorflow 实战Google深度学习框架&&TensorFlow;实战(二)

Tensorflow书籍仅供深度学习研究者学习使用,如有商业用途后果自负,本书是黄文坚的tensorflow,

2017-10-17

Tensorflow 实战Google深度学习框架&&TensorFlow;实战(一)

Tensorflow书籍仅供深度学习研究者学习使用,如有商业用途后果自负

2017-10-16

廖雪峰Python3.0.pdf

不同版本的python3.0基础教程

2016-08-02

廖雪峰Python2.7.pdf

基础教程python2.7适合新手学习

2016-08-02

TensorFlow Python API documentation

一个详细的Tensorflow的python教程

2016-06-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除