***系统与网络***
文章平均质量分 83
图灵的猫.
给行业以ai,而不是给ai以行业
展开
-
[C/C++]堆栈的概念与区别
栈:在函数调用时,第一个进栈的是主函数中后的下一条指令(函数调用语句的下一条可执行语句)的地址,然后是函数的各个参数,在大多数的C编译器中,参数是由右往左入栈的,然后是函数中的局部变量。堆:首先应该知道操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序,另外,对于大多数系统,会在这块内存空间中的首地址处记录本次分配的大小,这样,代码中的delete语句才能正确的释放本内存空间。原创 2017-12-22 23:01:19 · 641 阅读 · 0 评论 -
Linux学习笔记(二):什么是挂载?mount的用处在哪?
5.这时提问者使用了 mount /dev/sdb1 ~/Share/ ,把新硬盘的区sdb1挂载到工作目录的~/Share/文件夹下,之后访问这个~/Share/文件夹就相当于访问这个硬盘2的sdb1分区了。对/Share/的任何操作,都相当于对sdb1里文件的操作。我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。4.我们虽然可以在一些图形桌面系统里找到他的位置,浏览管理里面的文件,但在命令行却不知怎么访问它的目录,比如无法使用cd或者ls。原创 2018-03-09 19:10:08 · 62464 阅读 · 51 评论 -
Linux学习笔记(一):Win10上用VMware虚拟机安装Linux-CentOS
第八步:将处理器设置为4核,也可以不修改,将新CD/DVD(IDE)的连接选择ISO镜像文件,并选择下载好的CentOS的iso镜像文件路径,点击关闭,再点击完成;VMware是一个虚拟PC的软件,可以在现有的操纵系统上虚拟出一个新的硬件环境,相当于模拟出一台新的PC,以此来实现在一台机器上真正同时运行两个独立的操作系统。这周开始Linux的学习,教材参考鸟哥的Linux私房菜,系统本来想用UBUNTU,不过为了方便还是使用教材推荐的CENTOS,下面附上自己的安装过程。密码是之前设置的:123456;原创 2018-03-03 10:04:27 · 10189 阅读 · 3 评论 -
Linux学习笔记(五):less|more的命令使用
我的机器学习教程「美团」算法工程师带你入门机器学习 以及「三分钟系列」数据结构与算法已经开始更新了,欢迎大家订阅~这篇专栏整合了这几年的算法知识,简单易懂,也将是我实体书的BLOG版。欢迎大家扫码关注微信公众号「图灵的猫」,除了有更多AI、算法、Python相关文章分享,还有免费的SSR节点和外网学习资料。其他平台(微信/知乎/B站)也是同名「图灵的猫」,不要迷路哦~...原创 2018-03-12 21:50:26 · 490 阅读 · 0 评论 -
线程与进程最通俗易懂的解释(附面试题与答案)
我的机器学习教程「美团」算法工程师带你入门机器学习 已经开始更新了,欢迎大家订阅~任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑~此外,公众号内还有更多AI、算法、编程和大数据知识分享,以及免费的SSR节点和学习资料。其他平台(知乎/B站)也是同名「图灵的猫」,不要迷路哦~零...原创 2018-03-06 00:27:01 · 7994 阅读 · 1 评论 -
多进程|多线程的不同应用场景:Python还是C
这种计算密集型任务虽然也可以用多任务完成,但是任务越多,花在任务切换的时间就越多,CPU执行任务的效率就越低,所以,要最高效地利用CPU,计算密集型任务同时进行的数量应当等于CPU的核心数。假设你打算切换到多任务模型,可以先做1分钟语文,再切换到数学作业,做1分钟,再切换到英语,以此类推,只要切换速度足够快,这种方式就和单核CPU执行多任务是一样的了,以幼儿园小朋友的眼光来看,你就正在同时写5科作业。所以,多任务一旦多到一个限度,就会消耗掉系统所有的资源,结果效率急剧下降,所有任务都做不好。原创 2018-04-08 14:06:12 · 1916 阅读 · 0 评论 -
「三分钟系列03」3分钟看懂什么是三次握手/四次挥手
而在这个连接建立,并释放后,第一次发送的,阻滞在网络中的报文到达了服务器,服务器以为是客户端又重新发送了一个连接请求(实际上在客户端那里,该连接早已失效),就又向客户端发送一个确认,但客户端认为他没有发送该请求报文,因此不理睬服务器发送的确认,而服务器以为又建立了一个新的连接,于是一直等待A发来数据,造成了服务器资源的浪费,并且会产生安全隐患。如果你喊了一句,半天没听到妹子回复,你会很低落,好比谈恋爱的时候,你满腔热情,而妹子忽冷忽热,所以你锲而不舍,一次不行,就两次,两次不行就三次,这就是tcp重传。原创 2018-03-27 19:27:18 · 4259 阅读 · 2 评论 -
Linux安装后无法进入图形界面(GNOME,KDE等)的解决方法
之前一直用level3的命令行在学习Linux,今天觉得有必要把GUI的操作熟悉一下,因此试着切换到图形界面,试了很多方法都没成功。然后我突然意识到我安装的是自定义minimal版本,所以,没有给我安装什么XWINDOWS、GNOME这类东西的。更改模式命令:systemctl set-default graphical.target由命令行模式更改为图形界面模式。如果你想在系统下次启动的时候自动进入图形界面,那么我们需要更改系统的运行级别,输入下面的命令来启用图形界面。更改后验证是否正确:reboot;原创 2018-03-27 20:47:17 · 74341 阅读 · 4 评论 -
大端、小端的前世今生
BigEndian(大端):低字节在高内存地址LittleEndian(小端):低字节在低内存地址所谓大端小端,也就是看低字节在高内存地址还是低内存地址,也就是看低字节在前还是高字节在前,低字节在前自然是小端,高字节在前就是大端。所谓大小端,是指字节存储或传输时的顺序。原创 2018-04-10 14:24:24 · 1718 阅读 · 0 评论 -
一文读懂OSI七层模型与TCP/IP四层的区别/联系
OSI(Open System Interconnect),即开放式系统互联。一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。ISO为了更好的使网络应用更为普及,推出了OSI参考模型。其含义就是推荐所有公司使用这个规范来控制网络。这样所有公司都有相同的规范,就能互联了。OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即ISO开放互连系统参考模型。每一层实现各自的功能和协议,并完成与相邻层的接口通信。原创 2018-04-11 12:08:58 · 61626 阅读 · 11 评论 -
编译原理:有穷自动机(DFA与NFA)
幸运的是,只需要很简单的规则,就能把任何正则表达式转化成NFA,而任何一个NFA又都可以转化为DFA,这样我们就能把正则表达式转化为易于编程的DFA,来真正进行词法分析的工作。如果经过字母a,则该字符串肯定是非法的。程序实现也非常简单,状态和字母都被编码成整数,使用一个矩阵表示状态转移,再写一个函数表示自动机的运行,对每一个字符串,从状态1开始运行,运行完毕进行状态判断即可。FA可以看做是一个有向带权图,图的顶点集合称为自动机的状态集合,图的权值集合为自动机的字母集合,图的边代表了自动机中状态变化的情况。原创 2018-03-01 19:38:25 · 51731 阅读 · 1 评论 -
3分钟Tips:用大白话告诉你什么是低耦合|高内聚
耦合当然也可以这样简单的理解,我想懂电脑的应该都知道,CPU与主板之间的关系,CPU如果是特殊的CPU必须使用特殊的主板来支持,那么如果说这个CPU不唯一依赖唯一主板,那么就认为这个CPU与主板的关系是低耦合的关系。那么外界模块不关心支付系统模块的变化,只需要调用接口即可,如果具体的支付方式,比如支付宝的方式发生改变,在调用支付服务的模块中也不需要做任何的修改就可以正常的提供服务。低内聚的模块设计的坏处有:首先模块的功能不单一,模块的职责不明确,比较松散,更有甚者是完成不相关的功能。果细化到具体的实现呢?原创 2018-03-08 20:07:49 · 51559 阅读 · 10 评论 -
内存、cache和寄存器之间的关系及区别
是中央处理器内的组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。,当CPU再次使用该部分数据时可从Cache中直接调用,这样就减少了CPU的等待时间,提高了系统的效率。3. 寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,,常见的容量有256KB或512KB L2 Cache。,L2 Cache早期一般是焊在主板上,原创 2018-01-12 22:51:27 · 6003 阅读 · 1 评论 -
Python与C:指针与按址传递
不得不佩服作者的创造力,自己曾经也被c语言的指针整的焦头烂额。网上很多c#和python的比较,但是我要说的是,这两种语言设计思路从最核心,最底层的解决思路是不一样的。总而言之:python把一切数据,一切的一切都看作对象,在python中,没有变量,只有指针,要说变量,也是指针变量。看看,a =5 在c中是非常普通的赋值,我们也通常把这个语句叫做赋值语句,但是在python中,这样的理解就错了。是不是很奇怪,一个类,或者对象是不可以用数字来命名的,但是作为对象实例化,或者类的实例化,问题就很好理解了。原创 2018-01-13 21:16:44 · 4906 阅读 · 1 评论 -
if __name__ == ‘__main__‘ 的正确理解
如果你接触过这些语言,对于程序入口这个概念应该很好理解,C,C++都需要有一个main函数作为程序的入口,也就是程序的运行会从main函数开始。之后,就会判断这个文件的程序入口是不是main(把Python中的程序想象成一个类,那么__name__就相当于构造函数里的__self__),换句话说,如果这个文件是正在执行的,那么它的入口必然是'main'也就是从脚本第一行开始运行,没有统一的入口。对于很多编程语言来说,程序都必须要有一个入口,比如C,C++,以及完全面向对象的编程语言Java,C#等。原创 2018-01-13 23:15:46 · 1019 阅读 · 0 评论 -
C语言:指向指针的指针
问题:如何理解指向指针的指针?我在一篇教程中看到下面这段,它描述指向指针的指针是如何运作的。引用文章相关段落如下:C12int i = 5, j = 6, k = 7;int *ip1 = &i, *ip2 = &j;现在我们可以这么写:C翻译 2018-01-05 18:00:36 · 478 阅读 · 0 评论 -
C语言中的main函数为什么被称作程序入口
在接下来的五个函数执行中,都可以看到前面ConsoleApplication3开头,这个是我们的程序文件名,这表示这几个函数都是为我们程序服务的,这些都是运行在我们程序的进程空间的,其实就是我们程序所占的内存块中。操作系统的安排,启动运行时库,运行时库再初始化好环境,然后启动你的入口函数,你的程序才正常的运行起来。如果你看到的不是这样的,有很多问号的,或者显示什么不可用符号等等,在对应的那条上面,右击点击显示或导入“符号”的菜单,然后VS自动更新符号,这样就可以显示出这些函数分符号名了。原创 2018-01-07 11:04:18 · 3731 阅读 · 0 评论 -
数据结构与算法(一):线性表、栈、树(二叉树,AVL树)、图
数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作。算法是为求解一个问题需要遵循的、被清楚指定的简单指令的集合。下面是自己整理的常用数据结构与算法相关内容,如有错误,欢迎指出。原创 2018-01-08 21:55:03 · 1580 阅读 · 0 评论 -
C语言Register关键字:利用寄存器提升访问效率
这里要说明的一点是:小太监是主动的从大臣手里接过奏章,然后主动的交给皇帝同志,但寄存器没这么自觉,它从不主动干什么事。由于寄存器的数量有限,而且某些寄存器只能接受特定类型的数据(如指针和浮点数),因此真正起作用的register修饰符的数目和类型都依赖于运行程序的机器,而任何多余的register修饰符都将被编译程序所忽略。你想想,一个CPU 的寄存器也就那么几个或几十个,你要是定义了很多很多register 变量,它累死也可能不能全部把这些变量放入寄存器吧,轮也可能轮不到你。例如下面的内存块拷贝代码,原创 2018-01-08 20:12:03 · 3612 阅读 · 0 评论 -
时间复杂度与NP/NP难/NP完全问题的最简单理解法
我的机器学习教程「美团」算法工程师带你入门机器学习 已经开始更新了,欢迎大家订阅~任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑~此外,公众号内还有更多AI、算法、编程和大数据知识分享,以及免费的SSR节点和学习资料。其他平台(知乎/B站)也是同名「图灵的猫」,不要迷路哦~什么是...转载 2018-01-19 17:44:27 · 8122 阅读 · 7 评论 -
VMware安装Linux时‘Operating System Not Found‘的解决方法
今天在WIN10上安装CENTOS 7,VM出现了几个问题,找了很多方法终于解决并且成功安装。其中最麻烦的就是这个operating system not found。这一步的原因是VM默认的自动选择,但很多时候目录都是错的。最后断电重启,从BOOT进去就可以开始设置安装向导了。第一步:单击这个地方。原创 2018-03-06 23:30:02 · 75166 阅读 · 10 评论 -
Unicode与UTF8:字符集与字符编码的关系
110之后的所有部分(5个bit)加上后一个字节的除10外的部分(6个bit)代表在Unicode中的序号。GB18030:GBK字符集的超集,常叫大汉字字符集,也叫CJK(Chinese,Japanese,Korea)字符集,包含了中、日、韩三国语言中的所有字符。编码字符集,用一个编码值code point来表示一个字符(即该字符在子库表中的位置),这个值称为字符对应于编码字符集(如:Unicode、ASCII)的序号。如果一个字节的第一位为0,那么代表当前字符为单字节字符,占用一个字节的空间。原创 2018-02-07 19:00:30 · 1000 阅读 · 0 评论