运存

操作系统概述(二)

霸气de小男生 提交于 2019-12-29 23:09:44
操作系统内存管理 内存管理包括内存管理和虚拟内存管理。 内存管理包括程序装入等概念、交换技术、连续分配管理方式和非连续分配管理方式(分页、分段、段页式)。 虚拟内存管理包括虚拟内存概念、请求分页管理方式、页面置换算法、页面分配策略、工作集。 我们先来了解一下什么是内存: 内存是计算机系统的一个重要组成部分,只有在内存中的程序才能被CPU所执行,而且CPU运行时所需要的数据和程序运行空间都是从内存中获取,所以内存性能的好坏直接影响我们计算机性能的好坏. 讲到内存我们可以讲一下关于存储器的分类: 存储器按照功能分配可以分为高速缓冲存储器(cache),主存储器(内存),外存储器(外存): 高速缓冲存储器(cache):cache又分为一级cache和二级cache,一级cache是位于CPU内部的存储器,它负责存储并向CPU传递需要的数据和指令,二级cache位于CPU和主存储器(DRAM)之间,二级的作用就是存储那些CPU处理时需要用到、一级缓存又无法存储的数据。CPU读取数据时,先从一级cache中寻找,找不到再从二级cache中寻找,有时还需要从三级cache中寻找.它们的共同点是读取速度都比CPU慢比内存快,内存容量小,价格高. 缓存的出现主要是为了解决CPU运算速度与内存 读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多

linux top命令字段解读

牧云@^-^@ 提交于 2019-12-28 03:56:02
第一行:系统运行时间和平均负载 当前时间、系统已运行时间、当前登录用户的数量、最近5、10、15分钟内的平均负载 第二行:任务 任务的总数、运行中(running)的任务、休眠(sleeping)中的任务、停止(stopped)的任务、僵尸状态(zombie)的任务 第三行 cpu状态 第四行:内存 全部可用内存、已使用内存、空闲内存、缓冲内存 第五行:swap 全部、已使用、空闲和缓冲交换空间 第七行至N行:各进程任务的的状态监控 来源: CSDN 作者: fall_hat 链接: https://blog.csdn.net/fall_hat/article/details/103734734

编程语言的作用及与操作系统和硬件的关系

ぐ巨炮叔叔 提交于 2019-12-26 19:18:13
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一、编程语言的作用及与操作系统和硬件的关系 作用:编程语言是计算机语言,是一种程序员与计算机之间沟通的介质,通过编程语言可以使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。 关系:编程语言会通过编译软件写成程序,程序是不能直接和硬件来进行交互的,而操作系统是用来管理计算机硬件设备的,所以我们可以就可以在操作系统上来运行程序,让操作系统去管理与配置内存、决定系统资源供需的优先次序、控制输入与输出、操作网络与管理文件系统等基本任务。 二、应用程序、操作系统、硬件之间的关系 硬件上运行操作系统,操作系统上运行应用程序,应用程序通过Windows API调用操作系统函数从而和计算机硬件交互。 三、 cpu 、内存、磁盘之间的关系 1.CPU即中央处理器,CPU从内存或缓存中取出指令,放入指令寄存器,并对指令进行解码,然后发出各种控制命令,从而完成一条指令的执行。 2.CPU并不能直接调用存储在硬盘上的系统、程序和数据,必须将硬盘的有关内容通过总线存储在内存中,才能被CPU读取运行。因而,内存可以理解为硬盘和CPU的“中转站”。 3.当运行数据大小超出物理内存的时候,这时系统就会将硬盘上的部分空间模拟成内存——虚拟内存,并将暂时不运行的程序或不使用的数据存放到这部分空间之中,等待需要的时候方便及时调用。 4

CPU 的18条

孤街浪徒 提交于 2019-12-26 05:02:37
1.主频 主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度。CPU的主频=外频×倍频系数。很多人认为主频就决定着CPU的运行速度,这不仅是个片面的,而且对于 服务 器来讲,这个认识也出现了偏差。至今,没有一条确定的公式能够实现主频和实际的运算速度两者之间的数值关系,即使是两大处理器厂家Intel和AMD,在这点上也存在着很大的争议,我们从Intel的产品的发展趋势,可以看出Intel很注重加强自身主频的发展。像其他的处理器厂家,有人曾经拿过一快1G的全美达来做比较,它的运行效率相当于2G的Intel处理器。 所以,CPU的主频与CPU实际的运算能力是没有直接关系的,主频表示在CPU内数字脉冲信号震荡的速度。在Intel的处理器产品中,我们也可以看到这样的例子:1 GHz Itanium芯片能够表现得差不多跟2.66 GHz Xeon/Opteron一样快,或是1.5 GHz Itanium 2大约跟4 GHz Xeon/Opteron一样快。CPU的运算速度还要看CPU的流水线的各方面的性能指标。 当然,主频和实际的运算速度是有关的,只能说主频仅仅是CPU性能表现的一个方面,而不代表CPU的整体性能。 2.外频 外频是CPU的基准频率,单位也是MHz。CPU的外频决定着整块主板的运行速度。说白了,在台式机中,我们所说的超频,都是超CPU的外频(当然一般情况下

突然发现的nodejs运行管理工具PM2

你离开我真会死。 提交于 2019-12-22 01:20:43
公司的程序nodejs查看内存很奇怪内存不被释放 感觉是哪里写了闭包,但是找起来很麻烦,因为内存上涨的很慢,感觉运行一个月以内应该ok pm2可以在程序挂掉的时候自动重启,那么程序用pm2管理让他自动重启呗 https://www.jianshu.com/p/994936baa38d 链接,安装方法和使用指南 来源: CSDN 作者: SpecYue 链接: https://blog.csdn.net/qq_34788903/article/details/103643127

计算机基础系列一:计算机硬件

 ̄綄美尐妖づ 提交于 2019-12-21 04:41:30
一 为何要学习计算机基础 python是编程语言,即python是语言 语言有英语、法语、葡萄牙语等,但凡是语言,都是用来沟通的介质。 程序员编程的本质就是让计算机去工作,而编程语言就是程序员与计算机沟通的介质 程序员要想让计算机工作,必须知道计算机能干什么,怎么干的,这也就是我们必须学习计算机基础的原因 然而光有编程语言和硬件也并不能满足大家的编程需求,为什么这么说呢? 程序用编程语言写程序,最终开发出的结果就是一个软件,既然是软件,那就与腾讯qq、暴风影音、快播等软件没有区别了。这些软件必须运行在操作系统之上,你肯定会问:为何要有操作系统呢?没错,远古时代的程序员确实是在没有操作系统的环境下,用编程语言之间操作硬件来编程的,你可能觉得这没有问题,但其实问题是相当严重的,因为此时你必须掌握如何操作硬件的所有具体细节,比如如何具体操作硬盘(现在你得把硬盘拆开,然后你能看见的所有的东西,你都得研究明白,因为你编程时要用到它),这就严重影响了开发的效率,操作系统的出现就是运行于硬件之上,来控制硬件的,我们开发时,只需要调用操作系统为我们提供的简单而优雅的接口就可以了 所以一套完整的计算机系统分为:计算机硬件,操作系统,应用软件,如下图。因而我们的python编程之路分为计算机硬件基础,操作系统基础,和python编程三部分,就让我们先从计算机硬件学起吧 二 本节目标

计算机基础

早过忘川 提交于 2019-12-20 20:08:20
计算机系统分为:计算机硬件,操作系统,软件 一 编程语言的作用及与操作系统和硬件的关系: 1.编程语言的作用:用来定义计算机程序的形式语言,用来向计算机发出指令。 2.关系:硬件是基础,操作系统是用来管理硬件资源的。 二 应用程序&操作系统&硬件 1.硬件系统 :运算器+控制器+存储器+输入设备+输出设备 运算器:是负责算数运算与逻辑运算。 控制器:是负责发送和接收指令。与控制器共同组成了中央处理器(CPU)。 存储器:是用来存储正在进行程序,将要进行程序的数据及刚处理完的数据。 输入设备:是用来进行输入的设备。如键盘,扫描仪等。 输出设备:是用来进行输出的设备。如显示器,音箱等。 主板:安装了组成计算机的主要电路系统,一般有BIOS芯片,I/O控制芯片,键和面板开关接口,指示灯插接件,扩充插槽,主板及插卡的直流电源供电接插件等元件。 总线:以上所有的设备都通过总线连接,总线相当于人的神经。 2.操作系统:操作系统是控制和管理计算机软硬件资源、合理组织计算机工作流程,以及方便用户操作的程序集合。它的职责常包括对硬件的直接监管、对各种计算资源(如内存、处理器时间等)的管理、以及提供诸如作业管理之类的面向应用程序的服务等等。简单的说;操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。 3.应用程序:指为完成某项或多项特定工作的计算机程序,它运行在用户模式

ANDROID内存优化(大汇总——上)

跟風遠走 提交于 2019-12-19 18:49:26
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 内存简介: RAM(random access memory)随机存取存储器。说白了就是内存。 一般Java在内存分配时会涉及到以下区域: 寄存器(Registers): 速度最快的存储场所,因为寄存器位于处理器内部 , 我们在程序中无法控制 栈(Stack): 存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中 堆(Heap): 堆内存用来存放由new创建的对象和数组。在堆中分配的内存,由Java虚拟机的自动垃圾回收器(GC)来管理。 静态域(static field): 静态存储区域就是指在固定的位置存放应用程序运行时一直存在的数据,Java在内存中专门划分了一个静态存储区域来管理一些特殊的数据变量如静态的数据变量 常量池(constant pool): 虚拟机必须为每个被装载的类型维护一个常量池。常量池就是该类型所用到常量的一个有序集和,包括直接常量(string,integer和floating point常量)和对其他类型,字段和方法的符号引用。 非RAM存储: 硬盘等永久存储空间 堆栈特点对比: 由于篇幅原因,下面只简单的介绍一下堆栈的一些特性。 栈 :当定义一个变量时,Java就在栈中为这个变量分配内存空间,当该变量退出该作用域后,Java会自动释放掉为该变量所分配的内存空间

java虚拟机运行时数据区

China☆狼群 提交于 2019-12-19 04:28:26
1.程序计数器:当前县城之心工单而字节码的行号指示器;字节码解释器工作依赖于他; 线程私有;java方法记录的是正在执行的虚拟机字节码指令的地址;native计数器的值为空; 2.java虚拟机栈:线程私有,生命周期与线程相同;是java方法(字节码)执行的内存模型;每个方法执行对应创建一个栈帧,存储(程序员通常所说的栈),操作栈,动态链接,方法出口等; 局部变量表:内存大小在编译期间分配完成;运行期间不会变化; 局部变量空间slot:long,double占两个,其余占一个; 线程请求的栈深度大于虚拟机允许的抛出栈异常,栈扩展申请不到足够的内存会抛memory异常; 3.本地方法栈: 为虚拟机执行native方法服务;也会抛异常;对本地方法栈中的方法使用的语言,方式,数据结构没有强制规定; 4.java堆(GC) 所有线程共享;存放对象实例,以及数组;虚拟机启动时创建; 相关技术:JIT编译器发展,逃逸分析技术,栈上分配,标量替换优化技术; 是垃圾收集器主要管理区域,通过-xmx -xms进行扩展;物理上不一定连续但逻辑上连续的; 注释:由于现在收集器基本都是采用的分代收集算法,所以Java堆中还可以细分为:新生代和老年代;再细致一点的有Eden空间、From Survivor空间、To Survivor空间等。如果从内存分配的角度看

详解服务器性能测试的全生命周期?——从测试、结果分析到优化策略(转载)

喜夏-厌秋 提交于 2019-12-16 10:02:51
服务器性能测试是一项非常重要而且必要的工作,本文是作者Micheal在对服务器进行性能测试的过程中不断摸索出来的一些实用策略,通过定位问题,分析原因以及解决问题,实现对服务器进行更有针对性的优化,提升服务器的性能。 1. 服务器性能测试小结 讲到服务器性能大部分人会想到这个服务器的架构是什么样子的,用的什么epoll,select,spring,tornado之类的。其实从本质上来看的话目前大部分的服务器主要包括逻辑层以及DB层,我们采用的各种框架组件处于逻辑服务器中,如下图所示。 服务器性能测试是一项比较繁琐的事情,作为没有做过性能测试的同学可能需要理清楚以下几个事情。 1.1. 协议分析 首先是协议分析,性能测试本质上是我们用代码来模拟真实的用户请求,所以我们必须要知道发送出去的请求内容才能模拟。在典型的CS服务器中很多使用了protobuf,thrift,tdr(腾讯自研)来序列化以及反序列号请求内容。 序列化之后一方面可以对数据进行压缩处理,另一方面也避免请求内容明文传输造成被抓包·泄漏数据的危险。之前有过服务器传输数据的时候使用的是明文直接发送,而且这个数据是一些敏感的sql语句,这样首先暴露了数据库的表结构,同时不法分子可以通过模拟发包造成“脱裤”甚至是数据被清空。 1.1.1. Protobuf 谷歌出品,必属精品。Protobuf使用起来很方便,学习成本非常低