操作系统
米沙子418
不疯魔不成活。
展开
-
Linux内核空间内存申请函数kmalloc、kzalloc、vmalloc的区别
转自:http://www.th7.cn/system/lin/201606/167750.shtml我们都知道在用户空间动态申请内存用的函数是 malloc(),这个函数在各种操作系统上的使用是一致的,对应的用户空间内存释放函数是 free()。注意:动态申请的内存使用完后必须要释放,否则会造成内存泄漏,如果内存泄漏发生在内核空间,则会造成系统崩溃。 那么,在内核空间中如何申请内存呢?一...转载 2018-10-22 10:02:47 · 136 阅读 · 0 评论 -
操作系统学习笔记:存储管理
转自:https://blog.csdn.net/enjolras/article/details/8868826类似进程线程是对CPU的抽象。存储管理,是操作系统对存储器(内存)的抽象。读书时对分页,分段,这些概念一知半解。很重要的原因是我没有去思考,为什么要有这些概念?它们是为了解决什么问题?技术的本质是分解问题,抽象问题,乃至解决问题。而分页,分段这些抽象,就是为了解决一些具体的...转载 2018-08-08 20:57:27 · 348 阅读 · 0 评论 -
从硬件出发,浅谈操作系统的段机制与页机制
转自:https://www.jianshu.com/p/f4a909f3fd2e我们写一个程序,经过编译之后会变成一堆的指令。操作系统在执行这个程序的时候,也正是执行这堆指令。指令可以是 取数据的指令 或 取下一条被执行指令 的指令。但无论是什么指令,都会进行内存的访问和寻址。就像是我们必须找到东西放在哪里,我们才能去使用它。那操作系统怎样帮我们去寻址呢?答案是 内存寻址涉及到内存的...转载 2018-08-08 20:26:11 · 266 阅读 · 0 评论 -
linux内存管理原理
转自:https://www.cnblogs.com/zhaoyl/p/3695517.html本文以32位机器为准,串讲一些内存管理的知识点。 1. 虚拟地址、物理地址、逻辑地址、线性地址 虚拟地址又叫线性地址。linux没有采用分段机制,所以逻辑地址和虚拟地址(线性地址)(在用户态,内核态逻辑地址专指下文说的线性偏移前的地址)是一个概念。物理地址自不必提。内核的虚拟地址和物理地...转载 2018-08-07 15:55:26 · 181 阅读 · 0 评论 -
Linux进程分配内存的两种方式--brk() 和mmap()
转自:http://m.blog.csdn.net/article/details?id=39496057如何查看进程发生缺页中断的次数? 用ps -o majflt,minflt -C program命令查看。 majflt代表major fault,中文名叫大错误,minflt代表minor fault,中文名叫小错误。 这两...转载 2018-08-09 13:23:27 · 424 阅读 · 0 评论 -
linux内存管理--进程在内存中的分布
转自:https://blog.csdn.net/yusiguyuan/article/details/12041317一、进程与内存 所有进程(执行的程序)都必须占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等。不过进程对这些内存的管理方式因内存用途不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的。对任何一个...转载 2018-08-09 11:54:42 · 170 阅读 · 0 评论 -
内部碎片和外部碎片的区别
转自:一、在内存上(使用连续分配算法来管理分配内存时会产生)的外部碎片和内部碎片两个概念 这几天一直看操作系统,看到内存的连续分配时,对于外部碎片和内部碎片时甚是不解: 内存碎片分为:内部碎片和外部碎片【内部碎片】内部碎片就是已经被分配出去(能明确指出属于哪个进程)却不能被利用的内存空间;内部碎片是处于(操作系统分配的用于装载某一进程的内存)区域内部或页面内部的存储...转载 2018-08-09 10:48:15 · 11930 阅读 · 0 评论 -
linux内存管理--用户空间和内核空间
转自:https://blog.csdn.net/yusiguyuan/article/details/12045255#comments关于虚拟内存有三点需要注意:4G的进程地址空间被人为的分为两个部分--用户空间与内核空间。用户空间从0到3G(0xc0000000),内核空间占据3G到4G。用户进程通常情况下只能访问用户空间的虚拟地址,不能访问内核空间的虚拟地址。例外情况只有用户进程进...转载 2018-08-09 10:29:24 · 1589 阅读 · 0 评论 -
操作系统对内存管理
转自:https://blog.csdn.net/shanghairuoxiao/article/details/70256247为什么叫内存的抽象?如果看过设计模式的人可能会知道,设计模式中提到最多的概念之一就是抽象,纯虚的基类作为接口就是对各种派生类对象的抽象。调用接口的用户,并不知道内部如何实现,因此内部实现的方法可能也有多种。地址空间也可以这样理解,32位机上,创建进程时操作系统为...转载 2018-08-09 09:52:52 · 1263 阅读 · 0 评论 -
操作系统内存管理(分页与分段)
转自: https://blog.csdn.net/wangsifu2009/article/details/6755929分段分段本是由于8086是16位总线,为寻址20位内存地址而增加的。在32位操作系统中,分段依然有用。1)段描述符:描述该段的安全属性,为一个64位长的值。在实地址模式中,只需要使用段寄存器(CS,DS,SS和ES)就可以了,每个段寄存器都是16位的,对应于地址总线中的高16...转载 2018-04-29 22:14:08 · 705 阅读 · 0 评论 -
十问 Linux 虚拟内存管理 (glibc) (一&&二 )
转自:https://zhuanlan.zhihu.com/p/26855207 最近在做 MySQL 版本升级时( 5.1->5.5 ) , 发现了 mysqld 疑似“内存泄露”现象,但通过 valgrind 等工具检测后,并没发现类似的问题。因此,需要深入学习 Linux 的虚拟内存管理方面的内容来解释这个现象。Linux 的虚拟内存管理有几个关键概念:每...转载 2018-05-17 16:36:51 · 380 阅读 · 0 评论 -
Linux内核中的jiffies及其作用介绍及jiffies等相关函数详解
转自:https://www.aliyun.com/jiaocheng/1388801.html在LINUX的时钟中断中涉及至二个全局变量一个是xtime,它是timeval数据结构变量,另一个则是jiffies,首先看timeval结构struct timeval{ time_t tv_sec; /***second***/ susecond_t tv_usec;/***...转载 2018-10-26 11:21:07 · 730 阅读 · 0 评论