自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (1)
  • 收藏
  • 关注

原创 Socket(套接字)详解 画图+实例

Socket本意为“插座”,在Linux下,用于表示进程间网络通信的特殊文件类型,本质为内核借助缓冲区形成的伪文件。既然是文件,那肯定就可以使用文件描述符引用套接字。与管道类似的,Linux系统将其封装成文件的目的是为了统一接口,使得读写套接字和读写文件的操作一致。区别是管道主要应用于本地进程间通信,而套接字多应用于网络进程间数据的传递。对于管道缓冲区,读端和写端的文件描述符分别指向缓冲区的两端...

2019-05-17 23:46:18 4589 1

原创 程序、进程、线程详解

程序是编译好的二进制文件,在磁盘上,不占用系统资源。进程是运行的程序,占用系统资源,在内存中执行。线程是轻量级的进程,本质任是进程(在Linux环境下)线程和进程的区别和联系:(1)进程有独立的地址空间,拥有PCB(2)线程也有自己的PCB,但是没有独立的地址空间区别:是否共享地址空间,例如,进程a.out有自己的0到4G的地址空间,当它调用pthead_create创建线程的时候,线...

2019-05-13 21:42:25 651

原创 IPC(进程间通信)详解

Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据bi必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间放至内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC InterProcess Communication)在进程间完成数据传递需要借...

2019-05-13 15:25:28 3955

原创 终端、进程组、会话、守护进程(包括创建守护进程)详解

终端输出设备和输入设备的总称为终端。Unix中的terminal是伪终端,输入和输出都流经这个terminal。Unix系统中,用户通过终端登录系统后得到一个shell进程,这个终端成为shell进程的控制终端。默认情况下(没有重定向),每个进程的标准输入,标准输出和标准错误输出都指向控制终端。网络终端向XShell这样的连接到远程Unix系统的软件成为网络终端,网络终端工作流程如下图。tt...

2019-05-13 15:23:30 437

原创 fork函数讲解和运用(循环创建n个子进程)

作用fork函数用于创建一个子进程用法#include <unistd.h>pid_t fork(void);对于父进程来说,fork函数返回成功返回子进程id,对于子进程来说,fork函数成功返回0;失败返回-1;C/C++中的函数返回值只能有一个,这里看似两个返回值,是因为父进程执行到fork调用处,产生一个子进程,子进程拥有和父进程相同的代码,但是父子进程从fork调...

2019-05-08 23:01:21 4450 1

原创 PCB(进程控制块)讲解

PCB:进程控制块,实际是一个结构体,放在sched.h文件中,Linux下可以通过whereis sched.h命令查看具体路径该结构体主要包含:1.进程id2.进程的状态:就绪、运行、挂起、停止3.进程切换时需要保存和恢复的一些CPU寄存器寄存器放在CUP中,A程序和B程序分时执行的时候,A占用CPU执行一定时间,CPU便被B占用了,然后又轮到A执行,A的资源如寄存器如何恢复到挂起...

2019-05-04 22:34:45 11487

原创 简而易懂的CPU和MMU画图讲解

我们知道,程序文件一般放在硬盘上,当把程序运行起来产生进程是,程序被放入内存中,通过内存放入cache,通过cache进入cpu,进入cpu的是程序的一条条指令,即01组合,下图中预取器就是负责从cache取出指令,然后由译码器译码,译码的作用就是要知道需要哪些寄存器配合完成指令,如该指令是一个加法运算,则译码器译码后发现需要使用到add,eax和ebx寄存器,然后交给ALU算数逻辑单元进行算数运...

2019-05-04 22:05:06 5890 3

原创 编写Shell脚本定时备份数据库

需求1.每天凌晨2点10分备份数据库atguiguDB到/data/backup/db2.备份开始和备份结束能够给出相应的提示信息3.备份后的文件以时间命名,并打包成.tar.gz形式,如2019-05-01_110101.tar.gz4.在备份的同事,检查是否有10天前的备份数据库文件,有则删除之...

2019-05-02 18:13:47 5478

原创 Linux之Shell语法详解

Shell是什么Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序用户可以用Shell来启动、挂起、停止以及编写一些程序。语法1.格式脚本以 #!/bin/bash开头脚本需要有可执行权限(chmod 744 filename)注释 :<<!内容 !2.Shell变量Shell变量分为系统变量和用户自定义变量系统变...

2019-05-01 23:20:37 1087

原创 Redis Sentinel 哨兵模式配置详解和实践

由于主从复制存在一个问题:master宕机,需要选中一个slave,执行“slaveof no one”,然后对其余slave执行“slaveof new master”,客户端选择读写新的master,可手动转移,也可写脚本(实现复杂),从而出现Redis Sentinel架构,实现监控节点异常,故障转移,通知客户端的功能,对于客户端来说不会去记录redis地址,而是记录sentinel地址,与...

2019-05-01 15:19:02 957

Xdebug_Helper.zip

亲测有效的Chrome_Xdebug_Helper_extension 安装步骤: 1 下载后解压 2 将extension_1_4_2.crx拖至谷歌的插件扩展页(如果报错,请进行下一步) 3 将extension_1_4_2.crx改名为extension_1_4_2.rar后解压 4 在chrome的扩展页面打开开发者模式后点击“加载已解压的扩展程序” 5 选择extension_1_4_2文件夹即可

2019-07-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除