zoukankan      html  css  js  c++  java
  • linux 内核分析之自言自语

    1. linux 内核线程概念的简单表述:内核采用一致的数据结构收集和处理用户进程线程的信息,内核线程依托于这些内核数据结构并依此产生,它的动作受动于进程的明确的要求,信号,软中断,硬中断,内核管理及异常,分别的例子为进程要求系统调用做I/O, signal通知, 除零, 外部异步事件中断,内存页回收或者页交换,内存水印上下限报警或者无页分配等。内核线程也依赖于内核对他具体的编程设置,比如工作队列就是典型的生成内核线程来处理相应事件的,受内核管理并调度的;内核线程不同于用户进程线程的关键是在于内核对内核线程不需要mm结构,但它会使用active_mm结构指向被内核调度出去进程的mm结构,这个active有效内存结构即用来给内核线程做栈使用. 内核线程是不会访问用户空间的,这样所有进程的内核空间都是一样的,并且节省mm空间。

    2. RCU(Read-Copy-Update) 无锁机制。其核心思想是将写延迟到没有读再进行数据更新。当可以进行写的时候,内核会创建一段新的内存空间,拷贝原来用指针维护的数据结构生成一个新的副本,再对该副本更新update数据内容,调用rcu_assign_pointer函数修改原来数据结构指针指向这个新的副本空间,注意这个更新的过程是原子的,整个数据更新过程由该原子性修改指针完成。

    3.

  • 相关阅读:
    985大学的部分课程链接
    SVD学习
    资源三:机器学习源代码
    资源二:计算机视觉,机器学习方面牛人网站链接
    资源一:计算机视觉,机器学习方面的论文和算法代码
    PHPCMS v9 分析(1)
    highcharts 配置选项
    highcharts 基本组成
    Jquery 代码性能改善
    非80端口的网站发布后外网访问的问题
  • 原文地址:https://www.cnblogs.com/lcnewstart/p/1863235.html
Copyright © 2011-2022 走看看