• 2024-05-072024.4.23
    继续之前任务@keyframescuIcon-spin{ 0%{ -webkit-transform:rotate(0); transform:rotate(0); } 100%{ -webkit-transform:rotate(359deg); transform:rotate(359deg); }}.cuIconfont-spin{ -webkit-animation:cuIcon-spin2sinfinitelinear; animation:cuIc
  • 2024-05-05自旋锁spinlock的实现
    自旋锁,顾名思义:自己在原地打转,等待资源可用,一旦可用就上锁霸占它。问题来了,假设别人已经上锁了,你原地打转会占住CPU资源了,别的程序怎么运行?它没有CPU怎么解锁?这个问题,有2个答案:①原地打转的是CPUx,以后CPUy会解锁:这涉及多个CPU,适用于SMP系统;②对于单CPU系统,自旋锁的“自旋
  • 2024-05-03linux锁的介绍和使用 -04
    本节参考:https://www.kernel.org/doc/html/latest/locking/index.htmlhttps://mirrors.edge.kernel.org/pub/linux/kernel/people/rusty/kernel-locking/  锁的类型 Linux内核提供了很多类型的锁,它们可以分为两类: ①自旋锁(spinninglock); ②睡眠锁(sleepinglo
  • 2024-03-25自旋锁spinlock
    参考资料:《正点原子Linux驱动教程》《宋宝华Linux设备驱动开发详解》 原子操作只能对整型变量或者bit位进行保护,但是实际使用中,不可能只有整型变量或者bit位等临界区 自旋锁spinlock也是一种典型的对临界资源进行互斥访问的手段,其名称来源自它的工作方式。当一个线程要
  • 2024-03-11【转】spin lock 和mutex
      原文:https://zhuanlan.zhihu.com/p/88427657 packagemainimport( "fmt" "log" "runtime" "sync" "sync/atomic" "time")//Lockerisaspinlockimplementation.////ALockermustnot
  • 2024-01-19重复spin问题
    ROS2重复spin问题报错描述:在执行回调函数时,报错terminatecalledafterthrowinganinstanceof'std::runtime_error'what():Node'/workflow_control_node'hasalreadybeenaddedtoanexecutor.[ros2run]:Aborted;原因在回调函数中又执行了rclcpp::spin监听函
  • 2024-01-18使用SPIN技术对LLM进行自我博弈微调训练
    2024年是大型语言模型(llm)的快速发展的一年,对于大语言模型的训练一个重要的方法是对齐方法,它包括使用人类样本的监督微调(SFT)和依赖人类偏好的人类反馈强化学习(RLHF)。这些方法在llm中发挥了至关重要的作用,但是对齐方法对人工注释数据有的大量需求。这一挑战使得微调成为一个充
  • 2023-12-22Linux内核在RISC-V架构下的spinlock实现
    riscv没有sev/wfe指令,当前无法在spinlock时省功耗,只能通过while循环不断检查条件。本文分析linux内核下对于spinlock的实现,具体到RISC-V体系结构。由于RISC-V体系结构下目前只是简单的实现了一个基于TAS的最基本的spinlock,本文的另一个附加任务就是分析Linux内核为各个平台下实
  • 2023-12-17linux---内核笔记
    semaphore用于进程和进程之间的同步允许有多个进程进入临界区代码执行进程获取不到信号量锁会陷入休眠,让出cpu信号量本质是基于进程调度器,UP和SMP下的实现无差异。被信号量锁保护的临界区代码允许睡眠,这是和自旋锁最大的区别之一。不支持进程和中断之间的同步,这是和自旋锁
  • 2023-12-09Unreliable Guide To Locking 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/kernel-hacking/locking.htmlRusty'sRemarkablyUnreliableGuidetoKernelLocking作者RustyRussell简介欢迎阅读Rusty'sRemarkablyUnreliableGuidetoKernelLockingissues。本文档描述了LinuxKernel2.6中的锁定系统
  • 2023-11-22霍尔编码器
    霍尔编码器-直流减速电机介绍直流减速电机,即齿轮减速电机,是在普通直流电机的基础上,加上配套齿轮减速箱。齿轮减速箱的作用是,提供较低的转速,较大的力矩。同时,齿轮箱不同的减速比可以提供不同的转速和力矩。这大大提高了,直流电机在自动化行业中的使用率。减速电机是指减速机和电机
  • 2023-11-21去重N皇后
    题目:将上下对称、左右对称棋局、主副对角线对称棋局和旋转后重复视为重复,则要求输出去重后的N皇后问题的棋盘布局这道题是一道作业题,我都惊到了,一向弱智的作业题中竟然冒出一道这样的题,这题最起码橙黄之间的难度,标个黄应该也没什么问题。我竟然写了一百多行代码,在不影响可读性的
  • 2023-10-19linux 内核 --- 关抢占/关中断,临界区
     preempt_disable()local_irq_disable()/local_irq_save(flags)spin_lock()spin_lock_irq()/spin_lock_irqsave(lock,flags)spin_lock()会调用preempt_disable()导致本核的抢占调度被关闭(preempt_disable函数实际增加preempt_count来达到此效果),spin_lock_irq()是local_i
  • 2023-09-17linux --- 自旋锁(spinlock_t)
    定义自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,”自旋”一词就是因此而得名。由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高于
  • 2023-09-13latch介绍
    latch介绍Latch属于SystemLock,用于保护SGA区中共享数据结构的一种串行化锁定机制。Latch的实现是与操作系统相关的,尤其和一个进程是否需要等待一个latch、需要等待多长时间有关。Latch是Oracle提供的轻量级锁资源,是一种能够极快地被获取和释放的锁,能快速、短时间的锁定资
  • 2023-08-26Linux设备驱动开发详解——学习笔记
    Linux设备驱动概述计算机系统的运转需要软件和硬件共同参与,硬件是底层基础,软件则实现了具体的应用。硬件和软件之间则通过设备驱动来联系。在没有操作系统的情况下,工程师可以根据硬件设备的特点自行定义接口。而在有操作系统的情况下,驱动的架构则由相应的操作系统来定义。驱动存
  • 2023-08-08Bootstrap框架----新建示例--各种input
    我们在之前的文章中已经在SpringMVC基础框架的基础上应用了BootStrap的后台框架,在此基础上记录新建示例。应用bootstrap模板基础项目源码下载地址为:SpringMVC+Shiro+MongoDB+BootStrap基础框架我们在基础项目中已经做好了首页index的访问。现在就在index.jsp页面和index的路由Con
  • 2023-07-21iOS 多线程自己的理解
    .创建线程的平均开销:内存堆栈:主线程——1M,子线程——512K时间:基本可以忽略不计a.不可改变的对象,通常是线程安全的b.主线程负责处理响应事件线程安全的类和函数:NSArray,NSData,NSNumber.....非线程安全:NSBundle,NSCoder,NSArchiver
  • 2023-05-31vue开场动画
    <!DOCTYPEhtml><html><head><metacharset="utf-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge,chrome=1"><metaname="renderer"content="webkit">
  • 2023-04-2919 同步与互斥(五)自旋锁
    1简介自旋锁:通俗的说就是自己在原地打转,一直等待资源可用。不会休眠对临界资源的访问时,因为自旋锁的存在,某段临界资源被占用后。其他事件将无法访问,即进行所谓的自旋,“原地打转”注意:在自旋锁的临界区不能使用可能引起进程调度的函数(因为抢占已经被禁止了)。示例: copy_to_
  • 2023-03-27Spinner(列表选项框)的基本使用
    这一节是想给大家介绍一个Gallery(画廊)的一个控件,尽管我们可以不通过兼容使用Gallery,不过想想还是算了,因为Gallery在每次切换图片的时候,都需要重新创建视图,这样无疑会造成
  • 2023-03-24Leaflet中使用Leaflet.Spin插件实现地图加载等待效果
    场景Leaflet快速入门与加载OSM显示地图:Leaflet快速入门与加载OSM显示地图_BADAO_LIUMANG_QIZHI的博客-在上面的基础上,怎样使用插件实现地图加载等待效果如下注:博客:BADAO_LIU
  • 2023-03-11Spinner(列表选项框)的基本使用
    这一节是想给大家介绍一个Gallery(画廊)的一个控件,尽管我们可以不通过兼容使用Gallery,不过想想还是算了,因为Gallery在每次切换图片的时候,都需要重新创建视图,这样无疑会造成
  • 2023-02-27自旋锁、信号量、互斥体概述
    在Linux系统中有大量的临界资源需要保护,如何让各个任务有条不紊的访问这些资源,这涉及到Linux中并发访问的保护机制设计相关知识。后面会详细介绍这几个机制。(据可靠消息,锁
  • 2023-02-23ARM ticket spinlock 的实现
     https://jgsun.github.io/2021/09/12/ARM-ticket-spinlock/ARMticketspinlock的实现(jgsun.github.io) ARMticketspinlock的实现2021-09-12jgsun