摘要:
情景导入 我们都知道引入线程在合理的范围内可以加快提高程序的效率。但我们先来看看如果多线程同时访问一个临界资源会怎么样。 例程:模拟多窗口售票 c #include<pthread.h> #include<stdio.h> #include<stdlib.h> #include<string.h> 阅读全文
摘要:
背景 上一讲我们介绍了线程的创建,回收与销毁;简单地提到了线程属性。这一讲我们就来具体看看,线程的属性。 概述 c #include<pthread.h> typedef struct __pthread_attr_s { int __detachstate; // 线程的分离状态 int __sc 阅读全文
摘要:
概念 基础概念: 线程是cpu或操作系统调度的基本单位。线程大部分的资源是共享的,仅仅申请了自己的栈、空间。 线程是进程内部的一个执行分支,线程量级很小。 在程序中创建线程,可以提高效率,进程内线程越多,争夺到CPU的概率就越大,执行代码的概率就越大(有一个度)。 线程可以解决很多问题,而不会像进程 阅读全文
摘要:
介绍 情景引入: 在信号驱动IO模型中,当用户线程发起一个IO请求操作,会给对应的socket注册一个信号函数,然后用户线程会继续执行,当内核数据就绪时会发送一个信号给用户线程,用户线程接收到信号之后,便在信号函数中调用IO读写操作来进行实际的IO请求操作。这个一般用于UDP中,对TCP套接口几乎是 阅读全文
摘要:
知识 TCP(Transmission Control Protoco 传输控制协议)。 TCP是一种面向广域网的通信协议,目的是在跨越多个网络通信时,为两个通信端点之间提供一条具有下列特点的通信方式: 基于流的方式; 面向连接; 可靠通信方式; 在网络状况不佳的时候尽量降低系统由于重传带来的带宽开 阅读全文
摘要:
知识 一开始学习网络编程的时候,看到 socket(套接字) 这个概念比较困扰。但后来通过搜索 以及在 结合在似懂非懂的开发中,最终弄懂了套接字的含义: 套接字是一种抽象的接口,我们不需要关心网络通信的具体细节,就可以将数据通过这种"端口"发生到我们希望送达的地方。 有关概念 端口号概念 在网络技术 阅读全文
摘要:
知识 UDP:User Datagram Protocol的缩写。UDP不提供复杂控制机制,利用IP提供面向无连接的通信服务。且它是将应用程序发来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制。 UDP面向无连接,可以随时发送数据。它常用于几个方面: 包总量较少的通信(DNS、SNMP等) 阅读全文
摘要:
todo: shm 有关例程 IPC的方式通常有: Unix IPC包括:管道(pipe)、命名管道(FIFO)与信号(Signal) System V IPC:消息队列、信号量、共享内存 BSD套接字:Socket(支持不同主机上的两个进程IPC) 我们在这一讲介绍System V IPC的 信号 阅读全文
摘要:
背景 上一讲我们介绍了创建子进程的方式。我们都知道,创建子进程是为了与父进程协作(或者是为了执行新的程序,参考 Linux exec族函数解析 ) 我们也知道,进程之间的资源在默认情况下是无法共享的,所以我们需要借助系统提供的 进程间通信(IPC, InterProcess Communicatio 阅读全文
摘要:
背景 上一讲我们介绍了Unix IPC中的2种管道。 回顾一下上一讲的介绍,IPC的方式通常有: Unix IPC包括:管道(pipe)、命名管道(FIFO)与信号(Signal) System V IPC:消息队列、信号量、共享内存 Socket(支持不同主机上的两个进程IPC) 我们在这一讲介绍 阅读全文
摘要:
背景 上一讲介绍了有关系统编程的概念。这一讲,我们针对 进程 开展学习。 概念 进程的身份证(PID)每一个进程都有一个唯一的身份证号码,称之为进程号PID(Process Identity Number)。 每一个进程都有其双亲进程,称之为父进程(或许称为双亲进程更贴切)。 所有的进程都是祖先进程 阅读全文
摘要:
背景 系统编程其实就是利用系统中被支持的调度API进行开发的一个过程。 从这一讲开始,我们来介绍有关Linux 系统编程的学习。 知识 在进行Linux系统编程有关的开发之前,我们需要了解有关的概念。 进程(Process) 当一个进程创建以后,会被分配到一块虚拟内存中。 后面,我们还会知道:描述进 阅读全文
摘要:
通用技能树 软件 C/C++语言编程经验、编程能力、应用开发、OOP面向对象编程方式、软件框架、C指针、文件IO、进程线程、高级IO、对C++中的智能指针、多线程、网络编程有深入的认识和有项目实践经验。QT项目开发能力,GUI设计、参与过商业项目开发,至少2个以上项目开发经验, 汇编语言、ARM汇编 阅读全文
摘要:
背景 搞Linux搞这么久,一直在调试各种各样的驱动。却发现对Linux驱动有太多不够了解的地方。因此转载了 蜗窝科技 的有关文章,作为学习。 内容有少量纠正,样式有做调整。 作者:wowo 发布于:2014-2-27 17:01 分类:统一设备模型 原文:http://www.wowotech.n 阅读全文
摘要:
介绍 Linux系统的驱动框架主要就是三个主要部分组成,驱动、总线、设备。 随着电子行业的发展,控制器越来越强大,SOC(片上系统)出现了:在片内的CPU外围集成很多外设电路,这些外设都挂接在SOC内部的总线上。 不同于IIC、SPI和USB等这一类实际存在外部PCB走线总线,片内外设从Chip之外 阅读全文
摘要:
相信看了我博客的上篇的博友或路过者,都会觉得,sqlite小巧,易学,简单。下面是我再把我的笔记上传博客中,以帮助一些人和我自己,今后翻阅方便。因为我知道有这回事。 前几天看到有人回复帖子问了sqlite数据库用在哪些方面,其实这样的问题,都可以维基或是百度下的,什么都会出来,不过sqlite是小型 阅读全文
摘要:
1. SQL语法关键字 关键字 描述 Create Table 创建数据表 Alter Table 修改数据表 Drop Table 删除数据表 Create Index 创建索引 Drop Index 删除索引 Create Trigger 创建触发器 Drop Trigger 删除触发器 Cre 阅读全文