
进程
ZHY.Spiritual
这个作者很懒,什么都没留下…
展开
-
TCP三次握手
TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urge转载 2017-02-07 20:44:12 · 387 阅读 · 0 评论 -
队列、堆、栈、堆栈的区别
队列是先进先出:就像一条路,有一个入口和一个出口,先进去的就可以先出去。 而栈就像一个箱子,后放的在上边,所以后进先出。 堆栈 进程中每个线程都有自己的堆栈,这是一段线程创建时保留下的地址区域。我们的“栈内存”即在此。至于“堆”内存,我个人认为在未用new定义时,堆应该就是未“保留”未“提交”的自由空间,new的功能是在这些自由空间中保留(并提交)出一个地址范围。 栈(St转载 2017-03-20 22:02:28 · 382 阅读 · 0 评论 -
exec函数族
也许有不少读者从本系列文章一推出就开始读,一直到这里还有一个很大的疑惑:既然所有新进程都是由fork产生的,而且由fork产生的子进程和父进程几乎完全一样,那岂不是意味着系统中所有的进程都应该一模一样了吗?而且,就我们的常识来说,当我们执行一个程序的时候,新产生的进程的内容应就是程序的内容才对。是我们理解错了吗?显然不是,要解决这些疑惑,就必须提到我们下面要介绍的exec系统调用。转载 2017-03-21 20:19:49 · 422 阅读 · 0 评论 -
进程阻塞wait和waitpid
#include /* 提供类型pid_t的定义 */ #include pid_t wait(int *status) 进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这转载 2017-03-21 20:59:37 · 1087 阅读 · 0 评论 -
I/O模型
进程向内核进行系统调用申请IO,内核将资源从IO调度到内核的buffer中(wait阶段),内核还需将数据从内核buffer中复制(copy阶段)到web服务器进程所在的用户空间,才算完成一次IO调度。这几个阶段都是需要时间的。根据wait和copy阶段的处理等待的机制不同,可将I/O动作分为如下五种模式: Unix下共有五种I/O模型 (1)阻塞I/O (2)非阻塞I/O原创 2017-03-30 20:59:48 · 496 阅读 · 0 评论 -
select函数与poll函数
select函数 IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合: (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。 (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。 (3)如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用到I/O复用原创 2017-03-30 21:08:52 · 701 阅读 · 0 评论 -
信号通信(进程间通信)
一、什么是信号 用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中的进程捕获到这个信号然后作出一定的操作并最终被终止。 信号是UNIX和Linux系统响应某些条件而产生的一个事件,接收到该信号的进程会相应地采取一些行动。通常信号是由一个错误产生的原创 2017-03-25 15:11:53 · 416 阅读 · 0 评论 -
Linux信号量(进程)
信号量函数由semget、semop、semctl三个函数组成。下面的表格列出了这三个函数的函数原型及具体说明。 1. semget函数原型 semget(得到一个信号量集标识符或创建一个信号量集对象) 所需头文件 #include #include #include 函数说明 得到一个信号量集标原创 2017-03-25 17:07:09 · 640 阅读 · 0 评论 -
Linux轮询操作
轮询函数 轮询的概念和作用 使用非阻塞I/O的应用程序通常会使用select()和poll(),poll和select用于查询设备的状态,以便用户程序获知是 否能对设备进行非阻塞的访问,它们都需要设备驱动程序中的poll函数支持。 Select()和poll()系统调用最终会引发设备驱动设备中的poll()函数被执行。poll()函数为最终执行体) Linux下select调原创 2017-03-27 14:28:21 · 2338 阅读 · 0 评论