- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 Linux内核 内存管理
一,概述Linux内核一般将处理器的虚拟地址空间划分为两个部分。底部比较大的部分用于用户进程,顶部专用于内核。虽然(在两个用户进程之间的)上下文切换期间会改变下半部分,但是虚拟地址空间的内核部分总是保持不变。有两种类型计算机,分别以不同的方法管理物理内存。(1) UMA计算机 (一致内存访问,uniform memory access) 将可用内存以连续方式组织起来。SMP系统中的每个处理器访问各个内存区都是同样快。(2) NUMA计算机(非一致性内存访问, non-uniform memo
2022-05-25 11:35:20 417
原创 Linux内核 存储管理
一 linux内存管理的基本框架1 三层地址映射Linux内核映射机制设计成三层,在页面目录和页表面中间增设一个“中间目录”。在代码中页面目录称为PGD,中间目录称为PMD,页表称为PT。对于CPU发出的线性地址,虚拟的Linux内存管理单元分如下四步完成从线性地址到物理地址的映射:(1) 用线性地址中最高的那一个位段作为下标在PGD中找到相应的表项,改表项指向相应的中间目录PMD。(2) 用线性地址中的第二个位段作为下标在此PMD中找到相应的表项,改表项指向相应的页表面。(3) 用线性
2022-05-20 14:14:59 344
原创 均值滤波实现及优化
均值滤波广泛的运用于图像处理,可以用来去除图片噪声。我们今天主要讲解一下什么是均值滤波,以及我们如何对原始的均值滤波进行算法层面的加速优化。一 均值滤波的分类均值滤波我们可以细分成4类: 1 算术均值滤波器:计算滑动窗口内像素的均值。 2 几何均值滤波器: 3 谐波均值滤波器: 4谐谐波均值滤波器:当Q等于0时就变成均值滤波器 当Q等于-1时就是谐波...
2021-04-11 18:14:20 11440
原创 第2章 信息的表示和处理
(1)现代计算机存储和处理信息使用二进制。(2)单个位不是很有用,多个位组合在一起,在加上某种解释,给各种不同可能为模式赋予含义。(3)三种数字表示 无符号编码 —— 表示大于或等于零的数 补码编码—— 有符号整数 浮点数编码 —— 实数 (4) 计算机用有限数量位对数字进行编码了,结果太大会导致溢出。正整数溢出变成负数,正浮点数溢出变成正无穷。 (5) 由于表示精度有限,浮点运算不可结合 ...
2020-10-17 11:42:36 242
原创 Linux内核——CFS(完全公平调度算法)
1.CFS的原理CFS给每一个进程安排一个虚拟运行时钟vruntime,当一个进程得以执行,随着时间的推移,vruntime的值不断的增大。而没有运行的进程的vruntime的是不会改变的。而调度器总是选择进程队列中vrutime最小的进程执行,这就体现了“完全公平性”。那如何区分不同进程之间的优先级呢?就是说优先级高的进程vruntime增长的速度会比较慢,因此会得到更多的运行机会。2. CFS的设计思路CFS的思路比较简单,就是根据每个进程的权重分配运行时间,则进程的运行时间的计算公式如下.
2020-09-03 10:32:35 1520
原创 第4章 进程调度
4.4 Linux调度算法4.4.1 调度器类调度器类是以模块化的方式实现的,可以让不同的进程根据需求选择不同的调度算法,允许多种不同的可动态添加的调度算法并存。调度器类是具有优先级,调度器类根据优先级去选择优先级最高的调度器,改调度器会去执行其下面的进程。4.4.2 Unix系统中的进程调度现代linux进程调度有两个通用的概念:优先级和时间片。时间片是指进程运行的时间。优先级越高的进程调度的越频繁,时间片越多。Unix中优先级使用nice来表示,但是存在如下一些问题:...
2020-09-02 10:28:36 313
原创 操作系统学习笔记 对称多处理(SMP)
SMP:一种通过复用处理器提高程序执行并行性的方式。 根据SMP,计算机系统可以分为以下四类: 单指令单数据流(SISD):一个单处理器执行一个单指令流,对保存在一个存储器中的数据进程进行操作。 单指令多数据流(SIMD):一个机器指令控制多个处理部件步伐一致的同时执行。每个处理部件都有一个相关的数据处理空间,因此,每条指令由不同的处理器在不同 的数据集合上执行。 多指令单数据流(MISD):一系列数据被传送到一组处理器上,每个处理器执行不同的指令序列。 多
2020-06-28 18:55:03 1266
原创 第 7 章 链接
链接(linking)是将各种代码和数据收集并组合成为一个单一文件的过程,这个文件可被加载(复制)到内存并执行。链接可以执行于编译时,也就是在源代码被翻译成机器代码时;也可以执行于加载时,也就是在程序被加载器加载到内存并执行时;甚至执行于运行时,也就是由应用程序开执行。在现代系统中,链接是由叫做链接器的程序自动执行的。 链接器在软件开发中扮演者一个关键的角色,因为它们使得分离编译成为可能。我们不用将一个大型的应用程序组织为一个巨大的源文件,而是可以把它分解为更小、更好管理的模...
2020-06-20 19:17:47 272
原创 字节跳动:字符串相乘
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”说明:num1 和 num2 的长度小于110。num1 和 num2 只包含数字 0-9。num1 和 num2 均不以零开头,除非是数字 0 本身。不能使用任何标准库的大数类型(比如 Big
2020-06-10 16:53:31 362
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人