地址

linux 学习一

余生颓废 提交于 2020-01-09 22:44:01
1、MMU(内存管理单元):a、虚拟地址到物理地址的映射 b、存储器访问权限 c、控制Cache; 2、MMU访问:   (1)MMU 先查找TLB(Translation Lookaside Buffers)中的虚拟地址表;    (2) 如果TLB 中没有虚拟地址的入口,硬件从主存储器中的转换表中获取转换和访问权 限;           (3)内核启动:     1、printk函数;     2、重新初始化页表;     3、初始化中断,trap_init;     4、设置系统定时器、控制台…;     5、创建内核进程init。 来源: https://www.cnblogs.com/cdy0626/p/12173657.html

TCP/IP协议族

孤者浪人 提交于 2020-01-09 18:52:31
计算机与网络设备相互通信,双方就必须基于相同的方法,比如,如何探测到通讯目标,由哪一边发起通讯,使用哪种语言进行通讯,怎样结束通讯等规则都要实现确定,不同的硬件,操作系统之间的通讯,所有的这一切都要有一种规则,而我们就把这种规则称为协议(protocol)。 协议中存在各种各样的内容,从电缆的规格到ip地址的选定方法,寻找异地用户的方法,双方建立通信的顺序,以及web页面显示需要处理的步骤等等。 像这样把互联网关联的协议集合起来统称为TCP/IP。 TCP/IP协议族分四层: 应用层:预存了应用程序的各种服务,比如客户端请求,ftp传输协议和dns域名系统,http协议也处于该层。 传输层:处理两台计算机的网络连接及传输 网络层:处理传中的数据包 链路层:处理网络硬件,比如操作系统,硬件设备驱动,网卡,光纤。 举个例子: 首先,我们用http首先在客户端发送一个想看某个web页面的请求,这时,你处在应用层,通过http协议发送了请求。 其次,为了传输方便,在传输层把你的http请求进行了分割,并在各个报文上打上标记及端口号发送诶网络层。 接着,网络层处理了这些数据包,曾杰mac地址发给链路层。 最后,链路层收到数据后,传输回来。依次传到网络层、传输层、应用层。 以上过程走完,才能算真正接收到由客户端发送过来的http请求。 注意,发送端每通过一层,就会增加首部

计算机原理中的GDT与LDT

纵然是瞬间 提交于 2020-01-09 18:41:56
保护模式下的段寄存器 由 16位的选择器 与 64位的段描述符寄存器 构成 段描述符寄存器: 存储段描述符 选择器:存储段描述符的索引 PS:原先实模式下的各个段寄存器作为保护模式下的段选择器,80486中有6个(即CS,SS,DS,ES,FS,GS)80位的段寄存器,同时提供6个段左右机器当前运行的地址空间。由选择器CS对应表示的段仍为代码段,选择器SS对应表示的段仍为堆栈段 (1)全局描述符表GDT(Global Descriptor Table)在整个系统中,全局描述符表GDT只有一张(一个处理器对应一个GDT),GDT可以被放在内存的任何位置,但CPU必须知道GDT的入口,也就是基地址放在哪里,Intel的设计者门提供了一个寄存器GDTR用来存放GDT的入口地址,程序员将GDT设定在内存中某个位置之后,可以通过LGDT指令将GDT的入口地址装入此积存器,从此以后,CPU就根据此寄存器中的内容作为GDT的入口来访问GDT了。GDTR中存放的是GDT在内存中的基地址和其表长界限。 (2)段选择子(Selector)由GDTR访问全局描述符表是通过“段选择子”(实模式下的段寄存器)来完成的,如图三①步。段选择子是一个16位的寄存器(同实模式下的段寄存器相同)如图四 段选择子包括三部分: 描述符索引(index)、TI、请求特权级(RPL)。 他的index(描述符索引

GDT与LDT

人盡茶涼 提交于 2020-01-09 00:21:32
保护模式下的段寄存器 由 16位的选择器 与 64位的段描述符寄存器 构成 段描述符寄存器: 存储段描述符 选择器:存储段描述符的索引 PS:原先实模式下的各个段寄存器作为保护模式下的段选择器,80486中有6个(即CS,SS,DS,ES,FS,GS)80位的段寄存器,同时提供6个段左右机器当前运行的地址空间。由选择器CS对应表示的段仍为代码段,选择器SS对应表示的段仍为堆栈段 (1)全局描述符表GDT(Global Descriptor Table)在整个系统中,全局描述符表GDT只有一张(一个处理器对应一个GDT),GDT可以被放在内存的任何位置,但CPU必须知道GDT的入口, 也就是基地址放在哪里,Intel的设计者门提供了一个寄存器GDTR用来存放GDT的入口地址,程序员将GDT设定在内存中某个位置之后,可以通过 LGDT指令将GDT的入口地址装入此积存器,从此以后,CPU就根据此寄存器中的内容作为GDT的入口来访问GDT了。GDTR中存放的是GDT在内存 中的基地址和其表长界限。 (2)段选择子(Selector)由GDTR访问全局描述符表是通过“段选择子”(实模式下的段寄存器)来完成的,如图三①步。段选择子是一个16位的寄存器(同实模式下的段寄存器相同)如图四 段选择子包括三部分: 描述符索引(index)、TI、请求特权级(RPL)。他 的index(描述符索引

Spring MVC @RequestMapping浅析

人盡茶涼 提交于 2020-01-08 22:08:46
简介: @RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。 RequestMapping注解有六个属性,下面我们把她分成三类进行说明。 1、 value, method; value: 指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明); method: 指定请求的method类型, GET、POST、PUT、DELETE等; 2、 consumes,produces; consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html; produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回; 3、 params,headers; params: 指定request中必须包含某些参数值是,才让该方法处理。 headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。 来源: https://www.cnblogs.com/JKayFeng/p/5835451.html

内存映射

白昼怎懂夜的黑 提交于 2020-01-08 15:00:53
内存映射 内存映射是在进程的虚拟地址空间中创建一个映射 内存映射分类 内存映射分为两类: 文件映射:把文件的一个区间映射到进程的虚拟地址空间,数据源为设备上的文件。 匿名映射:把物理内存映射到进程的虚拟地址空间,没有数据源。 在进程的虚拟地址空间中,代码段和数据段属于文件映射,堆、栈属于匿名映射。 内存映射的原理 mmap()会返回一个指针,它指向进程虚拟地址空间中的一个地址,这样以后,进程无需再调用read或write对文件进行读写,而只需要通过ptr就能够操作 文件。但是ptr所指向的是一个逻辑地址,要操作其中的数据,必须通过MMU将逻辑地址转换成物理地址,如图1中过程2所示。这个过程与内存映射无关。 建立内存映射并没有实际拷贝数据,这时,MMU在地址映射表中是无法找到与ptr相对应的物理地址的,也就是MMU失败,将产生一个缺页中断,缺 页中断的中断响应函数会在swap中寻找相对应的页面,如果找不到(也就是该文件从来没有被读入内存的情况),则会通过mmap()建立的映射关系,从硬 盘上将文件读取到物理内存中,如图1中过程3所示。这个过程与内存映射无关。 如果在拷贝数据时,发现物理内存不够用,则会通过虚拟内存机制(swap)将暂时不用的物理页面交换到硬盘上,如图1中过程4所示。这个过程也与内存映射无关。 内存映射和读写文件的效率 read文件时

vue-resource安装与使用

二次信任 提交于 2020-01-08 09:46:46
vue-resource是vue中使用的请求网络数据的插件,这个插件是依赖于vue的,简单说就是用来调接口的。 安装 cd 项目目录 npm i vue vue-resource --save-dev 在入口文件main.js中配置 import VueResource from 'vue-resource' Vue.use(VueResource) 这样就可以直接使用了: get请求: this.$http.get('地址',{params: {参数}}).then(function(res) { console.log(res) // 响应成功回调 },function(res) { console.log(res) // 响应错误回调 }) post请求: this.$http.post('地址',{参数},{emulateJSON:true}).then( function(res) { console.log(res.data) }) jsonp请求: this.$http.jsonp("地址",{params:{参数}}).then( function(res){ console.log(res.data.s) }) 来源: https://www.cnblogs.com/liluning/p/12144775.html

Asp.Net 学习资源网站

拜拜、爱过 提交于 2020-01-08 09:15:45
名称:快速入门 地址:http://chs.gotdotnet.com/quickstart/ 描述:本站点是微软.NET技术的快速入门网站,我们不必再安装.NET Framework中的快速入门示例程序,直接在网上查看此示例即看。 名称:微软官方.NET指导站点 地址:http://www.gotdotnet.com/ 描述:上面的站点是本站的一个子站点,本站点提供微软.NET官方信息,并且有大量的用户源代码、控件下载,微软.NET开发组的人员也经常在此站点发表一些指导性文章。 名称:SourceForge 地址:http://www.sourceforge.net 描述:世界上最大的Open Source项目在线网站,上面已经有.NET的各种大型Open Source项目上千件,包括SharpDevelop、NDoc、Mono等都是在此站点发布最新源代码信息。 名称:CodeProject 地址:http://www.codeproject.com 描述:很多非官方的中小型示例源代及文章,相当全面,基本上我们想要的各种方面的资料都可以在此处查找。 名称:Fabrice's weblog 地址:http://dotnetweblogs.com/FMARGUERIE/Story/4139.aspx 描述:这是一个WebLog形式的在线日志网站,定期更新,包括.NET相关的工具

Spring 注解

不问归期 提交于 2020-01-08 07:48:50
一 Spring @RequestMapping 用法详解之地址映射 RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。 RequestMapping注解有六个属性,下面我们把她分成三类进行说明。 1、 value, method; value: 指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明); method: 指定请求的method类型, GET、POST、PUT、DELETE等; 2、 consumes,produces; consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html; produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回; 3、 params,headers; params: 指定request中必须包含某些参数值是,才让该方法处理。 headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。 参考资料: @Requestmapping http://blog.sina.com.cn/s/blog_72827fb10101pl9i.html @Controller

C语言中的强制类型转换

纵然是瞬间 提交于 2020-01-08 04:18:42
C语言中,任何一个变量都必须占有一个地址,而这个地址空间内的0-1代码就是这个变量的值。不同的数据类型占有的空间大小不一,但是他们都必须有个地址,而这个地址就是硬件访问的依据,而名字只是提供给程序员的一种记住这个地址的方便一点的方法。但是,不同的变量在机器中都是0-1代码,所以,我们不能简单的通过检查一个值的位来判断它的类型。 例如,定义如下: int a; float b; double c; long double d; ( 假设它们所占的字节分别是 4 、 8 、 8 、 10 ,而且连续存储于某个地址空间,起始地址是 100 ,则我们可以得到如下内存分布 ) a变量就是由以地址100开始到103结束的4个字节内存空间内的0-1代码组成。b变量则是由以地址104开始到112结束的8个字节内存空间内的0-1代码组成。而在机器中,这些内存都是连续的0-1代码,机器并不知道100~103是整型而104~111是float型,所有这些类型都是编译器告知的。当我们用a时,由于前面把a定义为int型,则编译器知道从a的地址开始向后取4个字节再把它解释成int型。那么(float)a,就是先按照int类型取出该数值,再将该数值按照int to float的规则转换成float型。所以强制类型转换就是按照某个变量的类型取出该变量的值,再按照***to***的规则进行强制转转换。如果是(类型名