cpu参数

JVM—GC垃圾回收器总结

本小妞迷上赌 提交于 2020-03-08 23:11:12
收集算法(标记-清理、复制、标记-整理、分代收集)是内存回收的方法论,垃圾收集器就是内存回收的具体实现。 主要有7个gc器,如下图。 1 Serial收集器 1.1 介绍 Serial收集器是单线程的收集器。 单线程 :1.不仅仅说明它只会使用一个CPU或一条收集线程去完成垃圾收集工作,2.且在垃圾收集时,必须暂停其他所有的工作线程,直到它收集结束。 Stop the world :是VM在后台自动发起和自动完成的,在用户不可见情况下把用户正常工作的线程全部停掉。 1.2 缺点: 由于Stop The World,给用户带来不良体验,比如,计算机每运行一段时间就会暂停响应几分钟来处理垃圾收集。 1.3 优点 1)简单而高效(与其他收集器的单线程比); 2)对于限定单个CPU的环境来说,Serial收集器由于没有线程交互的开销,专心做垃圾收集自然可以获得最高的单线程收集效率。 1.4 应用场景 1)VM运行在 Client 模式下的默认新生代收集器; 2)在用户的桌面应用场景中,停顿时间完全可以控制在几十毫秒最多一百多毫秒以内,不频繁发生,是可接受的 1.5 Serial/Serial Old收集器运行示意图 2 ParNew收集器 2.1 介绍 ParNew收集器是Serial收集器多线程版本(是GC线程的多线程,并行)。 • 并行 :Parallel指多条垃圾收集线程并行工作

KVM之CPU虚拟化

做~自己de王妃 提交于 2020-03-08 22:21:27
1.1 为什么要虚拟化CPU 虚拟化技术是指在x86的系统中,一个或以上的客操作系统(Guest Operating System,简称:Guest OS)在一个主操作系统(Host Operating System,简称:Host OS)下运行的一种技术。这种技术只要求对客操作系统有很少的修改或甚至根本没有修改。x86处理器架构起先并不满足波佩克与戈德堡虚拟化需求(Popek and Goldberg virtualization requirements),这使得在x86处理器下对普通虚拟机的操作变得十分复杂。在2005年与2006年,英特尔与AMD分别在它们的x86架构上解决了这个问题以及其他的虚拟化困难。 1.2 关于CPU的Ring0、Ring1··· ring0是指CPU的运行级别,ring0是最高级别,ring1次之,ring2更次之…… 拿Linux+x86来说, 操作系统(内核)的代码运行在最高运行级别ring0上,可以使用特权指令,控制中断、修改页表、访问设备等等。 应用程序的代码运行在最低运行级别上ring3上,不能做受控操作。如果要做,比如要访问磁盘,写文件,那就要通过执行系统调用(函数),执行系统调用的时候,CPU的运行级别会发生从ring3到ring0的切换,并跳转到系统调用对应的内核代码位置执行,这样内核就为你完成了设备访问

计算机基础二

和自甴很熟 提交于 2020-03-08 20:22:32
一、cpu 详解 CPU 按照指令集可以分为精简指令集 CPU 和复杂指令集 CPU 两种,区别在于前者的指令集精简,每个指令的运行时间都很短,完成的动作也很单纯,指令的执行效能较佳;但是若要做复杂的事情,就要由多个指令来完成。后者的指令集每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂,每条指令的长度并不相同。因为指令执行较为复杂所以每条指令花费的时间较长,但每条个别指令可以处理的工作较为丰富。 1、x86-64的含义 x86: 是针对 CPU 的型号或者说架构的一种统称 。 64 位: CPU 的位数指的是 CPU 一次性能从内存中取出多少位二进制指令 ,64bit 指的是一次性能从内存中取出 64 位二进制指令 。 CPU具有向下兼容性:64位的CPU 既能运行 32 位的程序也能运行 64 位的程序 2 、 内核态与用户态( 代表 cpu 的两种工作状态 ) (1)内核态:运行的程序是操作系统,可以操作计算机硬件 (2)用户态:运行的程序是应用程序,不能操作计算机硬件 内核态与用户态的转换: 应用程序的运行必然涉及到计算机硬件的操作,那就必须有用户态切换到内核态下才能实现,所以计算机工作时在频繁发生内核态与用户态的转换。 3 、多线程与多核芯片 (1)2 核 4 线程 ( 假 4 核 ) : 2 核代表有两个 cpu , 4 线程指的是每个 cpu 都有两个线程

S7-1200PLC 两台CPU之间Modbus RTU通信

北战南征 提交于 2020-03-08 16:47:02
硬件:cpu 1214C 目的:建立两台cpu之间的Modbus RTU通信 软件:Portal V14SP1 Modbus RTU是一种单主站的主从通信模式,Modbus网络上只能有一个主站存在,主站在Modbus网络上没有地址,每个从站必须有唯一的地址,从站的地址范围为0 - 247,其中0为广播地址,从站的实际地址范围为1 - 247。 本例中使用的为CM1241 RS422/485模块,将其组态为Mdbus RTU主站时,支持最多与32个Modbus RTU从站建立通信。 RS485接口的接线 西门子Modbus通信使用的是DB9针RS485串行接口 *RS422和RS485其实并没有定义接口标准,具体采用什么接口,接口中使用哪些引脚,完全取决于设备设计生产商自己的定义 CM1241 RS422/RS485模块针脚的定义如下,RS485通信模式下,我们需要用到的针脚为3号和8号针脚 设备RS485接口之间的接线可以参考下图,本例中T/R+和485+对应的就是DB9针3号引脚,T/R-和485-对应的是DB9针8号引脚 硬件组态 1.插入两台cpu 1214C,为两台PLC分别添加CM1241 RS422/RS485模块 2.分别对PLC_1和PLC_2的RS485模块进行组态配置 3.记录下硬件标识符 软件编程 Modbus RTU主站编程 1.我们将PLC

linux系统相关查询

穿精又带淫゛_ 提交于 2020-03-06 18:29:00
文章目录 一、查看Linux内核版本命令 1.cat /proc/version 2.uname -a 二、查看Linux系统版本命令 1.lsb_release -a 2.cat /etc/release 三、查看Linux系统CPU 1.查看物理CPU个数 2.查看每个物理CPU中core的个数(即核数) 3.查看逻辑CPU的个数 4.lscpu 四、查看Linux系统内存 1.查看内存总量 2.查看内存空闲总量 3.free 4.lsblk 5.fdisk -l 6.df -h 五、查看Linux系统网卡 1.lspci 2.ifconfig -a 3.ethtool ens33 六、查看Linux系统当前主机名 1.hostname 2.uname -n 七、查看Linux系统当前用户名 1.w 2.who 3.users 4.id 5.last 一、查看Linux内核版本命令 1.cat /proc/version [root@localhost ~]#cat /proc/version 2.uname -a [root@localhost ~]#uname -a 二、查看Linux系统版本命令 1.lsb_release -a [root@localhost ~]#lsb_release -a 2.cat /etc/release [root@localhost ~]

Linux 的性能调优的思路

删除回忆录丶 提交于 2020-03-06 17:39:59
原文: https://mp.weixin.qq.com/s/wjQhl5y1bmPGsOKY4CHuEw Linux操作系统是一个开源平台,在这个平台下有无数的开源软件支撑,我们常见的apache、tomcat、mysql等。最终要实现的是通过这些开源软件的支持,以最低廉的成本,达到应用最优的性能。 因此,谈到性能问题,主要实现的是Linux操作系统和应用程序的最佳结合。 01性能问题综述 系统的性能是指操作系统完成任务的有效性、稳定性和响应速度。 Linux系统管理员可能经常会遇到系统不稳定、响应速度慢等问题,例如在Linux上搭建了一个web服务,经常出现网页无法打开、打开速度慢等现象,而遇到这些问题,就有人会抱怨Linux系统不好,其实这些都是表面现象。 操作系统完成一个任务时,与系统自身设置、网络拓朴结构、路由设备、路由策略、接入设备、物理线路等多个方面都密切相关,任何一个环节出现问题,都会影响整个系统的性能。 因此当Linux应用出现问题时,应当从应用程序、操作系统、服务器硬件、网络环境等方面综合排查,定位问题出现在哪个部分,然后集中解决。 在应用程序、操作系统、服务器硬件、网络环境等方面,影响性能最大的是应用程序和操作系统两个方面,因为这两个方面出现的问题不易察觉,隐蔽性很强。而硬件、网络方面只要出现问题,一般都能马上定位。 下面主要讲解操作系统方面的性能调优思路

最简单的方法是使用标准的 Linux GUI 程序之一: i-nex 收集硬件信息,并且类似于 Windows 下流行的 CPU-Z 的显示。 HardInfo 显示硬件具体信息,甚至包括一组八个的流行的性能基准程序,你可以用它们评估你的系统性能。 KInfoCenter 和 Lshw 也能够显示硬件的详细信息,并且可以从许多软件仓库中获取。

南楼画角 提交于 2020-03-06 12:48:22
最简单的方法是使用标准的 Linux GUI 程序之一: i-nex 收集硬件信息,并且类似于 Windows 下流行的 CPU-Z 的显示。 HardInfo 显示硬件具体信息,甚至包括一组八个的流行的性能基准程序,你可以用它们评估你的系统性能。 KInfoCenter 和 Lshw 也能够显示硬件的详细信息,并且可以从许多软件仓库中获取。 或者,你也可以拆开计算机机箱去查看硬盘、内存和其他设备上的标签信息。或者你可以在系统启动时,按下 相应的按键 进入 UEFI 和 BIOS 界面获得信息。这两种方式都会向你显示硬件信息但省略软件信息。 你也可以使用命令行获取硬件信息。等一下… 这听起来有些困难。为什么你会要这样做? 有时候通过使用一条针对性强的命令可以很轻松的找到特定信息。也可能你没有可用的 GUI 程序或者只是不想安装这样的程序。 使用命令行的主要原因可能是编写脚本。无论你是使用 Linux shell 还是其他编程语言来编写脚本通常都需要使用命令行。 很多检测硬件信息的命令行都需要使用 root 权限。所以要么切换到 root 用户,要么使用 sudo 在普通用户状态下发出命令: sudo < the_line_command > 并按提示输入你的密码。 这篇文章介绍了很多用于发现系统信息的有用命令。文章最后的快速查询表对它们作出了总结。 硬件概述

【连载】【FPGA黑金开发板】NIOS II那些事儿--NIOS II 常见问题(FAQ)

。_饼干妹妹 提交于 2020-03-06 09:55:20
为了帮助初学者快速入门NIOS II,在此建立NIOS II FAQ,希望大家把自己遇到的问题提出来,然后在这里总结起来,以帮助以后遇到同样问题的人。 首先需要声明一点,下面部分问题来自网络,如果版权问题,请及时通知,我将会将其删除 在此提几点要求和规定: 1.此贴是NIOS II FAQ,所以不收录其他相关内容; 2.大家通过回帖方式进行提问,如果有其他人可以解决,也是通过回帖方式进行解决; 3.问题解决以后,我会将其编入这个贴内,然后将问题跟帖删除,避免跟帖过多的影响。 4.禁止在回帖中涉及与NIOS II无关内容,一经发现立即删除。 -------------------------------------------华丽的分割线---------------------------------------------------------------------- 1.NIOS能做浮点运算么? 答:NIOS可以进行浮点运算,完全可以替代MCU,时钟可以跑到100Mhz,比ARM7还要快,ARM7时钟一般为72Mhz左右。 2.NIOS是否可以不使用SDRAM和并行FLASH? 答:首先说明一下,SDRAM是用来运行程序的,FLASH是用来存储程序代码的(SDRAM掉电丢失,FLASH则不会),每次上电的时候,都需要将FLASH中的程序代码放到SDRAM中,然后再运行。

Linux设备驱动程序学习(10) -时间、延迟及延缓操作

僤鯓⒐⒋嵵緔 提交于 2020-03-06 08:46:15
度量时间差 时钟中断由系统定时硬件以周期性的间隔产生,这个间隔由内核根据 HZ 值来设定,HZ 是一个体系依赖的值,在 <linux/param.h>中定义或该文件包含的某个子平台相关文件中。作为通用的规则,即便如果知道 HZ 的值,在编程时应当不依赖这个特定值,而始终使用HZ。对于当前版本,我们应完全信任内核开发者,他们已经选择了最适合的HZ值,最好保持 HZ 的默认值。 对用户空间,内核HZ几乎完全隐藏,用户 HZ 始终扩展为 100。当用户空间程序包含 param.h,且每个报告给用户空间的计数器都做了相应转换。对用户来说确切的 HZ 值只能通过 /proc/interrupts 获得:/proc/interrupts 的计数值除以 /proc/uptime 中报告的系统运行时间。 对于ARM体系结构:在<linux/param.h>文件中的定义如下: #ifdef __KERNEL__ # define HZ CONFIG_HZ /* Internal kernel timer frequency */ # define USER_HZ 100 /* 用户空间使用的HZ,User interfaces are in "ticks" */ # define CLOCKS_PER_SEC (USER_HZ) /* like times() */ #else # define

Operating Systems: Three Easy Pieces: CPU虚拟化作业

≡放荡痞女 提交于 2020-03-06 01:25:40
模拟进程状态转换 1.作业包: process-run.py 2.作业说明: 3.作业要求: (1)Run process-run.py with the following flags:-l5:100,5:100. 参数 -l PROCESS_LIST :逗号分隔的进程列表,形式是 X1:Y1,X2:Y2,... ,其中X代表进程指令数,Y(0~100)代表运行指令还是声明I/O请求 该命令运行进程0,运行5条指令,且每条指令的CPU占用率为100%,此时进程1处于就绪状态,进程0运行完毕,CPU运行进程1,执行同样操作,总用时10单位时间。 (2) Now run with these flags: ./process-run.py -l 4:100,1:0. 该命令运行进程0,运行4条指令,且每条指令的CPU占用率为100%,之后进程1发出I/O请求,CPU阻塞该进程,I/O执行3单位时间,CPU解除进程1的阻塞状态,进程1执行完成操作,总用时10单位时间。 (3) Switch the order of the processes: -l 1:0,4:100. 该命令运行进程0发出I/O请求,CPU阻塞该进程,并执行I/O操作,同时CPU运行进程1,运行4条指令,且每条指令的CPU占用率为100%,4个单位时间后I/O操作和进程1均运行完成,进程0执行完成操作