- 浏览: 111489 次
- 性别:
- 来自: 杭州
最新评论
-
leeyisoft:
我也需要相同的问题,我是在win7上面出现这样的问题的,我直接 ...
关于long node name启动失败的问题 -
hxdawxyhxdawxy:
这个不错哦,我拿了,注明你的地址
Linux proc详解 -
woshabulaji:
很详细,感谢!
Linux proc详解
文章列表
在Linux 2.4内核中,Linux内核中使用了一个内核线程来处理用户态进程中的多个线程的上下文切换(线程切换)。
由于内核中并没有什么线程组的概念,即一个进程的多个线程,因此必须依靠在pthread库中实现一个额外的线程来管理其他用户线程(即用户程序生成的线程)的建立,
退出,资源分配和回收以及线程的切换。由于当时硬件并没有线程寄存器之类的东东来支持多线程,
因此线程的切换性能低下,并且需要引入复杂的机制在进程的栈中为各个线程划分出各自的栈数据所在位置,
并且在切换时进行栈数据拷贝。而最大的问题是内核中缺乏对线程间的同步机制的支持,
因此pthread库不得不在底层依靠信号方式来实现同步,因 ...
- 2009-10-28 14:44
- 浏览 1562
- 评论(0)
几个重要的结构体定义:
struct event_base {
const struct eventop *evsel;/*事件驱动模型入口,在event_init函数中确定事件驱动模型*/
void *evbase;/*对应事件驱动模型实现相关属性参数*/
int event_count; /* counts number of total events */
int event_count_active; /* counts number of active events */
int event_gotterm; /* Set to terminate loop ...
- 2009-10-23 10:33
- 浏览 2757
- 评论(0)
首先它是通过指向struct event_list的指针的指针来实现的
在struct event_base结构中体现如下:
/* active event management */
struct event_list **activequeues;
int nactivequeues;
其中nactivequeues为活动事件队列链表数,对应的优先级有0到nactivequeues-1级
默认是1
相应的初始化部分在如下代码:
int
event_base_priority_init(struct event_base *base, int npriorities)
{
int ...
- 2009-10-22 15:56
- 浏览 2445
- 评论(0)
本文以“hello world”程序为例,简单说明linux下源代码包(.tar.gz)的制作。
首先,确保你的系统装有以下GNU软件:
Automake
Autoconf
m4
perl
libtool
1.新建一目录,将你的源代码放在此目录下,以下的操作 ...
- 2009-10-20 22:12
- 浏览 1198
- 评论(0)
gdb提供了以下供调试多线程的进程的功能:
thread THREADNO 一个用来在线程之间切换的命令。
info threads 一个用来查询现存线程的命令。
thread apply [THREADNO] [ALL] ARGS 一个用来向线程提供命令的命令。
注意:这些特性不是在所有gdb ...
- 2009-10-18 11:22
- 浏览 5682
- 评论(0)
SO_LINGER
此选项指定函数close对面向连接的协议如何操作(如TCP)。缺省close操作是立即返回,如果有数据残留在套接口缓冲区中则系统将试着将这些数据发送给对方。
SO_LINGER选项用来改变此缺省设置。使用如下结构:
struct linger {
int l_onoff; /* 0 = off, nozero = on */
int l_linger; /* linger time */
};
有下列三种情况:
l_onoff为0,则该选项关闭,l_linger的值被忽略,等于缺省情况,close立即返回;
l_onoff为非 ...
- 2009-09-27 18:15
- 浏览 4116
- 评论(0)
创建ftp用户和普通用户一样
加到ftp组里面
/etc/passwd里面的shell改成/sbin/nologin
如果要限制ftp用户在自己的HOME目录,则要在vsftpd.chroot_list添加该用户
在/etc/vsftpd/vsftpd.conf里面打开vsftpd.chroot_list相应的选项
- 2009-09-22 10:55
- 浏览 760
- 评论(0)
4、alarm和 setitimer系统调用
系统调用alarm的功能是设置一个定时器,当定时器计时到达时,将发出一个信号给进程。该调用的声明格式如下:
unsigned int alarm(unsigned int seconds);
在使用该调用的进程 ...
- 2009-09-03 16:40
- 浏览 1296
- 评论(0)
前面两节已经介绍了有关信号的大部分知 识。这一节我们来了解一下这些系统调用。其中,系统调用signal是进程用来设定某个信号的处理方法,系统调用kill是用来发送信号给指定进程的。这 两个调用可以形成信号的基本操作。后两个调用pause和alarm是通过信号实现的进程暂停和定时器,调用alarm是通过信号通知进程定时器到时。所 以在这里,我们还要介绍这两个调用。
1、signal 系统调用
系统调用signal用来设定某个信号的处理方法。该调用声明的格式如下:
void (*signal(int signum, void (*handler)( ...
- 2009-09-03 16:38
- 浏览 1882
- 评论(0)
二、信 号 机 制
上 一节中介绍了信号的基本概念,在这一节中,我们将介绍内核如何实现信号机制。即内核如何向一个进程发送信号、进程如何接收一个信号、进程怎样控制自己对信 号的反应、内核在什么时机处理 ...
- 2009-09-03 16:36
- 浏览 1371
- 评论(0)
信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。
信号机制是进程之间相互传递消息的一种方法,信号全称为 ...
- 2009-09-03 16:35
- 浏览 1287
- 评论(0)
route add -net 134.0.0.0 netmask 255.0.0.0 dev eth0
在网卡eth0 增加134网段的路由
- 2009-08-27 11:13
- 浏览 1467
- 评论(0)
find . -name "query.*" -mtime +5 -exec rm {} \;
这个命令用来删除日志文件
- 2009-06-09 09:56
- 浏览 767
- 评论(0)
http://www.eetop.cn/blog/html/40/202640-8862.html
- 2009-05-21 14:32
- 浏览 917
- 评论(0)