logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

点进来,告诉你什么是三态模型、五态模型、七态模型、什么是Linux操作系统的进程状态转换

三态模型一个进程从创建而产生至撤销而消亡的整个生命周期,可以用一组状态加以刻划,根据三态模型,进程的生命周期可分为如下三种进程状态: 1. 运行态(running):占有处理器正在运行 2. 就绪态(ready):具备运行条件,等待系统分配处理器以便运行 3. 等待态(blocked):不具备运行条件,正在等待某个事件的完成下面是三个状态的转换图:运行状态的进程将由于出现等待事件而进入等待状态,当

文章图片
#数据结构#链表#b树 +2
一文让你读懂Linux五大模块内核源码,内核整体架构设计(超详细)

一、前言本文是“Linux内核源码分析”系列的专业,会以内核的核心功能为出发点,描述Linux内核的整体架构,以及架构之下主要的软件子系统。之后,会介绍Linux内核源文件的目录结构,并和各个软件子系统对应。二、 Linux内核的核心功能如下图所示,Linux内核只是Linux操作系统一部分。对下,它管理系统的所有硬件设备;对上,它通过系统调用,向Library Routine(例如C库)或者其它

文章图片
#哈希算法#数据结构#链表 +2
手把手教你在ARM板上写一个驱动程序!

字符设备是Linux驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。比如我们最常见的点灯、按键、IIC、SPI,LCD 等等都是字符设备,这些设备的驱动就叫做字符设备驱动。那么在Linux下的应用程序是如何调用驱动程序的呢?Linux 应用程序对驱动程序的调用如图所示:​Linux应用程序对驱动程序的调用流程。

文章图片
#驱动开发#linux
超详细的Linux编程之UDP SOCKET全攻略(一文让你彻底了解)

一、基本的udp socket编程1. UDP编程框架要使用UDP协议进行程序开发,我们必须首先得理解什么是什么是UDP?这里简单概括一下。UDP(user datagram protocol)的中文叫用户数据报协议,属于传输层。UDP是面向非连接的协议,它不与对方建立连接,而是直接把我要发的数据报发给对方。所以UDP适用于一次传输数据量很少、对可靠性要求不高的或对实时性要求高的应用场景。正因为U

文章图片
#udp#linux#网络协议 +2
深入讲解内存分配函数 malloc 原理及实现

另外需要注意的是,由于Linux是按页进行内存映射的,所以如果break被设置为没有按页大小对齐,则系统实际上会在最后映射一个完整的页,从而实际已映射的内存空间比break指向的地方要大一些。一个简单可行方案是将堆内存空间以块(Block)的形式组织起来,每个块由meta区和数据区组成,meta区记录数据块的元信息(数据区大小、空闲标志位、指针等等),数据区是真实分配的内存区域,并且数据区的第一个

文章图片
#arm开发
讲解如何从内核角度理解K8s CPU限流的原理

由于进程 A 被限制为只能使用 10% 的 CPU 运行时间,所以在一个周期内,进程 A 只能获得 10 毫秒的运行时间。字段用于保存进程组在当前周期内剩余的可运行时间,如果调度器选中了进程组中某个进程进行运行时,将会减少进程组的剩余可运行时间。在一个周期内,当进程组的可运行时间变为 0 时,那么此进程组将会被限制运行(称为 CPU Throttling),直到下一个周期开始。定时器每隔一个周期触

文章图片
#linux#运维#服务器
手把手教你系统级性能分析工具perf的介绍与使用(超详细)

测试环境:Ubuntu16.04 + Kernel:4.4.0-31系统级性能优化通常包括两个阶段:性能剖析(performance profiling)和代码优化。性能剖析的目标是寻找性能瓶颈,查找引发性能问题的原因及热点代码。代码优化的目标是针对具体性能问题而优化代码或编译选项,以改善软件性能。在性能剖析阶段,需要借助于现有的profiling工具,如perf等。在代码优化阶段往往需要借助开发

文章图片
#性能优化#linux#运维 +2
一文深入搞懂ARM处理器架构

A32架构的ARM的地址总线为32位,故CPU可寻址范围为0x00000000~0xffffffff寻址空间为4GB,所有的内部和外部存储或者外设单元都需要通过对应的地址来操作,不同芯片外设的种类数量寻址空间都不一样,为了能让内核更方便的管理不同的芯片设计,ARM内核会先给出预定义的存储映射。不过需要注意的是由于修改的CPSR是该模式下的影子CPSR,即SPSR,因此并不是实际的CPSR,所以一般

文章图片
#arm开发
手把手教你系统级性能分析工具perf的介绍与使用(超详细)

测试环境:Ubuntu16.04 + Kernel:4.4.0-31系统级性能优化通常包括两个阶段:性能剖析(performance profiling)和代码优化。性能剖析的目标是寻找性能瓶颈,查找引发性能问题的原因及热点代码。代码优化的目标是针对具体性能问题而优化代码或编译选项,以改善软件性能。在性能剖析阶段,需要借助于现有的profiling工具,如perf等。在代码优化阶段往往需要借助开发

文章图片
#性能优化#linux#运维 +2
到底了