Tips: linux进程和线程差异(0)
1 linux进程与线程的联系和区别:
在linux中,线程按照进程的方式实现。其实现机制与solaris和windows差异很大。
在现代操作系统中,进程支持多线程,进程是资源管理以及分配的最小单元,线程是程序执行的最小单元。一个进程实体分为:线程集和资源集(包括地址空间、打开的文件以及用户信息等)两部分。线程有其私有数据:PC,栈以及寄存器。
采用多进程的问题:
1) fork一个子进程的开销较大;
2) 各个进程拥有独立的地址空间,需要复杂的进程间通信(IPC)技术,如消息传递和共享内存。
而采用线程的优点:
1) 改进程序的实时响应能力、通信方便
2) 更有效的使用多处理器
3) 改进程序结构,多控制流
4) 减少系统资源的使用
缺点:线程间地址空间共享可能会造成竞争。
2 linux线程的分类
1) 内核线程:linux内核可以看作一个服务进程,内核有多个执行流并行,因此内核线程作为内核的分身,完成可以并行的功能模块。内核线程的调度有内核负责,一个内核线程处于阻塞状态时不影响其他的内核线程。
2) 用户线程:在用户空间中实现,内核不能独立地对用户线程进行调度,而是由一个线程运行库来组织线程的调度。
3 关于内核线程:
使用命令"ps -ef"查看系统当中的进程,其中带有"[]"的都是内核线程。
相关文档:
总览
用iptables -ADC 来指定链的规
则
,-A添加 -D删除 -C 修改
iptables - [RI] chain rule num rule-specification[option]
用iptables - RI 通过规则的顺序指定
iptables -D chain rule num[option]
删除指定规则
iptables -[LFZ] [chain][option]
用iptables -LFZ 链名 [选项]
iptables -[NX] chain
用 -NX ......
设计一个linux下的deamon进程,关键只有几个:
1.fork两次。
2.fork第一次和第二次之间成为进程组头。
3.改变工作目录。
4.忽略信号。
5.设置读写掩码。
一下是一个从网络搜集到的例程,非常好的演示了上述要点,存此备忘。
#include
#include
#include
#include
void main(int argc, char ** argv)
{
tim ......
linux c 读取文件行数参照wc 系统命令编写的函数如下:
#include <fcntl.h>
#include <stdlib.h>
#define MAXBSIZE 65536
u_long file_wc(char *file)
{
register u_char *p;
register short gotsp;
register int ch, len;
register u_long linect, charct;
int fd;
u_char buf[MAXBSIZE];
......
20010-05-19
常用命令整理如下:
查看CPU信息:
$ cat /proc/cpuinfo
查看板卡信息:
$ cat /proc/pci
查看PCI信息:
$ lspci
(相比cat /proc/pci更直观)
查看内存信息:
$ cat /proc/meminfo
查看USB设备:
$ cat /proc/bus/usb/devices
查看键盘和鼠标:
$ cat /proc/bus/input/devices
查看系统硬 ......
步骤:(安装目录的README有说明)
◎为了方便说明,定下如下的机器和IP:
客户端:192.168.228.100
服务端:192.168.228.153
1。安装VNC服务器:
先把vnc-4_1_1-x86_linux.tar.gz放到需要远程控制的机器192.168.228.153上,然后解压
#tar zxvf vnc-4_1_3-x86_linux.tar.gz
#cd vnc-4_1_3-x86_linux
#m ......