
操作系统
文章平均质量分 80
步基
深耕音视频领域,系统架构
展开
-
qnx进程通信
qnx进程通信原创 2022-10-31 16:02:43 · 1644 阅读 · 0 评论 -
qnx系统学习
qnx操作系统原创 2022-06-09 09:43:02 · 6794 阅读 · 1 评论 -
生产者消费者之无锁队列
生产者消费者模型包含4种模式,本文主要讨论1:1,以linux内核2.6.24.4版本kfifo为例。1:1,1:n,n:n,n:1kfifo的定义文件:kernel/kfifo.ckfifo的头文件: include/linux/kfifo.h1. kfifo概述kfifo是内核里面的一个First In First Out数据结构,它采用环形循环队列的数据结构来实现;它提供一个无边界的字节流服务,最重要的一点是,它使用并行无锁编程技术,即当它用于只有一个入队线程和一.原创 2022-03-10 21:22:07 · 1131 阅读 · 0 评论 -
windows服务ServiceProcess
一、Windows服务概述1、Windows服务应用程序是一种需要长期运行的应用程序,它适合服务器环境。2、无用户界面,任何消息都会写进Windows事件日志。3、随计算机启动而启动,不需要用户一定登录Windows。4、通过服务控制管理器,可以终止、暂停及当需要时启动Windows服务。5、类继承关系Object Component ServiceBase ServiceController Installer ComponentInstal...原创 2021-12-04 11:09:26 · 2149 阅读 · 0 评论 -
linux gdb调试
使用gdb调试时,需要在编译时使用-g参数 g++ -g test.cpp -o test gdb ./test 命令如下:(gdb) start //开始调试(gdb) n //一条一条执行(gdb) step/s //执行下一条,如果函数进入函数(gdb) backtrace/bt //查看...原创 2021-11-14 18:05:35 · 122 阅读 · 0 评论 -
总线详解---新手村
总线基础:总线定义:连接两个以上部件或者设备的信息通路,共享传输介质总线类型:1 芯片内总线:在芯片内部各个元件提供连接支持,比如CPU芯片内部各个寄存器、ALU等部分 图1 芯片内总线2 系统总线:单总线和多总线 图2 系统总线数据总线:双向传输各个部件的数据信息,数据总线的位数一...原创 2021-08-23 11:50:59 · 475 阅读 · 0 评论 -
CUP 三级缓存L1 L2 L3 cahe详解
三级缓存(L1、L2、L3)是什么?以近代CPU的视角来说,三级缓存(包括L1一级缓存、L2二级缓存、L3三级缓存)都是集成在CPU内的缓存,它们的作用都是作为CPU与主内存之间的高速数据缓冲区,L1最靠近CPU核心;L2其次;L3再次。运行速度方面:L1最快、L2次快、L3最慢;容量大小方面:L1最小、L2较大、L3最大。CPU会先在最快的L1中寻找需要的数据,找不到再去找次快的L2,还找不到再去找L3,L3都没有那就只能去内存找了。一级缓存(L1 Cache)一级缓存....原创 2021-07-30 11:14:27 · 18851 阅读 · 0 评论 -
指令重排详解
指令重排: 编译器指令重排,cpu指令重排,内存指令重排。编译器可能会调整顺序,如下图,左边是c++源码,右边是优化后顺序一条汇编指令的执行是可以分为很多步骤的, 分为不同的硬件执行取指 IF译码和取寄存器操作数 ID执行或者有效地址计算 EX (ALU逻辑计算单元)存储器访问 MEM写回 WB (寄存器)指令重排只可能发生在毫无关系的指令之间, 如果指令之间存在依赖关系, 则不会重排。单线程内程序的执行结果不能被改变。1 原子性是指一个操作是不可中断的.原创 2021-07-30 16:15:23 · 3549 阅读 · 0 评论 -
linux内核笔记
开机加电启动BIOS,准备实模式下的中断向量表和中断服务程序加载第一部分内核代码--引导程序bootsect加载di'er原创 2021-06-28 17:22:51 · 425 阅读 · 0 评论 -
cpu总线详解
数据总线(1) 是CPU与内存或其他器件之间的数据传送的通道。(2)数据总线的宽度决定了CPU和外界的数据传送速度。(3)每条传输线一次只能传输1位二进制数据。eg: 8根数据线一次可传送一个8位二进制数据(即一个字节)。(4)数据总线是数据线数量之和。数据总线数据总线是CPU与存储器、CPU与I/O接口设备之间传送数据信息(各种指令数据信息)的总线,这...原创 2017-12-20 17:32:37 · 21978 阅读 · 1 评论 -
浅谈关于SRAM与DRAM的区别
在上体系结构这门课之前,我只知道DRAM用作内存比较多,SRAM用作cache比较多。在今天讲到内存技术时,我对于这两个基础概念有了更加完整的认识。这篇文章是我的听课心得,现在分享给各位,仅供参考,若有错误多多指正。 从名字上看,SRAM与DRAM的区别只在于一个是静态一个是动态。由于SRAM不需要刷新电路就能够保存数据,所以具有静止存取数据的作用。而DRAM则需要不停地刷新电路,否则内转载 2017-12-20 17:10:22 · 800 阅读 · 0 评论 -
字节序问题
字节序的问题涉及硬件架构,目前主要是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。那么究竟什么是big endian,什么又是little endian呢? 为方便理解,摘了INTER手册中的一张图。呵呵。 字节顺序是指占内存多于一转载 2017-10-23 16:55:16 · 390 阅读 · 0 评论 -
MFC消息偏--收藏
http://www.360doc.com/content/12/0207/17/747387_184835230.shtml转载 2016-11-24 14:00:48 · 220 阅读 · 0 评论 -
Windows 消息机制详解
总的来说:MSG包括:窗口句柄,指示MSG发送的目的窗口消息标识lPARAM、wParam发送时间发送时的鼠标位置 关于消息队列:Windows系统有一个系统消息队列每个线程都有一个自己的消 息队列(由于发送消息MSG需 要提供一个窗口HWnd,而基 本有窗口的线程,都是UI线 程),因此基本上如果线程使用了GDI函数,则windows给该线程分配一个线程消转载 2017-05-11 11:56:59 · 472 阅读 · 0 评论 -
Linux 文件系统(一)---虚拟文件系统VFS----超级块、inode、dentry、file
一:什么是文件系统,详见:http://zh.wikipedia.org/zh/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F其实一句话就是管理这块文件的机制(组织方式,数据结构之类...)Linux系统中存在很多的文件系统,例如常见的ext2,ext3,ext4,sysfs,rootfs,proc...很多很多。。。我们知道每个文件系统是独立的,转载 2017-07-03 18:36:40 · 569 阅读 · 0 评论 -
PE文件结构详解(一)基本概念
PE(Portable Execute)文件是Windows下可执行文件的总称,常见的有DLL,EXE,OCX,SYS等,事实上,一个文件是否是PE文件与其扩展名无关,PE文件可以是任何扩展名。那Windows是怎么区分可执行文件和非可执行文件的呢?我们调用LoadLibrary传递了一个文件名,系统是如何判断这个文件是一个合法的动态库呢?这就涉及到PE文件结构了。PE文件的结构一般来说如转载 2017-07-05 14:13:33 · 378 阅读 · 0 评论 -
windows消息和消息队列 二
与基于MS - DOS的应用程序不同,Windows的应用程序是事件(消息)驱动的。它们不会显式地调用函数(如C运行时库调用)来获取输入,而是等待windows向它们传递输入。 windows系统把应用程序的输入事件传递给各个窗口,每个窗口有一个函数,称为窗口消息处理函数。窗口消息处理函数处理各种用户输入,处理完成后再将控制权交还给系统。窗口消息处理函数一般是在注册一个窗口的时候指定的。你可以从典转载 2017-07-05 15:36:52 · 505 阅读 · 0 评论