您现在的位置是:主页 > 数据库技术 > 数据库技术

Linux内核设计与实现的方法是什么

IDCBT2022-01-13服务器技术人已围观

简介今天小编给大家分享一下Linux内核设计与实现的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅

今天小编给大家分享一下Linux内核设计与实现的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

 

Unix强大的根本原因:

    Unix简洁, 提供几百个系统调用, 设计目的明确

    Unix中 所有东西都被当做文件对待

    Unix内核和相关系统工具是用C语言开发的, 移植能力强大

    Unix进程创建迅速, 有独特的fork机制

    Unix提供简单稳定的进程间通信元语

Linux是类Unix系统, 借鉴了Unix设计并实现了Unix的API.

应用程序通常调用库函数(如C库函数)再由库函数通过系统调用界面, 让内核代其完成各种任务.

    Linux支持动态加载内核模块

    Linux支持对称多处理(SMP)机制

    Linux为 抢占式内核

    Linux并不区分线程和其他的一般进程

    Linux提供具有设备类的面向对象的设备模型, 热插拔事件, 以及用户控件的设备文件系统

    中断和中断处理

    中断是一种解决处理器和速度差异的方案, 只有在硬件需要的时候再向内核发出信号. 中断本质上是一种特殊的电信号.

      内核响应特定中断, 然后 内核 调用特定的 中断处理程序 , 终端处理程序是设备驱动程序的一部分

      Linux中的终端处理程序是不可重入的, 同一个中断处理程序不会被同时调用

      中断上下文不可以睡眠(我理解当前被中断的程序再中断处理结束后需要继续执行)

      中断处理程序不在进程上下文中进行, 他们不能阻塞

      中断处理分为两部分, 上半部为中断处理程序, 要求尽可能快的执行, 下半部( 用于减少中断处理程序的工作量  )执行与中断处理密切相关但中断处理程序本身不执行的工作

      下半部的实现方法 软中断、tasklet、工作队列 ,

      中断机制的实现:设置产生中断, 通过电信号给处理器的特定管脚发送一个信号, 处理器听着当前处理工作, 关闭中断系统 ,  然后调到内存中预定义的位置(中断处理程序的入口点)开始执行.计算终端号, do_IRQ() 对接收的中断进行应答, 禁止这条线上的中断传递.

      内核同步

      对于共享资源, 如果同时被多个线程访问和操作, 就可能发生各线程之间相互覆盖共享数据, 造成访问数据不一致.

      同步实现通过主要 锁机制 对共享资源进行加锁, 只有持有锁的线程才能操作共享资源, 其他线程睡眠(或者轮询). 资源操作完成后, 持有锁的线程释放锁,  由等待线程抢锁.

      内核同步方法:

        原子操作

        自旋锁 , 特性是当线程无法获取锁, 会一直忙循环( 忙等 )等待锁重新可以, 适用于短期轻量级加锁

        标签:

        很赞哦! ()

本栏推荐