自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 Linux进程管理学习(2)-- 进程调度

I/O消耗型进程I/O-Bound:CPU利用率较低,进程的效率主要受限于I/O的速度。例1:shell进程大多数时间在等用户输入,在等用户输入的期间,shell进程进入睡眠状态,不占用CPU。例2:磁盘读取进程A在从磁盘读写大数据块的过程中,也不占用cpu,基本可以理解为可以用DMA读取磁盘数据到指定内存地址,读完后,通过中断通知cpu数据已经读完,进程A被唤醒,进而对数据直接进行处理。CPU消耗型进程CPU-Bound:CPU利用率高,大多数时间执行控制和计算。进程的效率主要受限于C

2022-05-29 18:31:48 606 1

原创 安全学习笔记

RSA概念学习

2022-05-03 11:54:34 257

原创 Linux 进程管理学习笔记(一)

一 进程学习笔记

2022-05-02 17:10:40 1792

原创 GIC-V3初始化流程

1. 注册gic-v3通过标准的中断控制器驱动注册函数——IRQCHIP_DECLARE进行控制器驱动的注册:IRQCHIP_DECLARE(gic_v3, "arm,gic-v3", gic_of_init);该宏定义其实就是在SECTION "__irqchip_of_table" 中增加了一个struct of_device_id类型的结构体常量,名为__of_table_gic_v3,该结构体里面存放gic_v3驱动的初始化函数gic_of_init以及gic-v3驱动和gic-v3设

2020-12-06 22:07:58 477

原创 spase memory笔记

一些宏定义和数据结构/* ARM64下一个section的大小, 为2^30次方即1G */#define SECTION_SIZE_BITS 30/* ARM64下最大支持的物理地址空间大小, 为2^48次方即256T */#define MAX_PHYSMEM_BITS 48/* 不同的section之间通过高(48-30=18)位来区分 */#define SECTIONS_SHIFT (MAX_PHYSMEM_BITS - SECTION_SIZE_B

2020-08-02 10:55:38 174

翻译 linux cmwq介绍

一.简介在很多情况下,我们需要一个异步的执行上下文。比如对于linux中断而言,我们可以把紧急的任务放在中断服务函数中进行,而把不紧急的任务延后执行。延后执行的方式有很多,比如 tasklet和软中断。但是tasklet和软中断的缺点是,虽然是延后执行,但是其执行期间还是属于中断上下文,中断上下文最大的问题是不能执行可能导致睡眠的函数,比如kmalloc。针对这个问题,内核提供了工作队列(wq...

2020-02-14 16:31:14 1635

原创 devfreq 内核框架介绍

一.应用背景二.软件框架三.使用流程3.1 dts配置3.1.1 定义工作性能表:对于使用devfreq框架的设备,都需要在dts中预先定义一个工作性能表。例如,对于可以工作在三个频点上的设备,可以在dts中预先定义以下的性能工作表:xxx_opp_table: xxx_opp_table { compatible = "operating-points-v...

2020-02-13 13:11:33 3872

原创 内核等待队列的介绍

目录一.背景和意义二.数据结构分析三.等待队列的操作3.1 典型应用3.2 将等待队列项插入等待队列3.3 将等待队列从等待队列中删除3.4 将等待队列从等待队列中删除一.背景和意义在实际编程中,我们会经常碰到这种场景:进程P需要等待条件C的成立,才能继续执行某个动作。例如,当串口没有数据可以读取时,我们可以通过轮询的方式,等到有数据来的时候,串口程序再去...

2020-02-08 00:48:46 441

原创 Linux runtime PM 机制

一.前言Linux的RPM(Runtime power management)框架,是一套运行时电源管理框架,为系统中所有的device提供了一种运行时电源管理的机制。其目的很明确——减少系统运行时的功耗;方式也很简单:由各个驱动自己决定,具体何时将对应的device关闭或打开。和传统的系统休眠唤醒式的电源管理相比,RPM采取的是分而治之的管理思想,将具体的控制策略和控制权力下放到各个驱动;而...

2020-02-03 20:30:42 3110 3

转载 patch和diff简介

通过diff工具生成补丁, patch工具打上补丁.在使用diff之前, 你需要保留一份未修改过的源码, 然后在其它地方修改源码的一份拷贝. diff对比这两份源码生成patch. 修改过的源码必须保留原来的文件名, 例如, 如果你修改源码中的a.c文件, 那么, 修改后的文件还是名为a.c, 在修改之前你可以复制a.c为a.orig.c进行备份.1.为单个文件生成补丁$ diff ...

2019-01-31 22:18:00 512

原创 ubuntu 10.04系统下编译安装2.6.34内核

最近需要学习Linux内核,而很多书籍都是以2.6的内核展开讲解,因此我安装了ubuntu10.04.1.拿到手需要先安装vmtools,能够方便地和主机之间进行复制粘贴,并改善分辨率的问题。安装完还可以打开共享文件夹,方便!2.由于官方已经不再维护10.04,因此需要更换apt源,需要修改/etc/apt/sources.list文件:###### Ubuntu Main Repo...

2019-01-18 12:12:10 472

转载 解决树莓派apt-update速度慢的方法

1.备份原系统的apt的源镜像列表sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak2.编辑sources.list 文件sudo vim /etc/apt/sources.list3.注释掉原来的内容,添加以下内容:deb http://mirrors.aliyun.com/raspbian/raspbian/...

2019-01-10 23:19:04 7023

原创 Ubuntu 14.04配置samba手顺

1.在Ubuntu中下载sambaapt install sambaapt install smbclient2.修改samba对应的配置文件,在/etc/samba/smb.conf中添加:security = share[share] comment = share folder browseable = yes path = /root creat...

2019-01-09 22:56:56 213

原创 UART、SPI、IIC通信总线原理

1.UART原理串口是典型的异步串行通信方式,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。其中,232电平可传输20米左右,485和422信号可传输1200米。如上图所示,进行数据传输时,TxD用于数据的发送,RxD用于数据的接受。数据帧格式:其中:起始...

2018-08-03 22:21:54 2253

转载 结构体内存对齐的规则

1、每个成员的偏移量都必须是当前成员所占内存大小的整数倍如果不是编译器会在成员之间加上填充字节。 2、当所有成员大小计算完毕后,编译器判断当前结构体大小是否是结构体中最宽的成员变量大小的整数倍 如果不是会在最后一个成员后做字节填充。下面来具体分析1、简单结构体struct s1{char ch1;char ch2;int i;};这个结构体的大小容易计算,满足两个原则即可,为8,那么下面这个呢st...

2018-07-05 19:59:15 178

空空如也

空空如也

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

TA关注的人

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