
Linux
冰室晨也
这个作者很懒,什么都没留下…
展开
-
如何避免死锁(X)如何防止你处于恋爱的三角关系中(V)
死锁的概念:多个进程或线程访问一组竟态资源的时候,出现的永久阻塞的问题。产生的原因主要有三个:系统资源不足,程序运行推进的顺序不当,资源分配不当。产生的四个条件是:(括号里的内容只是帮大家巧记,与作者本人无关,大家看个开心就好)1) 互斥某种资源一次只允许一个进程访问,一旦资源被某个进程访问,其他进程就不能访问该资源,知道访问结束。(其实产生死锁的条件就和谈恋爱一样,一旦两个...原创 2019-08-18 16:08:50 · 222 阅读 · 0 评论 -
进程间通信有哪几种方式?
进程间通信有以下几种管道:管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道; 匿名管道只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程); 单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在于内存中。 无名管道(pipe):管道是一种半双工的通...原创 2019-08-21 12:49:22 · 1259 阅读 · 0 评论 -
线程同步方法有哪些?
(1)互斥锁允许程序员锁住某个对象,使得每次只能有一个线程访问他。为了控制关键代码的访问,必须在进入这段代码之前锁住一个互斥量,然后再完成操作之后解锁它。用于互斥锁的基本函数:#include<stdio.h>int pthread_mutex_init(pthread_mutex_t *mutex,const pthread_mutexattr_t *mutexatt...原创 2019-08-21 13:30:57 · 385 阅读 · 0 评论 -
OSI七层模型和TCP/IP层模型 以及对应的常见协议
OSI七层模型包括(从下到上):物理层、数据链路层、网络层、运输层、会话层、表示层、应用层。TCP/IP四层模型(从下到上):网络接口层、网络层、运输层、应用层OSI七层模型 常见协议 TCP/IP四层模型 常见协议 应用层 FTP、HTTP、DNS 应用层 FTP、HTTP、DNS 表示层 JPEG、ASII 会话层 RPC、N...原创 2019-08-21 13:59:16 · 699 阅读 · 0 评论 -
IP地址和MAC地址
MAC地址是一个48位的硬件地址,该地址和设备是匹配的,每台机器都有一个唯一的MAC地址,用来定义网络设备的位置,主要由数据链路层负责。MAC地址的作用是为唯一的标识一台主机,用于局域网内的通信,类似于身份证号。IP地址是一个32/128位的网络地址,由于目前使用的IPV4,所以全球的IP地址是不够分配的,所以IP地址采用的是动态分配的方式。IP地址的主要作用是寻找局域网,在网络层工作,如果不...原创 2019-08-21 14:01:55 · 311 阅读 · 0 评论 -
简单的可靠udp的实现(RUDP)
可靠的概念在实时通信过程中,不同的需求场景对可靠的需求是不一样的,我们在这里总体归纳为三类定义: 尽力可靠:通信的接收方要求发送方的数据尽量完整到达,但业务本身的数据是可以允许缺失的。例如:音视频数据、幂等性状态数据。 无序可靠:通信的接收方要求发送方的数据必须完整到达,但可以不管到达先后顺序。例如:文件传输、白板书写、图形实时绘制数据、日志型追加数据等。 有序可靠:通信接收...原创 2019-08-25 19:20:37 · 1687 阅读 · 0 评论 -
gdb 常用的调试命令都有哪些?
刚学习linux的小伙伴是不是总会面临一个问题,那就是代码出现BUG的问题,那么如何去解决就需要大家学会使用GDB的调试工具啦!下面是我总结的一些我经常用的调试命令GDB 调试常用命令:1) l 显示代码 l 1(行号)显示第一行, l add.c(文件名):3 跳转到add.c 的第三行2) b:加断点 b+行号 b+函数名3) info bre...原创 2019-08-17 21:34:57 · 549 阅读 · 0 评论 -
Makefile文件以及静态库和动态库
在Linux下写项目总会碰见这样的情况------哎呀~~这个项目的文件需要好多文件一起编译,这么多,眼睛快花了。我去!少编译一个,又要重新打了,心态炸了。。。。 //(T o T)//makefile文件目的是为了方便工程管理,当面临你写了很多个源文件的时候这个时候为了简化你的大量重复编译而设计出来的途家,再者很多项目就编译就要很长时间,改3次代码编译三次一天就过去了,啥也没干...原创 2019-08-17 22:01:02 · 3451 阅读 · 1 评论 -
TCP 与 UDP 区别
1) TCP 特点:面向连接的、可靠的、流式服务TCP面向连接(如打电话要先拨号建立连接); TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达; TCP通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。 每一条TCP连接只能是点到点的; TCP对系统资源要求较多2) ...原创 2019-08-25 18:37:05 · 142 阅读 · 0 评论 -
TCP 服务器客户端编程流程
客户端调用序列调用socket函数创建套接字 调用connect连接服务端 调用I/O函数(accept/recv)与服务器端通讯 调用close关闭套接字服务器端调用序列调用socket函数创建本地套接字 调用bind函数绑定本地地址和端口 调用listen启动监听 调用accept从已经连接的队列中提出客户连接 调用I/O函数(accept/recv)与客户端通讯 调...原创 2019-08-25 18:25:55 · 1288 阅读 · 0 评论 -
进程和线程
进程说到进程就不得不提下操作系统的调度大部分操作系统(如Windows、Linux)的任务调度是采用时间片轮转的抢占式调度方式。也就是说一个任务执行一小段时间后强制暂停去执行下一个任务,每个任务轮流执行。任务执行的一小段时间叫做时间片,任务正在执行时的状态叫运行状态,任务执行一段时间后强制暂停去执行下一个任务,被暂停的任务就处于就绪状态,等待下一个属于它的时间片的到来。这样每个任务都能得到...原创 2019-08-18 18:04:35 · 273 阅读 · 0 评论 -
用户态和内核态的区别
在计算机系统中,通常运行着两种程序————系统程序和应用程序,为了保证整系统程序不被应用程序所破坏,系统设置了两种状态1)内核态,操作系统在系统态运行———运行操作系统程序。2)用户态,应用程序只能在用户态运行———运行用户程序。运行过程中处理机会在用户态和内核态来回切换,由此相应的现代操作系统将CPU指令也划分为两类,特权指令和非特权指令。特权指令(在内核态运行的指令)1)对...原创 2019-08-18 21:37:55 · 291 阅读 · 0 评论 -
linux 环境下 main 函数有几个参数,并说明各个参数的意义
关于c语言里的main函数一般有两个参数int argc,char * argv[ ];main 函数的参数也叫做命令参数,顾名思义就是在linux或者windows的dos下面敲命令的时候就有用了。argv指的是 char * argc[]的大小char * argc[]是一个指针数组,里面存放的是char *类型的指针argc[0]表示自身运行目录路径和程序...原创 2019-08-18 21:58:58 · 1006 阅读 · 1 评论 -
系统调用
系统调用由操作系统实现提供的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API)。是应用程序同系统之间的接口。系统调用接口系统功能调用是操作系统提供给程序设计人员的一种服务。程序设计人员在编写程序时,可以利用系统调用来请求操作系统的服务。目的:方便用户使用。系统调用 和函数调用的区别系统调用1.使用...原创 2019-08-19 12:48:29 · 173 阅读 · 0 评论 -
中断和异常
异常当cpu在执行运行在用户态下的程序时,发生了一些没有预知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关进程中,也就是切换到了内核态,如缺页异常。外围设备的中断当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令而转到与中断信号对应的处理程序去执行,如果前面执行的指令时用户态下的程序,那么转换的过程自然就会是 由用户态到...原创 2019-08-19 13:18:28 · 1149 阅读 · 0 评论 -
Linux基础
目录结构/boot启动Linux时使用的一些核心文件,包括一些连接文件和镜像文件;/binbinary,存放最常使用的命令;/lib存放着系统最基本的动态连接共享库;/home用户的主目录/devdevice,存放Linux的外部设备;在Linux中,访问设备和访问文件的方式是相同的;/usr用户的很多应用程序和文件/var存放在不断扩...原创 2019-08-14 11:49:17 · 105 阅读 · 0 评论 -
复制进程 fork ()&写实拷贝&僵死进程
简述 fork 复制进程的流程,并说明什么是写时拷贝原创 2019-08-19 15:32:57 · 278 阅读 · 0 评论 -
post和get的区别
Get和Post在面试中一般都会问到,一般的区别:post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中) post发送的数据更大(get有url长度限制) post能发送更多的数据类型(get只能发送ASCII字符) post比get慢 post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作(淘宝,支付宝的搜索查询都是get提交...原创 2019-08-31 12:34:03 · 136 阅读 · 0 评论