2 胡小哲

尚未进行身份认证

捧着看不懂的故事,道着懵懂的错对。

等级
TA的排名 8w+

TCP状态标识 --- URG,ACK,PSH,RST,SYN,FIN

TCP 首部: 此次我们要讨论的就是其中的状态标识 URG:紧急指针有效。 ACK:确认序号有效。 PSH:接收方应尽快将报文段交给应用层。 RST:复位连接。 SYN:同步序号,用来发起一个连接。 FIN:发送端完成发送任务。URG紧急方式,使连接的一端可以告诉另一端有些具有某种方式的”紧急数据”已经放置在普通的数据流中。 另一端被通知这个紧急数据已被放置在普通的数据...

2018-05-03 20:01:47

TCP --- 拥塞控制

网络发生拥塞的原因: 当数据到达一个较大的管道并向一个较小的管道发送数据时便会发生拥塞。 当多个输入流到达同一个路由器,而路由器的输出流小于输入流时也会发生拥塞。拥塞控制: 避免过多的数据注入到网络中,这样可以减轻网络中路由器或链路的负载。拥塞避免是发送方使用的流量控制,发送方感受到的网络拥塞的估计。 通告窗口是接收方进行的流量控制,接收方在该连接上的可用缓存大小。在讨论拥塞控...

2018-05-02 23:36:41

Redis --- SORT 命令

SORT 命令SORT 命令可以根据键里面存储着的数据,对列表,集合以及有序集合进行排序。 参数: SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern …]] [ASC|DESC] [ALPHA] [STORE destination]一般排序SORT KEY 返回从小到大排序的结果...

2018-05-02 10:40:12

Redis 命令

Redis 命令字符串命令Redis字符串是一个由字节组成的序列。 字符串可以存储三种类型的值: 1. 字节串 2. 整数 3. 浮点数用户可以通过给定一个数值,对存储的整数或浮点数的字符串执行自增或自减操作。在有需要的时候,Redis 还会将整数转换为浮点数。Redis 明确地区分字节串、整数和浮点数的做法,使得Redis 在数据表现方面更具灵活性。数值...

2018-04-27 13:14:20

Centos 7 安装 Reids 和 Python的Redis客户端

安装 RedisCentos 使用 yum 安装 Redis 时,会出现无法找到安装源的问题。 这是因为 Redis 在第三方源里,我们添加非官方的 epel 源库。yum install epel-release安装之后查看 yum repolist安装 Redisyum install redis安装成功之后,启动 Redis 服务systemctl ...

2018-04-25 23:32:00

Centos7 下安装 Mysql

Centios7 下安装 Mysql 5.7在删除之前先清空本机上的 Mysql rpm -qa | grep mysqlrpm -e -nodeps + 名称强制卸载再清楚与mysql相关的目录find / -name mysqlrm -rf + 目录名yum list | grep mysql 查看有没有相应的yum源 有的话可以直接安...

2018-04-25 21:27:46

Redis 数据结构简介

Redis 数据结构简介概述Redis 下可以存储五种不同数据结构类型之间的映射。 这五种数据类型非别为: 1. STRING 字符串 可以是字符串,整数或浮点数。 2. LIST 列表 一个链表,链表上的每个节点都包含一个字符串。 3. SET 集合 包含字符串的无序收集器,每个字符串都是唯一的。 4. HASH 散列 包含键值的无序散列表 。 5. ZSE...

2018-04-25 15:01:19

信号量 --- 哲学家就餐

比如我们有一张桌子,上面坐着五位哲学家 现在他们每个人都有一双筷子,并且都拥有了自己的编号。 桌子上摆满了菜,哲学家们现在开始只做两件事情,吃饭,或者思考。 当他们吃饭的时候就停止思考 ,当他们思考的时候就停止吃饭。 我们假设他们都会用筷子,而当他们要吃饭的时候都必须拿两根筷子。 而且每个哲学家并不互相交流,此时就会出现一个很严重的问题。 如果这些哲学家在准备吃饭的时候,先拿起...

2018-04-23 19:34:30

线程同步互斥机制

线程同步互斥机制线程互斥是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。例如 : 出现这种情况是因为操作系统在内核中对线程的调用的来回切换。代码可以并发的切换到其他的线程。互斥锁互斥锁以排他方式防止共享数据被并发访问。 互斥锁是一个二元变量,只有两种状态 开锁 和 上锁。 将某个共享资源与某个...

2018-04-23 17:20:35

Linux 多线程

Linux 多线程线程概念在一个程序里的一个执行路线就叫做线程。 每个进程都至少有一个线程。进程和线程进程是资源分配的基本单位。 线程是调度和执行的基本单位。 线程共享进程的数据:代码段,数据段,bss段和堆段,文件描述符,打开的库,mmap映射的文件以及共享内存空间。 线程也有自己的私有数据:线程 id, PCB,寄存器,栈,errno,信号屏蔽字,调度优先级。 ...

2018-04-21 12:40:34

Linux 异步信号处理机制

信号概述信号是软件中断。 信号是linux系统下的异步处理机制。 例如:在终端按写某些按键时,会通过信号机制停止一个程序。首先,每个信号都有一个名字,都以SIG开头,通过 kill -l 可以查看 其中有很多常见信号 SIGINT :当我们在终端按下 CTRL+C 时就会产生一个 SIGINT 信号。 SIGQUIT :CTRL+\ SIGTSTP :CTRL+Z...

2018-04-19 15:29:45

mysql 安装与基础

安装 我们罗列出了mysql的安装包 对应的32位机安装mysqlmysql-servermysql-devel64位机安装mysql.x86_64mysql-server.x86-64mysql-devel.x86-64安装指令都为 yum install + 安装包名基础什么是数据库 由于文件的缺点 : 文件的安全性问题 文件不利于查询和对数...

2018-03-27 22:30:41

C++ 网络爬虫 --- 爬取西安链家二手房信息

C++网络爬虫网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。 在这里,我们使用 libcurl 库来对某一特定网页的内容进行抓取。libcurl 库安装首先我们需要介绍一下 libcurl 库 libcurl 库的主要功能就是用不同的协议链接和不同的服务器。 libcurl 当前支持http, https, ftp, gopher, telnet,...

2018-03-27 16:19:39

进程间通信

进程间通信在前面我们学习了如何创建进程,但是如何让我们创建的这些进程相互联系起来,那么就需要利用进程间通信来完成。概述进程间通信就是在不同进程之间传播或交换信息,但是之前我们学过,每个进程在创建的时候都会分配自己独有的 4G 虚拟地址空间,进程之间都是相互独立的,所以一般而言是不能互相访问的,但是也有例外,那就是共享存储映射区。并且系统空间也是公共的,每个进程都可以访问,所以内核也...

2018-03-16 15:14:55

malloc 底层实现

动态存储器分配器malloc 又称显示动态存储器分配器,动态存储器分配器维护着一个进程的虚拟存储器区域,称为堆。 我们假设堆紧接着未初始化.bss段后开始,并向上生长,对于每个进程,由内核维护着堆顶(brk —- break) 分配器将堆视为一组不同大小的块,每个块则是一个连续的虚拟存储器片,要么是已分配的,要么是空闲的。 已分配的块供应用程序使用,空闲块则可以用来分配。 已分配的...

2018-03-13 01:19:48

动态链接库

动态链接库又称共享库,可执行共享库。 在前面我们提到静态库中,静态库和所有软件一样,需要定期维护和更新,如果我们想要使用一个库的最新版本,我们必须显示地将程序与更新的库重新链接。 一个 C 程序通常都会使用标准 I/O 函数,在运行时这些函数的代码会被大量的赋值到每个运行进程的文本段,是对存储器资源的极大的浪费。于是共享库产生了,它解决了静态库的缺陷。 共享库实质上是一个目标模块,在运行...

2018-03-05 18:57:21

Linux 中 popen 函数与 system 函数的区别

popen 函数函数原型#include <stdio.h> FILE *popen(const char *command, const char *type); command : 一个指向以 NULL 结尾的 shell 命令字符串的指针。这个字符串会使用 -c 标志传到 bin/sh ,shell 将执行这个命令。 type : 指向以 NULL ...

2018-03-04 00:21:58

Linux进程概念 ---- 僵尸进程和孤儿进程

Linux 进程概念僵尸进程当子进程退出,并且父进程使用 wait 系统调用,没有读取到子进程退出的返回码时就会产生僵尸进程。 僵尸进程会以终止状态保持在进程表中,并且一直等待父进程读取退出状态代码。现在我们来模拟实现一个僵尸进程 在这里,我们创建一个子进程,等待 2s 后退出,但是父进程不回收子进程的退出码。此时子进程应该为僵尸进程。 僵尸进程的危害在前面我们提...

2018-03-01 11:59:57

Linux中文件描述符 fd 与 FILE 结构体

Linux中文件描述符 fd 与 flie 结构体文件描述符文件描述符(file descriptor)是内核为了高效管理已被打开的文件创建的索引。文件描述符的操作返回的是一个文件描述符,内核会在每个进程空间中维护一个文件描述表,所有打开的文件都将通过此表中的文件描述符来引用。(在前面的 系统 I/O中有画图解释)文件描述符 fd 与 FILE 结构体fd 是一个非负整数,在调...

2018-02-26 18:54:29

简单的自主 shell 编写

当我们打开一个终端的时候,我们可以在上面输入各种命令,从而与终端实现互动。 可以发现,每当一个指令的执行结束后,终端会等待我们的下一条指令的输入。 这就类似于我们写了一个死循环,一直在等待着命令的输入。当有一条指令输入时,创建子进程并将子进程替换为命令,执行子进程并且父进程等待子进程的执行结束,从而实现交互。 我们可以利用之前学的进程创建和进程替换来编写一个简单的自主shell。 ...

2018-02-26 17:03:57

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!