![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 79
蜗 @牛
没有简介
展开
-
select、poll、epoll的优缺点比较
文章目录 前言同步I/O异步I/O阻塞I/O非阻塞I/O多路复用I/Oselectselect整个处理过程如下select函数原型:select的缺点 pollepollepoll的原理epoll的操作模式epoll的函数epoll_create()epoll_ctl()epoll_wait() epoll为什么更高效 前言 本文讨论的开发环境是 Linux 网络io 同步I/O 在操作系统中,程序运行的空间分为内核空间和用户空间,用户空间所有对io操作的代码(如文..转载 2021-03-08 22:30:37 · 439 阅读 · 0 评论 -
操作系统常见面试题总结
操作系统常见面试题总结 1、什么是进程(Process)和线程(Thread)?有何区别? 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一个...转载 2020-08-17 11:47:25 · 238 阅读 · 0 评论 -
TCP/UDP协议
TCP/UDP协议位于传输层:负责应用程序之间的数据传输(通过端口的描述来描述哪两个进程在进行通信)。一、UDP协议1、协议格式UDP协议的报头只有8个字节16位源端端口/16位对端端口:描述端与端之间的通信。16位UDP长度:限制了UDP总报文的长度(包含报头)不能超过64K。16位UDP校验和:使用二进制反码进行求和,校验接收的数据是否和发送的数据一致。二进制反码求和算法:对报文从头开始的每个字节进行取反相加,高于16位则截断高位,与低16位继续相加,最后得到校验和。2、特性无连接:原创 2020-07-28 09:47:02 · 441 阅读 · 0 评论 -
HTTP和HTTPS协议
一、基本概念HTTP: 超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法TTP。HTTP默认常用端口号为80HTTPS: 超文本传输安全协议。 HTTPS 是以安全为目标的 HTTP 协议,简单来说就是一个安全版的 HTTP。它是在 HTTP协议之下加上了一层SSL安全协议 (Secure Sockets Layer),即安全原创 2020-07-23 16:11:02 · 472 阅读 · 0 评论 -
TCP/IP四层模型和OSI七层模型概念解析
一、TCP/IP四层模型和OSI七层模型对应表OSI七层网络模型Linux TCP/IP四层概念模型对应网络协议应用层应用层TFTP,FTP,NFS,WAIS表示层Telnet,Rlogin,SNMP,Gopher会话层SMTP,DNS传输层传输层TCP,UDP网络层网际层IP,ICMP,ARP...转载 2020-07-22 15:44:17 · 434 阅读 · 0 评论 -
多线程编程基础
一直对多线程编程这一块很陌生,决定花一点时间整理一下。os:ubuntu 10.04 c++1.最基础,进程同时创建5个线程,各自调用同一个函数#include <iostream>#include <pthread.h> //多线程相关操作头文件,可移植众多平台 using namespace std; #define NUM_THREADS 5 //线程数 void* say_hello( void* args ){ cout << "转载 2020-07-06 17:12:10 · 185 阅读 · 0 评论 -
进程信号
一、信号的概念信号是进程之间事件异步通知的一种方式,属于软中断。比如说,我们常用的Ctrl^C(硬件中断)就是一个中断信号,可以用来打断我们的程序运行。注:只能终止前台进程在Linux系统下,我们可以通过kill -l的命令来查看系统所定义的信号。由此可以得到:1、每一个信号都有自己的编号和宏定义,这些宏定义可以在signal.h中找到。2、因为编号34以上的信号是实时信号,所以我们只需要关注编号34以下的信号即可。如果想要知道某个信号的信息,直接通过man命令查找就可以了。二、信号的产原创 2020-06-29 15:20:30 · 108 阅读 · 0 评论 -
进程间通信方式
一、管道管道是Unix中最古老的进程间通信的形式.1.匿名管道#include <unistd.h>int pipe(int fd[2]);其中fd是文件描述符数组,fd[0]表示读端, fd[1]表示写端返回值:成功返回0,失败返回错误代码管道特点:1.管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道.2.管道只能用于具有共同祖先的进程(...原创 2020-05-02 20:53:10 · 162 阅读 · 0 评论 -
动态库与静态库
一、静态库1.**函数库拓展名:**libxxx.a-L 指定库路径 -l 指定库名2.编译特点程序在编译链接的时候把库的代码直接整和到可执行程序中.3.可独立执行静态库最大的优点就是编译完成的程序可以独立运行,而不需要再向外部要求读取函数库的内容.4.更新虽然静态库的执行文件可以独立运行,但是当静态库进行更新的时候,所有使用过该库的程序都要进行重新编译.二、动态库1....原创 2020-04-29 14:52:32 · 65 阅读 · 0 评论 -
进程控制
一、进程创建fork函数在Linux中fork函数是非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。#include <unistd.h>pid_t fork(void);返回值:自进程中返回0,父进程返回子进程id,出错返回-1进程调用fork,当控制转移到内核中的fork代码后,内核做:1.分配新的内存块和内核数据结构给子进程2....原创 2020-04-10 16:22:57 · 67 阅读 · 0 评论 -
Linux常见指令及权限理解
基础指令:1.目录指令ls:语法: ls [选项][目录或文件]功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。常用选项:-a 列出目录下的所有文件,包括以 . 开头的隐含文件。-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件-k 以 k 字节的...原创 2020-03-22 12:31:30 · 239 阅读 · 0 评论