数据单位

计算机常识

走远了吗. 提交于 2020-04-07 05:42:24
计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。由硬件系统和软件系统所组成,没有安装任何软件的计算机称为裸机。 计算机发明者 约翰·冯·诺依曼 。计算机是20世纪最先进的科学技术发明之一,对人类的生产活动和社会活动产生了极其重要的影响,并以强大的生命力飞速发展。它的应用领域从最初的军事科研应用扩展到社会的各个领域,已形成了规模巨大的计算机产业,带动了全球范围的技术进步,由此引发了深刻的社会变革,计算机已遍及一般学校、企事业单位,进入寻常百姓家,成为信息社会中必不可少的工具。 发展历史 计算工具的演化经历了由简单到复杂、从低级到高级的不同阶段,例 ENIAC计算机 如从“结绳记事”中的绳结到算筹、算盘计算尺、机械计算机等。它们在不同的历史时期发挥了各自的历史作用,同时也启发了电子计算机的研制和设计思路。 1889年,美国科学家 赫尔曼·何乐礼 研制出以电力为基础的电动制表机,用以储存计算资料。 1930年,美国科学家 范内瓦·布什 造出世界上首台模拟电子计算机。 1946年2月14日,由美国军方定制的世界上第一台电子计算机“ 电子数字积分计算机 ”(ENIAC Electronic

深度探索JFR

会有一股神秘感。 提交于 2020-04-06 03:45:20
本文基于 OpenJDK 11 并涉及一些之后版本的特性,非 OpenJDK 11 的特性会被特殊标记出来 什么是 JFR? 我们都知道,黑匣子是用于记录飞机飞行和性能参数的仪器。在飞机出问题后,用于定位问题原因。JFR 就是 Java 的黑匣子。 JFR 是 Java Flight Record (Java飞行记录) 的缩写,是 JVM 内置的基于事件的JDK监控记录框架。这个起名就是参考了黑匣子对于飞机的作用,将Java进程比喻成飞机飞行。顾名思义,这个记录主要用于问题定位和持续监控。 如果是利用默认配置启动这个记录,性能非常高效,对于业务影响很小,因为这个框架本来就是用来长期在线上部署的框架。这个记录可以输出成二进制文件,用户可以指定最大记录时间,或者最大记录大小,供用户在需要的时候输出成文件进行事后分析。 JFR 的前身也是 JFR,只不过这个 J 不是 Java 而是 JRockit。在 JRockit 虚拟机时代,就有这样一个工具用来记录 Java 虚拟机运行时各项数据。在 Oracle 收购 Sun 公司之后,Hotspot 虚拟机时代,也一直延续了这个工具: JFR 0.9 版本对应 JDK 7 和JDK 8:JDK 7u40 之后,实现了和 JRockit Flight Recorder 一样的功能,并添加了各项数据配置,用来打开或者关闭一些统计数据功能。而且,在

进程、线程、协程之概念理解+线程和进程各自有什么区别和优劣

给你一囗甜甜゛ 提交于 2020-03-10 06:09:31
一、概念 首先,根据图了解一下串行,并行和并发的基本概念:   1、进程    资源分配的基本单位 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。 Linux系统函数fork()可在父进程中创建一个子进程,在父进程接到新请求时,复制出一个子进程来处理,即父进程监控请求,子进程处理,实现并发处理。注意:必须是Linux系统,windows不能用fork。 组成 进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。 特征 动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。 并发性:任何进程都可以同其他进程一起并发执行 独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位; 异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的

proc - 进程信息伪文件系统

邮差的信 提交于 2020-03-10 03:23:30
描述 /proc 是一个伪文件系统, 被用作内核数据结构的接口, 而不仅仅是解释说明 /dev/kmem. /proc里的大多数文件都是只读的, 但也可以通过写一些文件来改变内核变量. 下面对整个 /proc 目录作一个大略的介绍. [number] 在 /proc 目录里, 每个正在运行的进程都有一个以该进程 ID 命名的子目录, 其下包括如下的目录和伪文件. cmdline 该文件保存了进程的完整命令行. 如果该进程已经被交换出内存, 或者该进程已经僵死, 那么就没有任何东西在该文件里, 这时候对该文件的读操作将返回零个字符. 该文件以空字符 null 而不是换行符作为结束标志. cwd 一个符号连接, 指向进程当前的工作目录. 例如, 要找出进程 20 的 cwd, 你可以: cd /proc/20/cwd; /bin/pwd 请注意 pwd 命令通常是 shell 内置的, 在这样的情况下可能工作得不是很好. environ 该文件保存进程的环境变量, 各项之间以空字符分隔, 结尾也可能是一个空字符. 因此, 如果要输出进程 1 的环境变量, 你应该: (cat /proc/1/environ; echo) | tr ";\000"; ";\n"; (至于为什么想要这么做, 请参阅 lilo (8).) exe 也是一个符号连接, 指向被执行的二进制代码. 在 Linux

IO流

牧云@^-^@ 提交于 2020-03-09 04:52:17
IO流 一、什么是流 流:对输入和输出设备的抽象,流的本质就是数据的传递 根据数据流向,分为: 1.输入流:从输入流中读取数据,比如:键盘输入 2.输出流:向输出流中,写入数据,比如:打印机 根据处理数据的单位,分为: 1.字节流,以字节(Byte)为单位,处理任意类型的数据(图片,视频,文件等) 2.字符流,以字符(Char)为单位,对纯文本进行处理,其实就是字节流获取文本数据之后,没有直接处理,而是查找编码获取对应的文字进行! 根据功能,分为: 1.字点流:针对特定的IO设备,进行读写,又叫低级流 2.处理流:对已存在的流进行封装或者连接,来实现读写操作,又叫高级流! 1.字符输出流 //1.设置路径 String path="./src/com/main/test.txt"; //true 拼接,接着上次的内容,继续写 FileWriter fileWriter=null; try { fileWriter=new FileWriter(path, false); fileWriter.write("hello word"); fileWriter.close(); } catch (IOException e) { e.printStackTrace(); }finally { } 2.字符输入流 try { FileReader fileReader=new

一种新的N维查找表实现方法

泄露秘密 提交于 2020-03-07 02:11:36
注:此为论文读书笔记 英文论文原名为:《A new Implementation of the N-D Lookup Tables》 由于笔者英文水平不咋地,先翻译了一遍。 摘要  HDF5Table库是一个开源的解决方案,用于系统仿真中典型数据集的有效处理、交换(exchange)和插值(interpolating)访问。该库由C函数、Python脚本和示例组成,可以与Modelica或Simulink等不同的应用程序一起使用。此外,还提供了一套允许用户创建,迁移,编辑,比较和管理数据集的综合工具。  应用范围包括从测量或其他仿真中导入数据,在预处理例程中集成数据集,在仿真中使用数据集以及对仿真结果进行后处理。为了消除(eliminate)仿真工具或不同公司之间的数据交换后的主要误差源,并验证数据集,每个数据集可以附加物理单位和数量。可以使用不同的内插和外插方法轻松访问表数据。 为了保存(persist)和交换数据集,使用了HDF5标准的子集。 使用HDF5 API,大型文件的数据访问速度很快,其中包含多个变量,包含数百万个值,并且可以在许多其他工具中打开数据集。 关键字:HDF5; 查找表; 单位和数量安全; 插值 外插法 摘要介绍了一个叫HDF5表的标准库,看他的意思,这个库很厉害。 1 简介 查找表通常在工业仿真中起主要作用

Redis 详解 (二) redis的配置文件介绍

怎甘沉沦 提交于 2020-03-03 14:05:55
目录 1、开头说明 2、INCLUDES 3、MODULES 4、NETWORK 5、GENERAL 6、SNAPSHOTTING 7、REPLICATION 8、SECURITY 9、CLIENTS 10、MEMORY MANAGEMENT 11、APPEND ONLY MODE 12、LUA SCRIPTING 13、REDIS CLUSTER   上一篇博客我们介绍了如何安装Redis,在Redis的解压目录下有个很重要的配置文件 redis.conf (/opt/redis-4.0.9目录下),关于Redis的很多功能的配置都在此文件中完成的,在上一讲我也说过,一般为了不破坏安装的文件,出厂默认配置最好不要去改,所以我们将此配置文件复制到 /etc/redis/目录下了。   通过 vim /etc/redis/redis.conf 命令打开此文件。下面我们将详细介绍此配置文件。   ps:大家不懂这些配置意思没关系,后面会在具体实例中进行介绍,先过个眼熟即可。 回到顶部 1、开头说明      这里没什么好说的,需要注意的是后面需要使用内存大小时,可以指定单位,通常是以 k,gb,m的形式出现,并且 单位不区分大小写 。 回到顶部 2、INCLUDES      我们知道Redis只有一个配置文件,如果多个人进行开发维护,那么就需要多个这样的配置文件

RTP、RTCP及媒体流同步

我是研究僧i 提交于 2020-02-28 20:37:37
转自:http://blog.163.com/liu_nongfu/blog/static/19079414220139169225333/ 一、流媒体简介   流媒体是指在internet中使用流媒体技术的连续时基媒体,例如视频、音频或多媒体文件。流式传输方式是将音视频、动画等多媒体文件经过压缩后分成一个个小数据包,当用户端发出请求时,由服务器端向用户端实时、连续传送这些小数据包,动态变化的网络可能使各个包选择不同的路由,故到达用户端的时间延迟也就不同。在用户端用播放器播放时,需要为接收数据开辟缓存区,以弥补时延和时延抖动的影响和保证数据包传输顺序的正确,经解压缩后,只需要在缓冲区充满前等待几秒钟,就可以连续观看。而同时,后续数据包继续在后台从服务器端以稳定的速率向客户端发送,不影响前台播放。所以从理论上讲,播放前的延时主要是由于播放器接收、处理前几个数据包引起的,一旦播放就能够保证连续性和稳定性。流式传输的实现不仅需要高效的压缩算法和缓存,而且需要合适的传输协议。由于tcp需要较多的开销,不太适合传输实时数据。在流式传输的实现方案中,一般采用http/tcp来传输控制信息,而用RTP/UDP来传输实时视音频数据。实现流式传输一般都需要专用的媒体服务器和媒体播放器。 二、流媒体传输的网络协议:RTP与RTCP介绍 1.实时传输协议RTP( Real-time Transport

谈谈RTP传输中的负载类型和时间戳

耗尽温柔 提交于 2020-02-19 18:49:43
最近被RTP的负载类型和时间戳搞郁闷了,一个问题调试了近一周,终于圆满解决,回头看看,发现其实主要原因还是自己没有真正地搞清楚RTP协议中负载类型和时间戳的含义。虽然做RTP传输,有着Jrtplib和Ortp这两个强大的库支持,一个是c++接口,一个是c语言接口,各有各的特点,各有各的应用环境,但是仅仅有库就能解决一切问题吗?可能仿照着一些例子程序,你能够完成主要的功能,但一旦问题发生了,不清楚原理你是很难定位和解决问题的,所以在此,用我的经验劝劝大家,磨刀不误砍柴工,做应用还是先把原理搞清楚再动手吧…… 看这篇文章之前,首先你应该知道什么是RTP协议,可以去看RTP协议原文(RFC3550协议),也可以看一些网友对RTP协议的讲解的文章,很多,这里我提供一篇我个人觉得写得还不错的:http://blog.csdn.net/bripengandre/archive/2008/04/01/2238818.aspx 。 下面言归正传,首先谈谈RTP传输中的负载类型吧 。 首先,看RTP协议包头的格式: 10~16 Bit为PT域,指的就是负载类型(PayLoad),负载类型定义了RTP负载的格式,协议原文说该域由具体应用决定其解释。 目前,负载类型主要用来告诉接收端(或者播放器)传输的是哪种类型的媒体(例如G.729,H.264,MPEG-4等),这样接收端(或者播放器

Linux服务器优化

风格不统一 提交于 2020-02-19 16:33:25
1 cpu性能查看 1、查看物理cpu个数: cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l 2、查看每个物理cpu中的core个数: cat /proc/cpuinfo | grep "cpu cores" | wc -l 3、逻辑cpu的个数: cat /proc/cpuinfo | grep "processor" | wc -l 物理cpu个数*核数=逻辑cpu个数(不支持超线程技术的情况下) 1.2 内存查看 1、查看内存使用情况: #free -m total used free shared buffers cached Mem: 3949 2519 1430 0 189 1619 -/+ buffers/cache: 710 3239 Swap: 3576 0 3576 total:内存总数 used:已经使用的内存数 free:空闲内存数 shared:多个进程共享的内存总额 buffers/cache:(已用)的内存数,即used-buffers-cached buffers/cache:(可用)的内存数,即free+buffers+cached Buffer Cache用于针对磁盘块的读写; Page Cache用于针对文件inode的读写,这些Cache能有效地缩短I/O系统调用的时间