Linux
文章平均质量分 86
twtydgo
能够独立思考
展开
-
Linux进程学习---基本概念
最近一周学习了Linux 进程编程的知识,现对其总结如下。 在第一部分中我们先对进程的基本概念以及在Linux 中是如何来现实进程的进行介绍 Tiger-John说明 : 许多人在学习中只注重如何编程,却忘了注重原理,不去深究其基本原理。其实操作系统的原理就好 比金庸武侠小说的内功一样,而所有的具体实现如:Linux操作系统,uc/os操作系统都只是武功招式而已。如果我们原创 2016-05-26 17:22:17 · 222 阅读 · 0 评论 -
IO多路复用之poll总结
1、基本知识 poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。2、poll函数 函数原创 2018-02-04 18:56:19 · 199 阅读 · 0 评论 -
IO多路复用之select总结
1、基本概念 IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合: (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。 (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。 (3)如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用到I/O复用。原创 2018-02-04 18:54:54 · 191 阅读 · 0 评论 -
select、poll、epoll之间的区别总结
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用原创 2018-02-04 18:53:01 · 175 阅读 · 0 评论 -
CentOS 配置防火墙操作实例(启、停、开、闭端口)
CentOS 配置防火墙操作实例(启、停、开、闭端口): 注:防火墙的基本操作命令:查询防火墙状态:[root@localhost ~]# service iptables status 停止防火墙:[root@localhost ~]# service iptables stop 启动防火墙:[root@localhost ~]# service原创 2016-10-19 10:22:47 · 327 阅读 · 0 评论 -
linux环境变量设置方法总结(PATH/LD_LIBRARY_PATH)
PATH: 可执行程序的查找路径查看当前环境变量:echo $PATH设置: 方法一:export PATH=PATH:/XXX 但是登出后就失效方法二:修改~/.bashrc或~/.bash_profile或系统级别的/etc/profile 1. 在其中添加例如export PATH=/opt/ActivePython-2.7/bin:$PATH原创 2016-06-14 17:50:12 · 16057 阅读 · 0 评论 -
Linux下进程崩溃时定位源代码位置
在Linux系统下,进程可能由于各种原因崩溃,此时我们要找到出问题的源代码在某一个文件的具体行号,这样调试起来就会方便,高效很多。下面是解决问题的思路和步骤以及自己的一些想法 解决该问题的大体思路是这样的:在Linux下,进程崩溃时内核(也就是我们所谓的操作系统)会向进程发送信号,比如我们程序运行崩溃时经常会看到segmentation falt这样的信息,这是进程非法操作内原创 2016-06-03 14:01:52 · 4849 阅读 · 0 评论 -
Linux互斥锁、条件变量和信号量
Linux--Linux互斥锁、条件变量和信号量 进行多线程编程,最应该注意的就是那些共享的数据,因为无法知道哪个线程会在哪个时候对它进行操作,也无法得知哪个线程会先运行,哪个线程会后运行。所以,要对这些资源进行合理的分配和正确的使用。在Linux下,提供了互斥锁、条件变量和信号量来对共享资源进行保护。 一、互斥锁 互斥锁,是一种信号量,常用来防止两个进程或线程在同一时刻访问相同的共原创 2016-05-09 10:51:25 · 668 阅读 · 0 评论 -
Linux进程学习---exec()函数的学习
当我们看恐怖片时,经常会有这样的场景:当一个人被鬼上身后,这个人的身体表面上还和以前一样,但是他的灵魂和思想已经被这个鬼占有了,因此它会控制这个人做他自己想做的事情--那么在进程中也有这样的情景。那么是如何实现的呢?现在我们来学习exec()函数族 一.exec()函数 族 1. 首先我们在终端输入命令:man exec 可以看到函数的原型: #include原创 2016-05-26 17:28:57 · 345 阅读 · 0 评论 -
Linux进程学习---wait()和waitpid()函数
上一节最后我们说到若子进程先于父进程结束时,父进程调用wait()函数和不调用wait()函数会产生两种不同的结果:--如果父进程没有调用wait()和waitpid()函数,子进程就会进入僵死状态。--如果父进程调用了wait()和waitpid()函数,就不会使子进程变为僵尸进程。这是为什么呢?现在我们来深入学习wait()函数和waitpid()函数。一.wa原创 2016-05-26 17:27:48 · 382 阅读 · 0 评论 -
Linux进程学习---exit()和_exit()函数
进程就好比人一样有其生命,我们通过fork()函数来创建一个进程,那么我们又是如何来中止进程呢。 进程退出 1.在Linux中任何让一个进程退出 进程退出表示进程即将结束。在Linux中进程退出分为了正常退出和异常退出两种。 1>正常退出 a. 在main()函数中执行return 。 b.调用exit()函数 c.调用_exit()函数原创 2016-05-26 17:26:05 · 241 阅读 · 0 评论 -
Linux进程学习---孤儿进程和守护进程
通过前面的学习我们了解了如何通过fork()函数和vfork()函数来创建一个进程。现在 我们继续深入来学习两个特殊的进程:孤儿进程和守护进程 一.孤儿进程 1.什么是 孤儿进程 如果一个子进程的父进程先于子进程 结束, 子进程就成为一个孤儿进程,它由 init 进程收养,成为 init 进程的子进程。 2.那么如何让一个进程变为一个孤儿进程呢? 我们可以先创建一个进程,然后杀原创 2016-05-26 17:24:58 · 500 阅读 · 0 评论 -
Linux进程学习---fork()和vfork()
通过 上一部分的学习,我们了解了进程的概念以及在Linux中进程的实现,此部分我们将具体学习如何在Linux中创建一个进程。 一前言: 通过原理知识的学习,我们知道每个进程由进程ID号标识。进程被创建时系统会为其分配一个唯一的进程ID号。当一个进程向其父进程(创建该进程的进程)传递其终止消息时,意味这个进程的整个生命周期结束。此时,该进程占用的所用资源包括进程ID被全部释放。原创 2016-05-26 17:23:40 · 297 阅读 · 0 评论 -
IO多路复用之epoll总结
1、基本知识 epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。2、epoll接口 epoll操作过程需要三个接口,分别如下:原创 2018-02-04 18:57:23 · 149 阅读 · 0 评论