
Linux/Unix
文章平均质量分 69
iteye_7202
这个作者很懒,什么都没留下…
展开
-
进程、线程概念及内涵梳理
进程、线程的概念实在太重要,在每个编程语言里都有相应的实现机制,面试的时候也经常被问到,今天稍微梳理以下,说的不好请投隐藏帖。 1.进程 《APUE》上的解释:程序是存放在磁盘上,处于某个目录中的一个可执行文件。程序的执行实例被称为进程(process)。 从内核的角度来看,进程是操作系统分配内存、CPU时间片等资源的基本单位,为正在...2011-07-13 14:55:16 · 84 阅读 · 0 评论 -
linux进程调度浅析
操作系统要实现多进程,进程调度必不可少。有人说,进程调度是操作系统中最为重要的一个部分。我觉得这种说法说得太绝对了一点,就像很多人动辄就说"某某函数比某某函数效率高XX倍"一样,脱离了实际环境,这些结论是比较片面的。 而进程调度究竟有多重要呢? 首先,我们需要明确一点:进程调度是对TASK_RUNNING状态的进程进行调度(参见《linux进程状态浅析》)。如果进程不可执行(正在睡眠或其他),那...原创 2013-09-20 22:36:17 · 85 阅读 · 0 评论 -
socket 中send 和recev函数详解
int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。该函数的第一个参数指定发送端套接字描述符;第二个参数指明...原创 2014-05-01 22:49:05 · 170 阅读 · 0 评论 -
signal(SIGCHLD, SIG_IGN)和signal(SIGPIPE, SIG_IGN);
当服务器close一个连接时,若client端接着发数据。根据TCP 协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。 根据信号的默认处理规则SIGPIPE信号的默认执行动作是terminate(终止、退出),所以client会退出。若不想客户端退出可以把SIGPIPE设为SIG_IG...原创 2014-05-22 14:34:40 · 114 阅读 · 0 评论 -
posix 条件变量
条件变量是一中线程同步机制,需要和pthread_mutex_t配合使用才能完成任务,典型的可以应用在“生产者、消费者”模型中。条件变量的数据类型:pthread_cond_t配合的函数有:1、pthread_cond_t结构的初始化、销毁函数#include <pthread.h> int pthread_cond_init(pthread_cond...原创 2014-06-15 22:17:15 · 101 阅读 · 0 评论 -
linux 查找目录下的所有文件中是否含有某个字符串
查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xargs grep -ri "IBM" -l 1.正则表达式 (1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如/、*、?等)组成。 (2)基本元字符集及其...原创 2014-07-18 10:24:33 · 113 阅读 · 0 评论 -
sz与rz命令
一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地; 与ssh有关的两个命令可以提供很方便的操作: sz:将选定的文件发送(send)到本地机器 rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)rz,sz是便是...原创 2014-07-23 12:01:01 · 102 阅读 · 0 评论 -
死锁产生的原因及四个必要条件
产生死锁的主要原因是:1) 系统资源不足;2) 进程运行推进的次序不合适;3) 资源分配不当。 如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。产生死锁的四个必要条件:1) 互斥条件:一个资源一次只能被一个进程访问。2) 请求与保持: 一个进程因请求资源而阻塞...原创 2014-08-11 21:41:23 · 225 阅读 · 0 评论 -
进程和线程的联系区别
进程是程序的一次执行过程。每一个进程都是一个独立的实体,系统会单独为它分配内存,它会在单独的地址空间中被执行。一个进程不能访问其他进程中的变量和数据结构。如果你想访问其他进程的资源,必须使用管道、文件、socket等进程间通信机制。 线程使用其所在进程的栈空间。一个进程可以有很多个线程。进程和线程最大的区别在于多个线程会共享 他们的状态。一般来说,多个线程可以读写...2014-08-11 21:58:31 · 120 阅读 · 0 评论 -
POSIX线程
同一进程内的所有线程共享全局变量,还共享:进程指令大多数数据打开的文件描述符信号处理函数和信号处置当前工作目录用户ID和组ID不过每个线程有各自的:线程ID寄存器集合,包括程序计数器和栈指针栈(用于存放局部变量和返回地址)errono信号掩码优先级 ...2013-06-20 00:42:54 · 73 阅读 · 0 评论 -
tcp 长连接和心跳
http://www.cnblogs.com/diyunpeng/archive/2011/07/21/2112380.html http://blog.youkuaiyun.com/channels_net/article/details/4146225 http://www.felix021.com/blog/read.php?2076 http://www.tldp.o...2013-05-22 22:06:07 · 94 阅读 · 0 评论 -
TCP连接建立过程中为什么需要“三次握手”
传输控制协议(Transmission Control Protocol, TCP)是一种面向连接的、可靠的、基于字节流的运输层(Transport layer)通信协议。是专门为了在不可靠的互联网络上提供一个可靠的端到端字节流而设计的。互联网络与单个网络不同,因为互联网络的不同部分可能有着截然不同的拓扑、带宽、延迟、分组大小和其他参数。TCP的设计目标是能够动态的适应互联网络的这些特性,而且...原创 2013-05-19 15:55:08 · 164 阅读 · 0 评论 -
守护进程和后台进程的区别
1. 后台的文件描述符也是继承于父进程,例如shell,所以它也可以在当前终端下显示输出数据。但是daemon进程自己变成了进程组长,其文件描述符号和控制终端没有关联,是控制台无关的。 2.基本上任何一个程序都可以后台运行,但守护进程是具有特殊要求的程序,比如要脱离自己的父进程,成为自己的会话组长等,这些要在代码中显式地写出来换句话说,守护进程肯定是后台进程,但反之不成立。守护进程...2011-08-31 15:34:20 · 530 阅读 · 0 评论 -
Linux段错误
1、段错误的定义英文:A segmentation fault (often shortened to segfault) is a particular error condition that can occur during the operation of computer software. In short, a segmentation fault occurs when...原创 2011-10-03 23:34:00 · 117 阅读 · 0 评论 -
静态库和动态库的优缺点
一、库的类型(一) 在windows中.dll 动态库.lib 静态库库即为源代码的二进制文件(二) 在linux中.so 动态库.a 静态库 (三) 静态库和动态库的优缺点我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态...原创 2011-10-06 23:18:59 · 397 阅读 · 0 评论 -
基础知识的复习
1. SAN SAN(Storage Area Network的简称)直译过来就是存储区域网络,它采用光纤通道(Fibre Channel)技术,通过光纤通道交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。SAN网络存储是一种高速网络或子网络,SAN存储系统提供在计算机与存储系统之间的数据传输。 NAS存储网络 NAS是通过网线连接的磁盘阵列,具备磁盘阵列的所有主要...原创 2011-10-20 15:47:40 · 113 阅读 · 0 评论 -
Linux系统调用
转自: www.youkuaiyun.com/subject/linux/systemcall.mhtLinux系统调用摘要:本期重点和大家讨论系统调用机制。其中涉及到了一些及系统调用的性能、上下文深层问题,同时也穿插着讲述了一些内核调试方法。并且最后试验部分我们利用系统调用与相关内核服务完成了一个搜集系统调用序列的特定任务,该试验具有较强的实用和教学价值。 什么是系统调用 ...原创 2011-10-20 21:52:17 · 114 阅读 · 0 评论 -
Linux进程间通信(IPC)
序linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(...原创 2011-10-21 21:01:05 · 80 阅读 · 0 评论 -
linux进程状态浅析
原文地址:http://cchxm1978.blog.163.com/blog/static/35428253201092994955153/相当不错的文章,读了后收藏,多谢博主分享! 众所周知,现在的分时操作系统能够在一个CPU上运行多个程序,让这些程序表面上看起来是在同时运行的。linux就是这样的一个操作系统。 在linux系统中,每个被运行的程序实例对应一个...原创 2011-12-05 20:05:17 · 99 阅读 · 0 评论 -
linux进程调度浅析
操作系统要实现多进程,进程调度必不可少。有人说,进程调度是操作系统中最为重要的一个部分。我觉得这种说法说得太绝对了一点,就像很多人动辄就说"某某函数比某某函数效率高XX倍"一样,脱离了实际环境,这些结论是比较片面的。 而进程调度究竟有多重要呢? 首先,我们需要明确一点:进程调度是对TASK_RUNNING状态的进程进行调度(参见《linux进程状态浅析》)。如果进程不可执行(正在睡眠或其他)...转载 2011-12-05 20:19:47 · 86 阅读 · 0 评论 -
select、poll、epoll之间的区别总结
转自:http://www.cnblogs.com/Anker/p/3265058.html select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就...原创 2014-09-04 23:11:41 · 313 阅读 · 0 评论