内核线程、轻量级进程、用户线程的区别和联系

 这是一篇关于Linux内核的线程、轻量级进程和用户线程区别与联系的相当不错的文章,强烈建议阅读...... 内核线程 内核线程只运行在内核态,不受用户态上下文的拖累。 处理器竞争:可以在全系统范围内竞争处理器资源;使用资源:唯一使用的资源是内核栈和上下文切换时保持...

2015-02-28 10:49:57

阅读数 1064

评论数 0

Linux 程序开发打印 Debug 信息的使用技巧

少废话,coding 最重要的是如何debug,debug 当然就少不了把程序信息输出,如何清晰明了地打印出程序信息,可以快速判断程序运行情况,定位程序出问题的地方。先来一段代码实战下再说:   #include stdio.h> #include stdlib.h> ...

2014-12-26 15:34:47

阅读数 296

评论数 0

const 、static、extern的用法总结

最近看许多公司笔试都考这几方面的内容,于是乎就搜索了一下,把这几个知识点总结以下,以增强基础,以及应付未来的笔试 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --------------------...

2014-12-25 10:40:23

阅读数 269

评论数 0

c语言中static 用法和extern

c语言中static 用法 static在c里面可以用来修饰变量,也可以用来修饰函数。 先看用来修饰变量的时候。变量在c里面可分为存在全局数据区、栈和堆里。其实我们平时所说的堆栈是栈而不是堆,不要弄混。 int a ; int main() {     int b ...

2014-12-25 10:30:40

阅读数 237

评论数 0

linux中定时器timer的使用

linux kernel中timer的使用 在kernel中如果想周期性的干些什么事情,或者某个特定时间干些什么事情,可以使用timer。 例如像周期性地dump某段buffer的数据等等。 先来看看使用方法。 先定义一个struct timer_list的对象。eg: struc...

2014-12-25 09:18:44

阅读数 245

评论数 0

schedule_timeout的相关介绍

schedule_timeout()进入延时唤醒状态. 如果在延迟过程中. 在通常的驱动程序中,可以以下列两种方式重新获得执行:在等待队列上调用一个 wake_up,或者 timout 超时。在这个特定实现中,没人会调用 wake_up(毕竟其它代码根本就不知道这件事),所以进程总是因 ti...

2014-12-24 16:57:08

阅读数 618

评论数 0

Linux进程间通信——使用信号量

这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。有关信号的更多内容,可以阅读我的另一篇文章:Linux进程间通信——使用信号。下面就进入信号量的讲解。 一、什么是信号量 为了防止出现因多个程序同时访问一个...

2014-12-11 20:22:48

阅读数 224

评论数 0

Linux进程间通信——使用共享内存

下面将讲解进程间通信的另一种方式,使用共享内存。 一、什么是共享内存 顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存...

2014-12-11 20:19:08

阅读数 150

评论数 0

http、TCP/IP协议与socket之间的区别

http、TCP/IP协议与socket之间的区别   网络由下往上分为:  www.2cto.com   物理层--                       数据链路层-- 网络层--                       IP协议 传输层--   ...

2014-12-11 08:35:57

阅读数 277

评论数 0

将archlinux 2013-06-01版,安装配置为个人工作站

各位朋友,archlinux20140105版ISO文件的安装,请见: http://blog.sina.com.cn/s/blog_69e5d8400101fxa3.html 虽然没本文写得细,但更精减。 本文安装所使用的镜像为:archlinux-2013.06.01-dual.iso...

2014-12-06 14:47:53

阅读数 341

评论数 0

中断控制---工作队列

1、工作队列描述: 工作队列(work queue)是将任务推后执行的另外一种手段;它的使用方法与Tasklet非常相似,最大的不同就是工作队列的处理函数中可以使用休眠,而Tasklet的处理函数中不允许使用休眠;这是因为Tasklet工作在中断上下文,而工作队列则工作在进程上下文; 工作队列...

2014-12-04 11:06:34

阅读数 239

评论数 0

linux中断处理 上半部 下半部

与Linux中断息息相关的一个重要概念是Linux中断分为两个半部:上半部(tophalf)和下半部(bottom half)。上半部的功能是"登记中断",当一个中断发生时,它进行相应地硬件读写后就把中断例程的下半部挂到该设备的下半部执行队列中去。因此,上半部执行的速度就会很快...

2014-12-03 18:10:30

阅读数 525

评论数 0

由.o文件生成.a文件(静态库)或者.dll文件(动态库)

关于库生成的问题     我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。 (1)静态...

2014-11-22 17:03:39

阅读数 768

评论数 0

gcc编译器 CFLAGS 标志参数说明

CFLAGS = -g -O2  -Wall -Werror -Wno-unused   编译出现警告性错误unused-but-set-variable,变量定义但没有使用,解决方法:  增加CFLAGS 或CPPFLAGS参数如下:   CPPFLAGS=" -Werror ...

2014-11-14 14:59:56

阅读数 131

评论数 0

linux编译工具链的用法

GCC 软件包包含 GNU 编译器,其中有C和C++编译器. 安装下列程序: c++, cc (link to gcc), cc1, cc1plus, collect2, cpp, g++, gcc, gccbug, 和 gcov 安装下列库文件: libgcc.a, libgcc_eh.a,...

2014-11-14 12:00:27

阅读数 1590

评论数 0

linux库文件的安装于使用

在学习某一函数库的时候,我们经常做的第一件事, 就是把该函数库的源码下载回来进行编译和安装(一般是这三步:./configure -> make -> make install),然后写一些调用库函数的小用例,看其能否正常运行以及运行后的效果。完成库函数安装,当我们满心期待地使用GCC...

2014-11-14 11:53:15

阅读数 2073

评论数 0

使用GDB调试程序

一般来说,GDB主要帮忙你完成下面四个方面的功能:     1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。     2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)     3、当程序被停住时,可以检查此时你的程序中所发生的事。     4、动态的...

2014-11-10 17:41:41

阅读数 228

评论数 0

微信公众平台开发入门教程

在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序、MySQL数据库、计算机网络通讯、及HTTP/XML/CSS/JS等基础。 我们将使用微信公众账号方倍工作室作为讲解的例子,二维码见底部。 本系列教程将引导你完成如下任务: 创建新浪云计算平台应用启用微信公众平台开发...

2014-11-08 10:52:55

阅读数 355

评论数 0

多进程和多线程的区别

很想写点关于多进程和多线程的东西,我确实很爱他们。但是每每想动手写点关于他们的东西,却总是求全心理作祟,始终动不了手。 今天终于下了决心,写点东西,以后可以再修修补补也无妨。   一.为何需要多进程(或者多线程),为何需要并发? 这个问题或许本身都不是个问题。但是对于没有接触过多进程编程的...

2014-11-05 11:46:06

阅读数 311

评论数 0

进程和线程的区别与联系

进程和线程的关系: (1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。 (2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。 (3)处理机分给线程,即真正在处理机上运行的是线程。 (4)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法...

2014-11-05 09:55:18

阅读数 217

评论数 0

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