10 2019 档案

摘要:难! 阅读全文 »
posted @ 2019-10-17 18:47 Smah 阅读(271) 评论(0) 推荐(0) 编辑
摘要:什么是I/O 宏观上讲,I/O是信息处理系统(例如计算机)与外部世界(可能是人或其他信息处理系统)之间的通信。输入(Input)是系统接收的信号或数据,输出(Output)是从其发送的信号或数据。另一方面,在某一个信息处理系统内部,各部件或组件之间的通信也时刻离不开着I/O。 I/O模型 在介绍I/ 阅读全文 »
posted @ 2019-10-17 16:20 Smah 阅读(1200) 评论(0) 推荐(0) 编辑
摘要:1)字符串操作strcpy(p, p1) 复制字符串strncpy(p, p1, n) 复制指定长度字符串strcat(p, p1) 附加字符串strncat(p, p1, n) 附加指定长度字符串strlen(p) 取字符串长度strcmp(p, p1) 比较字符串strcasecmp忽略大小写比 阅读全文 »
posted @ 2019-10-17 16:18 Smah 阅读(357) 评论(0) 推荐(0) 编辑
摘要:在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时 阅读全文 »
posted @ 2019-10-17 15:14 Smah 阅读(839) 评论(0) 推荐(0) 编辑
摘要:操作系统内的并发执行进程可以是独立的也可以是协作的: 如果一个进程不能影响其他进程或受其他进程影响,那么该进程是独立的,换句话说,不与任何其他进程共享数据的进程是独立的; 如果一个进程能影响其他进程或受其他进程所影响,那么该进程是协作的。换句话说,与其他进程共享数据的进程为协作进程。 提供环境允许进 阅读全文 »
posted @ 2019-10-17 14:40 Smah 阅读(4337) 评论(0) 推荐(0) 编辑
摘要:If you use Linux you most likely have heard of the init.d directory. But what exactly does this directory do? It ultimately does one thing but it does 阅读全文 »
posted @ 2019-10-17 14:26 Smah 阅读(412) 评论(0) 推荐(0) 编辑
摘要:一、双缓冲作用 双缓冲甚至是多缓冲,在许多情况下都很有用。一般需要使用双缓冲区的地方都是由于“生产者”和“消费者”供需不一致所造成的。这样的情况在很多地方后可能会发生,使用多缓冲可以很好的解决。我举几个常见的例子: 例 1. 在网络传输过程中数据的接收,有时可能数据来的太快来不及接收导致数据丢失。这 阅读全文 »
posted @ 2019-10-17 14:23 Smah 阅读(13721) 评论(1) 推荐(4) 编辑
摘要:在Linux内核中, kmalloc能够分配的最大连续内存为2的(MAX_ORDER-1)次方个page(参见alloc_pages函数, "if (unlikely(order >= MAX_ORDER)) return NULL;"), page的大小一般是4K bytes, MAX_ORDER 阅读全文 »
posted @ 2019-10-17 14:15 Smah 阅读(1854) 评论(0) 推荐(0) 编辑
摘要:select,poll,epoll都是IO多路复用中的模型。再介绍他们特点时,先来看看多路复用的 模型。 同其他IO的不同的是,IO多路复用一次可以等多个文件描述符。大大提高了等待数据准备好的时间的效率。为了完成等的效率,系统提供了三个系统调用:select,poll,epoll。这里不再讲述三者具 阅读全文 »
posted @ 2019-10-17 11:23 Smah 阅读(403) 评论(0) 推荐(0) 编辑
摘要:c 阅读全文 »
posted @ 2019-10-16 17:47 Smah 阅读(325) 评论(0) 推荐(0) 编辑
摘要:之前讲解过内核线程、轻量级进程、用户线程三种线程概念解惑(线程≠轻量级进程), 但是一直对其中提到的线程的实现模型比较迷惑, 这次就花了点时间怎么学习了一下子 1 线程的3种实现方式 在传统的操作系统中,拥有资源和独立调度的基本单位都是进程。在引入线程的操作系统中,线程是独立调度的基本单位,进程是资 阅读全文 »
posted @ 2019-10-11 20:16 Smah 阅读(2803) 评论(0) 推荐(1) 编辑
摘要:线程与进程概念 在现代操作系统中,进程支持多线程。 进程是资源管理的最小单元; 线程是程序执行的最小单元。 进程是资源管理的最小单元; 线程是程序执行的最小单元。 即线程作为调度和分配的基本单位,进程作为资源分配的基本单位 一个进程的组成实体可以分为两大部分:线程集和资源集。进程中的线程是动态的对象 阅读全文 »
posted @ 2019-10-11 20:08 Smah 阅读(2022) 评论(0) 推荐(0) 编辑
摘要:基于Linux 2.6.32内核进行分析,看本篇文章前,建议先看看percpu变量这篇文章 smp_processor_id()用来获取当前cpu的id,首先来看smp_processor_id的定义: # define smp_processor_id() raw_smp_processor_id 阅读全文 »
posted @ 2019-10-11 16:52 Smah 阅读(8139) 评论(0) 推荐(1) 编辑
摘要:percpu变量的关键就是:要求根据CPU的个数,在内存中生成多份拷贝,并且能够根据变量名和CPU编号,正确的对各个CPU的变量进行寻址。 采用per-cpu变量有下列好处:所需数据很可能存在于处理器的缓存中,因此可以更快速地访问。如果在多处理器系统中多个CPU可能同时访问变量,会引发一些通信方面的 阅读全文 »
posted @ 2019-10-11 16:49 Smah 阅读(1354) 评论(0) 推荐(0) 编辑
摘要:在Linux系统中,网络设备都被抽象为struct net_device结构体。它是网络设备硬件与上层协议之间联系的接口,了解它对编写网络驱动程序非常有益,所以本文将着手简要介绍linux-2.6.38.8/include/linux/netdevice.h文件中struct net_device结 阅读全文 »
posted @ 2019-10-11 15:14 Smah 阅读(3212) 评论(0) 推荐(0) 编辑
摘要:https://www.kernel.org/doc/html/v4.15/translations/zh_CN/coding-style.html 1.缩进 制表符是 8 个字符,所以缩进也是 8 个字符。 如果你需要 3 级以上的缩进,不管用 何种方式你的代码已经有问题了,应该修正你的程序。 不 阅读全文 »
posted @ 2019-10-11 11:57 Smah 阅读(611) 评论(0) 推荐(0) 编辑
摘要:atomic_inc(&v)对变量v用锁定总线的单指令进行不可分解的"原子"级增量操作,避免v的值由于中断或多处理器同时操作造成不确定状态。 原子操作 所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位,因此这里的原子实际是使用 阅读全文 »
posted @ 2019-10-11 10:53 Smah 阅读(5816) 评论(0) 推荐(0) 编辑
摘要:Source Insight基本使用和快捷键 为什么要用Source Insight呢?貌似是因为比完整的IDE要更快一些,比较利于查看大量的代码。 软件的安装很简单,设置好安装目录。 配置好文档路径,当然这个也可以在Options里面改,选Options->Preferences…里面的Folde 阅读全文 »
posted @ 2019-10-11 09:43 Smah 阅读(8889) 评论(0) 推荐(1) 编辑
摘要:Soft skills are always hard than hard skills. 软技能比硬技能难。 老板听说最近流行“微服务”,问架构师咱们的系统要不要来一套?老板又听说最近流行“中台系统”,问架构师咱们要不要搞起来?其实,这些问题不用老板问,关注技术发展趋势的架构师每当听到新的技术或解 阅读全文 »
posted @ 2019-10-10 11:01 Smah 阅读(18070) 评论(2) 推荐(8) 编辑
摘要:内存地址(普通指针)或偏移地址(成员指针)。 指向变量的指针,是数据内存的地址,指向函数的指针是代码内存的地址,指向数据的指针指向数组开始位置的地址。 抽象点说,就是以一种统一的方式产生对不同数据结构的元素的引用 理解指针要注意以下几个点: -- 每个指针都有类型,类型决定指针移动时的步长(假设可移 阅读全文 »
posted @ 2019-10-10 10:35 Smah 阅读(1901) 评论(1) 推荐(1) 编辑
摘要:C语言内存四区:代码区、数据区、栈区、堆区 1.代码区(.text):代码区中主要存放程序中的代码(二进制),属性是只读。 2.数据区(静态存储区):主要包括静态全局区和常量区,如果要站在汇编角度细分的话还可以分为很多小的区。 A.全局区(静态区,static):全局变量和静态变量的存储是放在一块的 阅读全文 »
posted @ 2019-10-10 10:05 Smah 阅读(1026) 评论(0) 推荐(0) 编辑
摘要:1. 概述 在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件、目录文件、链接文件和设备文件。文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创建的索引,其是一个非负整数(通常是小整数),用于指代被打开的文件,所有执行I/O操作的系统调用都通过文件描述符。程 阅读全文 »
posted @ 2019-10-10 09:47 Smah 阅读(793) 评论(0) 推荐(0) 编辑
摘要:背景三角动画代码(页首Html代码): github右上角链接图案(博客侧边栏公告(支持HTML代码)(支持JS代码)): 置顶小火箭代码(页首Html代码): 富强民主24字动画(页脚Html代码) 鼠标点击烟花效果(页脚Html代码): 阅读全文 »
posted @ 2019-10-09 19:52 Smah 阅读(834) 评论(3) 推荐(4) 编辑
摘要:我明白很多入门深度学习者的疑惑。因为当初,我也是关注着这个问题进来的。 其实,我在《TensorFlow技术解析与实战》当中讲解过“深度学习入门的七个步骤”: 要想入门深度学习,需要两个工具,即算法知识和大量的数据,外加一台计算机,如果有GPU就更好了,但是因为许多入门初学者的条件有限,没有GPU也 阅读全文 »
posted @ 2019-10-09 19:11 Smah 阅读(609) 评论(0) 推荐(0) 编辑
摘要:分区是将一个硬盘驱动器分成若干个逻辑驱动器,分区是把硬盘连续的区块当做一个独立的磁盘使用。分区表是一个硬盘分区的索引,分区的信息都会写进分区表。通常情况下,为磁盘分区通常使用fdisk,它是对基于MBR机制分区的管理磁盘命令,但是它仅仅支持2TB以下磁盘的分区,超出2TB部分无法识别。若过超过则可以 阅读全文 »
posted @ 2019-10-09 19:04 Smah 阅读(6796) 评论(0) 推荐(0) 编辑
摘要:There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity sh 阅读全文 »
posted @ 2019-10-09 18:58 Smah 阅读(234) 评论(0) 推荐(0) 编辑
摘要:一般来说,Python中有两个内建的模块用于处理命令行参数: 一个是 getopt,《Deep in python》一书中也有提到,只能简单处理 命令行参数; 另一个是 optparse,它功能强大,而且易于使用,可以方便地生成标准的、符合Unix/Posix 规范的命令行说明。 示例如下: 1 2 阅读全文 »
posted @ 2019-10-09 17:08 Smah 阅读(2591) 评论(0) 推荐(0) 编辑
摘要:os 模块提供了非常丰富的方法用来处理文件和目录。常用的方法如下表所示: os.access(path, mode):检验权限模式 os.chdir(path)改变当前工作目录 os.chflags(path, flags)设置路径的标记为数字标记。 os.chmod(path, mode)更改权限 阅读全文 »
posted @ 2019-10-09 14:25 Smah 阅读(308) 评论(0) 推荐(0) 编辑
摘要:初始化 假设我们创建一个“argp.py”的文件。 运行的话,在python argp.py后面加上abcd(任意); 其将输出“abcd”。因为我们把abcd赋给了args.echo了。 给其设置help:parser.add_argument("echo", help = "echo is he 阅读全文 »
posted @ 2019-10-08 18:00 Smah 阅读(17608) 评论(0) 推荐(2) 编辑

点击右上角即可分享
微信分享提示