logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Linux 设备驱动程序(3)- 字符驱动(2)

在开始之前,还是需要在对字符设备之间的数据结构进行回顾和详解,这个是字符设备驱动的核心。

文章图片
#linux#驱动开发
计算机组成原理(4) - 定点数的编码表示

计算机中数值的表示主要分为定点数和浮点数两种形式。定点数的小数点位置固定,分为定点整数和定点小数,具有运算简单、硬件成本低的优点,但表示范围和精度有限,适用于嵌入式系统等场景。浮点数采用科学计数法思想,通过阶码和尾数动态调整小数点位置,能表示极大或极小的数,精度较高但运算复杂,广泛应用于科学计算等领域。有符号数的表示经历了从原码、反码到补码的演变过程,补码因统一了0的表示、简化了运算而成为现代计算

文章图片
计算机组成原理(7) - 算数逻辑单元(ALU)

算术逻辑单元(ALU)是CPU的核心运算部件,负责执行算术和逻辑运算。其核心功能包括算术运算(加法、减法、乘法等)和逻辑运算(与、或、非等)。ALU由输入控制、运算核心电路(加法器、逻辑单元等)和标志生成电路组成,通过接收操作码控制运算类型。工作流程包括指令解析、数据输入、运算执行和结果存储。ALU的性能直接影响CPU的数据处理能力,是计算机执行运算的基础单元。

文章图片
计算机组成原理(10) - 浮点数的表示

本文详细介绍了浮点数的计算机表示方法。主要内容包括:1)浮点数的概念与作用,用于表示带小数点的实数;2)IEEE 754标准规定的单精度(32位)和双精度(64位)浮点存储格式,包括符号位、指数位和尾数位的划分;3)浮点数的数值范围、精度和特殊值(如无穷大、NaN)的表示方法;4)数据在内存中的存储方式,包括大小端模式和边界对齐规则。文章通过具体示例阐述了浮点数的存储原理,并解释了其精度限制和运算

文章图片
操作系统(8)第二章- 进程同步与互斥

本文系统阐述了进程同步与互斥的核心概念。在多道程序环境下,进程并发访问共享资源会导致竞态条件,需通过临界区管理和四大准则(空闲让进、忙则等待、有限等待、让权等待)来保证数据一致性。进程互斥确保共享资源的独占访问,而进程同步则协调协作进程的执行顺序。Linux系统通过三层架构(硬件指令-内核原语-用户API)实现同步互斥,主要采用互斥锁(mutex)、信号量、自旋锁和条件变量四种机制。互斥锁适用于大

文章图片
操作系统(6)第二章- 处理器调度

本文介绍了操作系统处理器调度的核心概念和层次划分。调度是指操作系统决定线程占用CPU核心的过程,目标是提高响应速度、CPU利用率和公平性。调度分为三个层次:高级调度(作业调度)处理批处理任务,中级调度(内存调度)管理进程换入换出,低级调度(CPU调度)决定线程执行顺序。文章详细说明了进程调度的时机、方式(抢占式/非抢占式)和切换过程,包括上下文切换的内容和开销来源。最后描述了Linux内核完整的调

文章图片
C 进阶(13) - 高级I/O

本文系统介绍了Linux系统编程中的核心I/O技术。首先详细解析了非阻塞I/O机制及其设置方法,包括fcntl()函数的使用和错误处理策略。其次阐述了记录锁的实现原理和应用场景,分析了其兼容性规则和生命周期特性。然后深入探讨了I/O多路转接技术,对比了select、poll和epoll三种机制的优劣。文章还介绍了异步I/O的工作原理及其五种模型对比,以及readv/writev向量I/O的高效实现

文章图片
C 进阶(11) - 线程控制

本文深入探讨了Linux C多线程编程中的核心控制机制与常见陷阱。主要内容包括:1. 线程创建限制因素(系统全局线程数、用户级进程数、虚拟内存与栈大小等)及优化方法;2. 线程属性配置(栈大小、分离状态、调度策略)的精细控制;3. 同步原语属性设置(互斥锁类型、优先级继承协议);4. 重入与线程安全的区别及实现要求;5. 线程私有数据的两种实现方式(__thread和pthread_key_t);

文章图片
C 进阶(9) - 信号

本文系统介绍了Linux C编程中的信号机制及其相关函数。信号是Linux系统中重要的异步通知机制,用于进程间通信和异常处理。文章详细讲解了信号的生命周期(产生、注册、递送、处理)、常用信号类型(如SIGINT、SIGTERM等)及其区别,并重点分析了信号的三种处理方式(默认、忽略、自定义)。通过代码示例展示了sigaction()的推荐用法,强调信号处理函数中只能使用异步信号安全的函数。此外,还

文章图片
#c语言
C 进阶(7) - 进程控制

本文深入探讨了Linux多进程编程的核心概念和技术。首先介绍了进程标识符(PID/PPID)及其获取方法,详细解析了fork()系统调用的工作原理和写时拷贝机制。文章对比了进程与线程的区别,指出Linux内核将两者统一视为任务(task)进行调度。重点讲解了进程控制的三大核心操作:创建(fork)、终止(exit/_exit)和回收(wait/waitpid),并分析了竞争条件问题及其解决方案(信

文章图片
#c语言#linux
    共 17 条
  • 1
  • 2
  • 请选择