liunx
post_joke
这个作者很懒,什么都没留下…
展开
-
select、poll、epoll
Linux下实现I/O复用的系通调用主要有select、poll、epollselect系统调用用途:在一段指定时间内监听用户感兴趣的文件描述符上的可读、可写、异常事件函数原型:int select(int nfds,fd_set* readfds,fd_set* writefds,fd_set* exceptfds,struct timeval* timeout)nfds用来设...原创 2019-03-22 17:29:02 · 123 阅读 · 0 评论 -
HTTP和HTTPS的区别?
http是指超文本传输协议https是指安全的超文本传输协议,它是在http协议的基础上加入了ssl协议保证安全传输。这三个协议它都属于应用层协议http和https主要应用于web浏览器和网站服务器之间传递数据,,http协议以明文的方式发送内容不提供任何方式的数据加密,因此如果攻击者截取了web浏览器和网站服务器之间的传输报文,就可以直接读到,安全性极差,所以它不适合传输一些敏感信...原创 2019-07-30 16:28:25 · 133 阅读 · 0 评论 -
epoll源码剖析
epoll_creat(),创建内核事件表,底层实现是红黑树epoll_create对应的内核态函数如下该函数位于/fs/eventpoll.c,该文件是epoll的实现文件int epfd=epoll_create(size);可以发现epoll_create的size参数是没有使用的,但是size大小必须大于0否则会返回-EINVAL的错误,接着进入sys_epoll_crea...原创 2019-05-19 12:57:39 · 211 阅读 · 0 评论 -
fork源码剖析
fork是复制进程进程是一个正在运行的程序,是资源分配的最小单位,系统管理进程是依靠对进程控制块(PCB)的管理完成的,每个进程的产生分两步,一是:分配PCB,二是准备进程实体,如分配内存空间等。fork()创建进程,fork()调用一次,返回两次,子进程的返回值是0,父进程的返回值是子进程的新ID。文件共享在fork之前父进程打开的文件子进程才能使用,一个进程打开的文件描述符是在PCB...原创 2019-05-19 12:56:39 · 580 阅读 · 0 评论 -
两种高效的并发模式:半同步/半异步模式、领导者/追随者模式
半同步/半异步模式同步:程序完全按照代码顺序执行;异步:程序的执行需要由系统事件来驱动。常见的系统事件包括中断,信号等。半同步/半异步模式中,同步线程用于处理客户逻辑,即逻辑单元;异步线程用于处理I/O事件,即I/O处理单元异步线程监听到客户请求之后,就将其封装成请求对象插入请求队列,请求队列通知某个工作在同步模式的工作线程来读取并处理该请求对象。具体选择哪个工作线程取决于请求队列...原创 2019-05-19 12:52:45 · 368 阅读 · 0 评论 -
死锁
概念:多个进程或线程访问一组静态资源的时候,出现的永久阻塞的问题。产生的原因:1、系统资源不足2、程序运行推进的顺序不当3、资源分配不当死锁产生的四个条件1、互斥2、请求和保持3、不可抢占4、循环等待避免死锁只要打破其中某一个条件就行...原创 2019-03-29 15:47:39 · 97 阅读 · 0 评论 -
进程间通信
进程间通信有:管道、信号量、共享内存、消息队列、套接字管道分为有名管道和无名管道区别:有名管道在任意两个进程间进行通信;两个进程一读一写,当管道为空写端没有关闭,read阻塞,写端关闭,读端read返回0无名管道只能在父子进程间通信写入管道的数据都存在内存中,普通数据存在磁盘中;管道通信属于半双工半双工:双方都可以互相通信但不可同时进行通信,例如:对讲机全双工:...原创 2019-01-03 21:18:29 · 117 阅读 · 0 评论 -
进程fork()
进程的创建:pid_t fork(void);系统调用函数fork出错 返回-1,fork函数调用一次,返回两次在原来的进程返回新进程pid(不可能为0),在新进程中返回0;即在父进程执行非0,在子进程执行0#include<stdio.h>#include<stdlib.h>#include<string.h>#inclu...原创 2019-01-07 14:29:56 · 1171 阅读 · 0 评论 -
僵死进程
我们一般所说的32位/64位指ALU的宽度 一次处理的数据宽度malloc申请空间时,malloc函数调用成功只会分配虚拟地址空间上的一段地址空间,物理空间只要在使用时才会由系统分配给进程僵死进程:PCB存在,进程主体释放产生条件:子进程先于父进程结束,父进程未获取到子进程的退出码,从而子进程不得不保存退出码,导致整个PCB无法释放父进程获取子进程的退出码:pid_t w...原创 2019-01-07 14:49:11 · 552 阅读 · 0 评论 -
线程
线程同步的实现方式:信号量、互斥锁、条件变量、读写锁影响线程安全的因素:1、线程同步 2、线程安全的函数如strtok和strtok_r;有关线程的命令:ulimit -a 显示所有限制ulimit -s 显示栈的信息ulinit -u 显示用户最大进程数查看线程 ps -eLf L:显示线程2、多线程执行fork父进程多个线程,子进程只启用一...原创 2019-01-19 18:31:19 · 193 阅读 · 0 评论 -
进程和线程的区别
1、概念具有一定独立功能的程序关于某些数据结合上的运行活动,进程是系统进行资源分配和调度的一个独立单位线程:线程是进程的一个实体,是进程内部的一条执行序列,是CPU的基本单位,一个进程至少有一条线程,main函数的执行序列为主线程,通过线程创建函数并调用的执行序列为函数线程。二者区别:1、进程有独立的地址空间,一个进程崩溃后不会对其他进程产生影响,线程只有自己的栈和局部变量,没有单...原创 2019-03-09 18:59:43 · 173 阅读 · 0 评论 -
TCP协议
TCP:特性:面向连接的、可靠的、字节流服务 全双工模式使用TCP协议通信的双方必须先建立连接,才能开始数据的读写,双方都必须为该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输。TCP协议的这种连接是一对一的。因此目标是个多个主机地址的应用程序不能使用TCP服务。字节流服务的概念:发送端执行的写操作次数和接收端执行的读操作次数之间没有任何数量关系,也就是说当发送端应用...原创 2019-03-13 23:10:23 · 948 阅读 · 0 评论 -
Reactor模式和Proactor模式
reactor模式同步I/O模型通常用于实现reactor模式 模式特点:主线程只负责监听文件描述符上是否有就绪事件发生,如果有的话就将该事件通知给工作线程,除此之外,主线程不做其他的事情,读写数据,接受新的连接和处理新的客户请求均在工作线程完成。 同步I/O模型通常用于实现reactor模式的工作流程(epoll为例):1、主线程往epoll内核事件表注册socke...原创 2019-03-22 16:39:50 · 188 阅读 · 0 评论 -
TCP/IP协议族体系结构以及主要协议
TCP/IP协议族是一个四层协议系统,从下到上分别是:数据链路层、网络层、传输层以及应用层各层协议如下:数据链路层:ARP(地址解析协议),RARP(逆地址解析协议);网络层:ICMP(因特网控制报文协议),IP(因特网协议);传输层:TCP(传输控制协议),UDP(用户数据报协议);应用层:ping,telent,OSPF,DNS;各层功能:数据链路层是用来实现网卡接...原创 2019-07-26 19:24:23 · 676 阅读 · 0 评论