自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 linux下I/O复用与poll实际使用(四)

poll事件读写,server端代码见下,client端代码见(三)/*poll 与 select 很类似,都是对描述符进行遍历,查看是否有描述符就绪。如果有就返回就绪文件描述符的个数将。poll 函数如下:  #include <poll.h>  int poll(struct pollfd *fdarray, unsigned long nfds, int timeou...

2018-10-23 19:57:56 167

原创 linux下I/O复用与epoll实际使用(三)

前两章已经学习了epoll根据前两篇的学习,基本掌握了epoll事件,但对于同时监控读写事件还未涉及到,故作一次补充server端#include<stdio.h>#include<arpa/inet.h>#include<unistd.h>#include<stdlib.h>#include<sys/socket.h>#i...

2018-10-23 19:55:26 189

原创 linux下I/O复用与epoll实际使用(二)

上一节《linux下I/O复用与epoll实际使用(一)》主要讲解了epoll的原理,这一节结合socket的编程,详解select与epoll编程示例。一、socket编程在TCP/IP协议中“IP地址+TCP或者UDP端口号”唯一标识网络通讯中的一个进程,"IP+端口号"就称为socket。在TCP协议中,建立连接的两个进程各自有一个socket来标识,name两个socket组成的soc...

2018-10-18 19:41:56 206

转载 信号量、互斥锁、条件变量区别

转载自https://www.cnblogs.com/lonelycatcher/archive/2011/12/20/2294161.html信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在哪里)。而互斥锁是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlo...

2018-10-11 14:09:59 384

原创 linux下I/O复用与epoll实际使用(一)

一、背景I/O多路复用有很多种实现,在linux上,2.4内核前主要是select和poll,从2.6内核正式引入epoll以来。epoll已经成为目前实现高性能网络服务器的必备技术。尽管他们的使用方法不尽相同,但是从本质上却没有什么区别。二、选择epoll的原因select的缺陷高并发的核心解决方案是1个线程处理所有连接的“等待消息准备好”,这一点上epoll和select是无争议的。...

2018-10-08 20:55:27 335 1

原创 dpdk学习(1)----程序代码创建流程

关于dpdk的初始化rte_eal_init()有关pcie部分的关系static struct rte_driver rte_opal_card_driver={.type=PMD_PDEV,.init=rte_opal_card_init,};PMD_REGISTER_DRIVER(rte_opal_card_driver);#define PMD_REGIST

2018-01-16 16:58:53 642

转载 linux R8169网卡驱动驱动笔记(二)----Linux MSI中断

1.什么是MSI中断   Message Signaled Interrupts 是pci2.2中提出来的一种新的中断形式。后续有msi-x扩展。   msi以及msi-x这种中断形式的一个最主要的特点就是,它在系统的特定地址做一个memory write transaction,将一个系统约定的数据写入,以此通知CPU一个中断产生了。这个特点带来的最主要的好处就是脱离了传统的inte

2017-10-26 16:42:04 2689

转载 rtl8169网卡驱动

原文:http://www.bubuko.com/infodetail-844822.html本文通过学习RealTek8169/8168/8101网卡的驱动代码(drivers/net/r8169.c),梳理一下Linux下网卡的收包过程。在下水平相当有限,有不当之处,还请大家斧正^_^ 驱动的初始化如下的rtl8169_init_module函数

2017-10-19 20:16:32 2022

原创 关于Linux网络设备rtl8169代码分析笔记(一)-------MMIO

关于Linux网络设备rtl8169代码分析笔记(一)——-MMIO 在probe卡过程中涉及到RTL_W8()即对MMIO寄存器进行read write操作。下面是对MMIO一些基础知识。 MMIO(Memory mapping I/O)即内存映射I/O,它是PCI规范的一部分,I/O设备被放置在内存空间而不是I/O空间。从处理器的角度看,内存映射I/O后系统设备访问起来和内存

2017-10-13 14:37:12 1439

转载 Linux的PCI驱动分析

Linux的PCI驱动分析 (2013-12-11 19:17:30)转载▼标签: linux it  1. 关键数据结构PCI设备上有三种地址空间:PCI的I/O空间、PCI的存储空间和PCI的配置空间。CPU可以访问PCI设备上的所有地址空间,其中I/O空间和存储空间提供给设备驱动程序使用,而配置空

2017-05-26 21:08:44 306

转载 深入分析 Linux 内核链表

本文系转载https://www.ibm.com/developerworks/cn/linux/kernel/l-chain/本文详细分析了 2.6.x 内核中链表结构的实现,并通过实例对每个链表操作接口进行了详尽的讲解。一、 链表数据结构简介链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组

2017-03-16 10:38:39 417

原创 单链表和双向循环链表的创建、初始化、以插入(二)

对于双向循环链表的创建可从下图理解:由上图可清晰的知道双向循环链表的结构,即对于一个newNode插入链表是首先应该将newNode的prev指向current,即newNode->prev=current;再将newNode的next指向current的next;即newNode->next=current->next;再将current的之前的下一个元素即15所指代的结构体指向newNod

2017-03-15 18:50:39 559

转载 单链表和双向循环链表的创建、初始化、以插入(一)

关于链表最近在学习linux 内核时发现关于链表的好多东西都已忘记了,重新又学习了下。关于单向循环链表涉及到链表的创建、初始化、插入、以及删除。#include "stdafx.h"#include "stdio.h"#include #include "string.h"typedef int elemType;typedef struct Node{

2017-03-15 18:09:22 808

原创 关于使用shell开辟几个并发线程同时执行互不相关的应用

在bash中,我们通过后台运行(&)实现多线程。#!/bin/bashtmpt="/tmp/$$.fifo"mkfifo $tmpt #新建一个fifo类型的文件exec 6rm $tmptt_sum=0;function fun3()#创建函数{    t_sum=$(($t_sum+1))}for ((i=0;iechodone >& 6

2016-11-23 15:24:31 612

原创 关于map,hash_map小数据量查询效率的问题

关于map>MultimapHash_map>Hash_multimap对于数据量不大情况下的测试情况:查询key值为4的情况下循环100万次得出的查询时间:Hash_map执行时间为868.575351秒Hash_multimap 执行时间892.441939秒Map_vector执行时间:717.130047秒Multimap执行时间为749.253617秒

2016-09-02 17:16:04 808

dpdk学习之路

网卡驱动初始化,内存分配,以及uio代码分解学习,以及dpdk代码封装

2018-04-18

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除