Linux
文章平均质量分 90
YANG_1605
兢兢业业做事,踏踏实实做人,不忘初心,继续前进
展开
-
TCP三次握手、四次挥手详解
TCP协议 TCP协议全称: 传输控制协议, 顾名思义, 就是要对传输层协议主要有两个:TCP协议和UDP协议。 TCP协议相对于UDP协议的特点是:面向连接的、可靠的、字节流服务。数据的传输进行一定的控制. TCP服务的特点: 使用TCP协议通信的双方必须先建立连接,然后才能开始数据的读写。双方都必须为该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输。TCP...原创 2019-08-02 16:47:31 · 500 阅读 · 0 评论 -
Linux下进程间通讯------共享内存
接下来总结进程间通讯的另外一种方式----共享内存。 1、概念 共享内存是一种最为高效的进程间通信方式,指两个或多个进程共享一个给定的存储区。它通过内核对象将进程中的虚拟地址映射到相同的物理内存上,因此系统分配共享内存是按照"页"为单位。 2、特点 共享内存是最快的一种 IPC,因为进程是直接对内存进行存取。 因为多个进程可以同时操作,所以需要进行同步。 ...原创 2019-08-12 19:41:57 · 197 阅读 · 0 评论 -
Linux下进程间通讯--------消息队列
1、认识消息队列 消息队列就是一个消息的链表,存放于内核中。可以把消息看作一个记录,具有特定的格式以及特定的优先级,一个消息队列由一个标识符(即队列ID)来标识。具有写权限的进程可以往消息队列中添加新消息,具有读权限的进程可以从消息队列中读取消息。 2、特点 (1)消息队列是面向记录的,其中的消息具有特定的格式以及特定的优先级。 (2)消息队列独立于发送与接收...原创 2019-08-12 12:03:22 · 174 阅读 · 0 评论 -
Linux学习--gdb调试
一.gdb常用命令 二.gdb学习小例: #include <stdio.h> int add_range(int low, int high) { int i, sum; for (i = low; i <= high; i++) sum = sum + i; return sum; } int main(void) { int result[100]...原创 2019-08-11 17:47:55 · 172 阅读 · 0 评论 -
知识总结(new与malloc的区别、线程与进程的区别)
一、new与malloc的区别 new delete是运算符,malloc() free()是函数 malloc和free是c/c++标准库函数,new和delete是c++运算符。它们都可以用于申请动态内存和释放内存。 函数内声明的变量在栈区,代码段运行结束,栈区内存会自动释放 malloc和new申请的内存在堆区,使用完毕需要程序员手动释放 它们的区别如下: 1.属性 new/...原创 2019-07-25 17:26:37 · 290 阅读 · 0 评论 -
浅谈IO复用--(select、poll、epoll)
声明:总结主要参考于《Linux高性能服务器编程》这本书,自己总结些许,与君共勉。 I/O多路复用 形成原因: 如果一个I/O流进来,我们就开启一个进程处理这个I/O流。那么假设现在有一百万个I/O流进来,那我们就需要开启一百万个进程一一对应处理这些I/O流(——这就是传统意义下的多进程并发处理)。思考一下,一百万个进程,你的CPU占有率会多高,这个实现方式及其的不合理。所以人们提出了I/O...原创 2019-08-11 17:10:56 · 200 阅读 · 3 评论 -
浅谈HTTP与HTTPS的区别
很多人存在这样的疑惑就是http与https的区别,其实https是http的安全版,相比http,多了一个secure,这个secure是由SSL提供的。 我们先来看HTTP与HTTPS的概念: HTTP:http是超文本传输协议在互联网上应用最为广泛的一种网络协议,所有www文件都必须遵守这个标准,基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)连接。http...原创 2019-08-07 18:48:52 · 332 阅读 · 0 评论 -
浅谈守护进程&编程流程
1、引言 之前学习进程方面的东西,在处理孤儿进程时,我们有两种方法,一是父进程调用wait得到子进程的退出码,而是将孤儿进程挂载到守护进程(精灵进程)上。这是第一次接触到守护进程这个概念,按照自己的理解,它应该是一种后台进程,用来管理事务活动。在经过学习后,对守护进程又有了新的认识。 2、概念 守护进程也称精灵进程(Daemon),是运行在后台的一种特殊进程。...原创 2019-08-13 17:54:54 · 285 阅读 · 0 评论 -
Linux下进程间通讯------信号量
在具体介绍信号量之前,先来了解一下在这一块有关的概念: 临界资源:同一时刻,只允许一个进程访问的资源; 临界区:访问临界资源的代码; 原子操作:单指令的操作称为原子的,单条指令的执行是不会被打断的; p操作:减一操作,从内存中获取资源,给进程使用; v操作:加一操作,释放资源,将资源归还给内存; 阻塞与非阻塞:**关注的是进程在发出请求后的状态。 阻塞:发出请求后,若请求不能被立即响...原创 2019-08-13 16:52:49 · 181 阅读 · 0 评论 -
Linux下进程间通讯------socket
今天来介绍另外一种通讯方式,socket。 具体来说,利用socket套接字来进行进程间通讯,这一方式主要是在TCP和UDP协议那块使用,客户端和服务器端相当于是两个进程,利用socket来发送和接收消息,从而实现通讯。之前介绍过了TCP编程,今天就用UDP协议的实现来进行说明。 首先来了解UDP编程流程: UDP Server: Int sockfd=socket();---->...原创 2019-08-13 15:48:01 · 432 阅读 · 0 评论 -
浅谈--HTTP通讯原理
HTTP是什么? 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。什么是HTTP请求? 指的是从客户端到服务器端的请求消息。 HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列几个...原创 2019-08-05 19:09:18 · 417 阅读 · 0 评论 -
Linux之---多线程编程(线程安全&线程同步)
一、线程概念: 线程是进程内部的一条执行序列,一条有序指令的集合。线程是轻量级的进程,一个进程中至少要包含一条线程,main函数代表的执行流称之为主线程。 二、进程与线程的区别: 根本区别:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位。 1.同一个进程中可以包括多个线程,并且线程共享整个进程的资源(寄存器、堆栈、上下文),一个进程中至少包含一个线程。 2.进程的创建调...原创 2019-07-26 14:58:20 · 283 阅读 · 1 评论 -
Linux —— fork()与vfork()的区别与联系
fork()与vfork(): 我们在创建一个进程时主要是通过某个已存在的进程来调用fork()或者vfork()函数来实现的,那些已存在的进程是作为系统启动的一部分由内核来创建的。 1.fork函数介绍 #include<unistd.h> pid_t fork(void); 功能:创建子进程 正确返回:父进程中返回子进程的pid,子进程返回0.(单调用双返...原创 2019-08-02 20:18:51 · 239 阅读 · 0 评论 -
操作系统---进程的认识
一、进程的描述 1.进程的定义: 进程是具有独立功能的程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位(进程是程序的一次执行) 2.进程的构成: (1) 程序的代码,既然进程是一个正在运行的程序,自然需要程序的代码 (2) 程序的数据 (3) CPU寄存器的值,包括通用寄存器,程序计数器 (4) 堆(heap)是用来保存进程运行时动态分配的内存空间 (5)...原创 2018-11-26 18:04:03 · 581 阅读 · 0 评论 -
TCP协议的认识及简单实现
一、TCP协议 (一)具体定义:TCP协议即传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议。 (二)C/S模型:客户端 被动通讯方 数据提供者 服务器端 主动通讯方 数据获取者 (三)服务特点: 1.面向连接的传输; 2.端到端的通信; ...原创 2019-01-21 17:36:55 · 512 阅读 · 2 评论 -
Linux下的进程间通讯--------管道
一、进程间通讯 进程间通讯,顾名思义,就是在不同进程之间进行数据的传递或者是交换信息。 进程间通讯的方式主要有以下几种:信号量、管道、共享内存、消息队列、套接字 二、管道 管道是进程间通讯中一种最古老的的方式,管道是单向的、先进先出的。一个进程(写进程)在管道的尾部写入数据,另一个进程(读进程)从管道的头部读出数据。 其主要特点: (1)以文件来做交互媒介,管道文件分为无名管道和...原创 2019-07-21 16:47:14 · 219 阅读 · 0 评论 -
Linux-------利用文件操作函数实现普通文件的拷贝
学习了文件操作函数后,可以使用文件操作函数实现对普通文件的拷贝,具体的文件操作函数如下: 如何实现文件的拷贝呢? 基本思想: 代码实现: #include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<string.h> #include<asser...原创 2019-08-12 20:23:12 · 1614 阅读 · 1 评论