linux
文章平均质量分 74
pg_dog
今日有酒今日醉,明日愁来明日愁。
展开
-
Linux中有关find指令的用法
Linux中find指令显得尤为重要,所以我们有必要将find指令的相关用法进行总结性的详解,这对Linux的学习非常重要,如果能熟练掌握find指令,那你的Linux水平就不显得那么拙劣(开个玩笑。。。)。下面呢主要围绕find指令的相关操作以及所展示出的强大功能进行详解。 1,“find -name <文件名>”:查找文件所在的目录(这里准确说来展示的是相对路径),下面我听过两种方法来验证了结原创 2017-03-28 11:28:44 · 408 阅读 · 0 评论 -
进程通信1——管道、命名管道
匿名管道 管道是一种简单的进程通信(IPC)机制。管道实质上就是pipe函数在内核中开辟了一段缓冲区,有一个读端和一个写端。两个进程之间能够通信的本质:通过fork函数传递文件描述符(子进程是父进程的副本,父进程所有打开的文件描述符都被复制到子进程中,父子进程的每个相同的打开描述符共享一个文件表项)使得两个进程可以访问同一个管道,从而实现通信。特点:单向通信(若实现双向通信,必须建立两个管道);原创 2017-06-26 16:06:23 · 425 阅读 · 0 评论 -
线程
什么是线程? 线程也被称为轻量级进程,是进程内部的一个执行分支,是程序执行流的最小单位(调度的最小单位)。线程是程序中一个单一的顺序控制流程,在单个程序中同时运行多个线程完成不同的工作,称为多线程。一个进程中可以有多个线程,其本质是多个线程在同一进程的地址空间运行。线程不拥有系统资源,但它共享所属进程的资源(文件描述符表,各种信号的处理方式,用户id和组id,当前工作目录)。但有些资源是线程独自享原创 2017-06-25 01:10:03 · 337 阅读 · 0 评论 -
死锁问题
死锁的概念: 指两个及两个以上的进程(线程)在执行过程中,因为争夺资源而造成的一种互相等待的现象。若无外力作用,他们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁。这些等待的进程(线程)被称作死锁进程(线程)。对于资源的访问是互斥的,所以当某个进程提出访问资源后,使得有关进程在无力协助下,永远分配不到必须的资源而无法继续运行,这就产生了死锁的问题。死锁产生的条件: 互斥条件;资原创 2017-06-10 18:20:19 · 357 阅读 · 0 评论 -
端口分类、TCP定时器、URG和PSH对比
端口分类我们这里讲的端口不是传统意义上的物理端口,而是特制TCP/IP协议中的端口。这里端口可以分为TCP端口和UDP端口。两者是独立的,并不冲突。这里端口可以分为三种:周知端口、注册端口、动态端口。周知端口:范围是0~1023,其中80端口分配给www服务,21端口分配给FTP服务等。在地址栏中输入网址时不用指定端口号,因为www服务的端口是默认的80端口。如果你要使用其他端口时,只需在地址后面原创 2017-06-20 14:05:22 · 475 阅读 · 0 评论 -
NAT技术,代理服务器
NAT技术又称网络地址转换技术(Network Address Translation),属于接入广域网技术。是一种将私有(保留)地址转换为合法IP地址的转换技术,他被广泛应用于各种类型Internet接入方式和各种类型的网络中。它不仅解决了IP地址不足的问题,而且还有效地避免了来自网络外部的攻击,隐藏并保护网络内部的计算机。借助于NAT,私有(保留)地址的”内部”网络通过路由器发送数据包时,私有地原创 2017-06-18 22:55:11 · 387 阅读 · 0 评论 -
生产者消费者模型
我们来认识一下一个模型:生产者消费者模型。在实际的软件开发过程中,可能遇到这种情况:一个模块负责产生数据,另一个模块负责处理数据。注:这里的模块是广义上的模块,可能是进程,线程,类等。产生数据的模块是生产者,处理数据的模块是消费者。但是还不够得上生产者消费者模型,这里还需要一个缓冲区,处于生产者消费者中间,作为中介,生产者往缓冲区生产数据,消费者从缓冲区消费数据。缓冲区的优势: 解耦:假设生产者,原创 2017-06-18 11:18:55 · 439 阅读 · 0 评论 -
Linux进程管理之PCB
首先呢,我们来认知一下程序和进程。程序是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。而进程是操作系统对一个正在运行着的程序的一种抽象。 我呢是下面这样来理解程序与进程的区别的,有不全面的地方多多指教。 PCB是什么呢?下面我们就来详细聊聊这PCB。 每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息。其作用是使一个在多道程序环境下不能独立运行的程序成为一个原创 2017-04-09 15:06:04 · 2455 阅读 · 0 评论 -
Linux下简单进度条的实现
首先呢,我给出代码和进度条效果图,后面来进行详解。 如上图所示,这进度条实现的也着实简单(略显尴尬),但进度条原理本质就是如此,只不过多了些修饰,下面来进行详解。 unistd.h是C、C++程序设计语言中提供对POSIX(可移植操作系统接口)操作系统API的访问功能的头文件的名称。 usleep函数是延时函数,单位为微秒。下面看个有趣的现象 看上面这段简单的代码,他实现的效果是先延迟三秒,原创 2017-04-09 11:51:12 · 658 阅读 · 0 评论 -
进程通信2——消息队列
消息队列是由链表实现的,它是基于system V标准。特点:双向通信;基于消息(数据块);不遵循“先入先出”的原则;生命周期随内核;创建新的消息队列或取得已存在的消息队列 int msgget(key_t key,int msgflg);key:可认为是端口号,由ftok()函数生成; msgflg:IPC_CREAT:如果IPC不存在,生成新的IPC资源,否则打开旧的资原创 2017-06-27 15:26:35 · 315 阅读 · 0 评论