4.1.3 基本分页存储管理方式 1.分页存储管理的基本方法 系统将逻辑地址空间分成若干大小相等的片,叫页面,内存空间分成若干与页面同样大小的块,内存的分配以块为单位,允许将一个进程的若干页分别装入不相邻的块中。 页面大小通常设成2的幂页面大小为2^k字节,逻辑地址长度为n位,右边的k位为页内地址W ...
分类:
其他好文 时间:
2020-03-31 12:13:29
阅读次数:
59
import socket import select ''' kernel:Linux的操作系统 epoll:创造一个特殊的内存空间,tcp服务器和操作系统共用,将套接字列表放在该内存,不再使用轮询的方式遍历列表,而采用事件通知 轮询:开发上讲遍历称为轮询 事件通知: ''' def tcp_se ...
分类:
Web程序 时间:
2020-03-31 01:26:14
阅读次数:
95
在确保new动态分配的内存空间在使用结束之后,释放是一件麻烦事。C++11模板库的头文件中定义的智能指针,即shared_ptr模板,就是用来解决这个问题的。 它是将new运算符返回的指针p交给一个shared_ptr对象“托管”,就不用担心要在哪里写delete p语句 实际根本不需要编写这条语句 ...
分类:
编程语言 时间:
2020-03-30 23:06:56
阅读次数:
89
栈内存和堆内存在了解一门语言底层数据结构上,挺重要的,做了个总结 JS中的栈内存堆内存 JS的内存空间分为栈(stack)、堆(heap)、池(一般也会归类为栈中)。 其中栈存放变量,堆存放复杂对象,池存放常量,所以也叫常量池。 栈数据结构 栈是一种特殊的列表,栈内的元素只能通过列表的一端访问,这一 ...
分类:
Web程序 时间:
2020-03-30 16:10:54
阅读次数:
63
1.进程和线程还有协程之间的关系 1.1 进程,直观点说,保存在硬盘上的程序运行以后,会在内存空间里形成一个独立的内存体,这个内存体有自己独立的地址空间,有自己的堆,上级挂靠单位是操作系统。 操作系统会以进程为单位,分配系统资源(CPU时间片、内存等资源),进程是资源分配的最小单位。 1.2 线程, ...
分类:
其他好文 时间:
2020-03-29 19:30:21
阅读次数:
67
在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。 静态建立一个类对象,是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象。使用这种方法,直接调用类的 ...
分类:
编程语言 时间:
2020-03-29 17:52:47
阅读次数:
93
Python之运算符和流程控制 运算符 算术运算符 比较运算符 3.赋值运算符 逻辑运算符 身份运算符 is和==的区别:is用于判断两个变量引用对象是否为同一个(是否在同一块内存空间中), ==用于判断引用变量的值是否相等。 位运算符 成员运算符 Python运算符优先级 python运算符的优先 ...
分类:
编程语言 时间:
2020-03-29 01:39:09
阅读次数:
97
Python之垃圾回收机制与用户交互 垃圾回收机制 垃圾回收机制(简称GC)是Python解释器自带一种机制,专门用来回收不可用的变量值所占用的内存空间 为什么要用垃圾回收机制? 程序运行过程中会申请大量的内存空间,而对于一些无用的内存空间如果不及时清理的话会导致内存使用殆尽(内存溢出),导致程序崩 ...
分类:
编程语言 时间:
2020-03-29 01:33:34
阅读次数:
82
缓冲区是什么:缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。 缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。 为什么要引入缓冲区: 比如我们从磁盘里取信息,我们先把读出的 ...
分类:
编程语言 时间:
2020-03-28 15:03:26
阅读次数:
81
一.数据结构 1.概念 1.数据类型和抽象数据类型是不同的概念。 2.逻辑结构分为线性结构(一对一)、树形结构(一对多)、图形结构(多对多)。 3.时间复杂度(T(n)=O(f(n));空间复杂度(占用的内存空间)。 4.算法 1.BF算法:时间复杂度最坏为O(n m)。 2.kmp算法:时间复杂度 ...
分类:
编程语言 时间:
2020-03-28 01:13:29
阅读次数:
84