cpu参数

2019年9月25日星期三(STM32 ucos3)

五迷三道 提交于 2019-11-30 13:30:16
一.UCOS 1.概念 uc/OS-III(Micro C OS Thee),微型C语言编写的操作系统第三版。是一个可升级,可固化,多任务基于优先级的可抢占式实时内核。 ucos的任务个数不限制,实现了操作系统所需求的大部分功能,资源管理,同步,任务之间的通信。除了这些基本的功能以外,还提供一些其他的实时性内核找不到的特色功能,比如完备的运行时间测量,也可以直接发送信号/消息到某个任务,任务也可以同时等待多个内核对象 由于ucos体积微小,功能强悍,可移植性强,在微控制器领域应用广泛 ucos要收费,有时候我们会选择免费的系统,比如freeRTOS....,以及一些其他和物联网结合操作系统(华为liteOS 阿里巴巴.. 腾讯..) 2.ucos移植 (1)源代码结构 EvalBoards ------------ 工程文件 uc-CPU -------------- CPU相关代码 uc-LIB -------------- 和硬件/编译器 无关的库函数(字符串 数学 内存) uCOS-III ----------- ucos操作系统相关代码 (2)将源码拷贝到工程,修改源码(详情见手册) (3)特性 3.ucos的任务调度和任务 合作式调度 -------- 多个任务按照指定时间和顺序依次运行,下一个任务等待上一个任务时间用完再开始运行 抢占式调度 --------

理解 IO_WAIT 并且了解利用包括 top htop iotop iostat 工具来查看 IO 性能

我们两清 提交于 2019-11-30 13:17:51
今天继续拜读「深入浅出计算机组成原理」专栏,觉得讲 IO_WAIT 这篇很有意思,正好可以结合前面的一篇讲物理硬件存速度的一块儿看。 现在我们看硬盘厂商出品的性能报告,通常会看到两个指标,一个是响应时间(Response Time) 另外一个是 数据传输速率 (Data Transfer Rate) 。 目前硬盘分两种,一种是 HDD 硬盘,也就是传统的机械硬盘.使用的是传统的 SATA3.0 的接口,而另外一种是 SSD 盘,也就是现在被我们成为固态硬盘的东西。它既可以使用 SATA3.0 接口,还可以使用另外一种叫做 PCI EXPRESS 的接口(以下称为 PCI 接口)。这里要补充一下 PCI 接口的吞吐率大幅高于 SATA3.0 的接口。 使用 SATA3.0 口的固态硬盘可能面临 接口的传输速率极限而限制了硬盘本身读写速度的发挥。 现在我们 SATA3.0 的贷款大致是 6Gbit/s 也就是 6 * 1024 / 8 约768 MB/s 的速度。这是一个很高的理论带宽值,根据专栏提供的数据,我们平时使用传输速率差不多只有 200MB/s 这里我插入一个 访问延时的比较图 这是我们平时经常接触的存储器的访问延时情况,可以看到 上面提到的 HDD 和 SSD 盘是最便宜的两种,随机访问延时 SSD 差不多是 150 微秒, HDD 则已经到毫秒级别。速度越快的存储

常用的Linux命令

让人想犯罪 __ 提交于 2019-11-30 12:43:50
学习链接: linux命令学习1 linux命令学习2 常用命令: history history命令就是历史记录. 它显示了在终端中所执行过的所有命令的历史. 参考链接: 1. 对Linux新手非常有用的 20个命令 grep 管道, 过滤, 作为linux中最为常用的三大文本(awk, sed, grep)处理工具之一, grep命令的常用格式为: grep [选项] "模式" [文件] , grep家族总共有三个: grep , egrep , fgrep , 一般常用grep. 扩展选项如下:  -E : 开启扩展Extend的正则表达式. -i : 忽略大小写ignore case. -n : 显示行号 -w : 被匹配的文本只能是单词, 而不能是单词中的某一部分, 如文本中有liker, 而我搜寻的只是like, 就可以使用-w选项来避免匹配liker --color :将匹配到的内容以颜色高亮显示. 参考链接: 1. linux中grep命令的用法 awk 1. awk学习 sed 1. sed学习 xxx --help(man xxx) xxx --help, 是对xxx命令的常用选项和用法格式的一个介绍, man xxx也是介绍, man的内容比较复杂是详细介绍, xxx --help比较简洁, 简单介绍 pwd 当前路径(dirs) l(ls)

监控命令之tsar

前提是你 提交于 2019-11-30 12:15:05
1.1 tsar是什么?   tsar是淘宝自己开发的一个采集工具(类似于sar工具),主要用来收集服务器的系统信息(如cpu,io,mem,tcp等),以及应用数据(如squid haproxy nginx等)。   收集到的数据存储在磁盘上,可以随时查询历史信息,输出方式灵活多样,另外支持将数据存储到mysql中,也可以将数据发送到nagios报警服务器。   tsar在展示数据时,可以指定模块,并且可以对多条信息的数据进行 merge 输出,带 --live 参数可以输出秒级的实时信息。   tsar可以通过编写模块轻松扩展,这使得它成为一个功能强大且多功能的报告工具。 官方网址: http://tsar.taobao.org github地址: https://github.com/alibaba/tsar 1.1.1 总体架构 tsar是基于模块化设计的程序,程序有两部分组成:框架和模块。 框架程序源代码主要在src目录,而模块源代码主要在modules目录中。 框架提供对配置文件的解析,模块的加载,命令行参数的解析,应用模块的接口对模块原始数据的解析与输出。 模块提供接口给框架调用。 tsar依赖与cron每分钟执行采集数据,因此它需要系统安装并启用crond,安装后,tsar每分钟会执行tsar --cron来定时采集信息,并且记录到原始日志文件。 1.1.2

内核态和用户态

北城以北 提交于 2019-11-30 07:01:41
内核态:cpu可以访问内存的所有数据,包括外围设备,例如硬盘,网卡,cpu也可以将自己从一个程序切换到另一个程序。 用户态:只能受限的访问内存,且不允许访问外围设备,占用cpu的能力被剥夺,cpu资源可以被其他程序获取。 为什么要有用户态和内核态? 由于需要限制不同的程序之间的访问能力, 防止他们获取别的程序的内存数据, 或者获取外围设备的数据, 并发送到网络, CPU划分出两个权限等级 -- 用户态和内核态。 用户态与内核态的切换 所有用户程序都是运行在用户态的, 但是有时候程序确实需要做一些内核态的事情, 例如从硬盘读取数据, 或者从键盘获取输入等. 而唯一可以做这些事情的就是操作系统, 所以此时程序就需要先操作系统请求以程序的名义来执行这些操作. 这时需要一个这样的机制: 用户态程序切换到内核态, 但是不能控制在内核态中执行的指令 这种机制叫系统调用, 在CPU中的实现称之为陷阱指令(Trap Instruction) 他们的工作流程如下: 用户态程序将一些数据值放在寄存器中, 或者使用参数创建一个堆栈(stack frame), 以此表明需要操作系统提供的服务. 用户态程序执行陷阱指令 CPU切换到内核态, 并跳到位于内存指定位置的指令, 这些指令是操作系统的一部分, 他们具有内存保护, 不可被用户态程序访问 这些指令称之为陷阱(trap)或者系统调用处理器(system

计算机组成原理

∥☆過路亽.° 提交于 2019-11-30 06:26:14
计算机组成原理 计算机分为五大组成部分,分别为:控制器、运算器、存储器、输入设备和输出设备。其中控制器+运算器是计算机的中央处理器(CPU),相当于人类的大脑。 一、控制器 计算机的指挥系统。大脑指挥全身的器官运作,但是大脑不会随意的指挥身体行动,大脑只有在接受指令后才会控制身体行动(如果你患有急性注意缺陷多动障碍(多动症),你可以找Doctor Nick)。 二、运算器 运算器是计算机的运算系统。大脑除了指挥,无时无刻还在运算。即实现算术运算和逻辑运算。 三、控制器+运算器(计算机的中央处理器CPU) 吃饭流程示例。 当你吃饭的时候,大脑会接受吃饭的指令,之后把指令翻译成你身体需要进行的动作(控制器) 如果吃的是西餐,则使用勺子;如果吃的是中餐,则使用筷子(运算器)。 四、存储器 计算机的存储系统。需要注意的是:无论是内存还是外存,计算机存储的数据格式都是01,01的形式,0和1由电压的电频控制(了解知识点)。计算机的存储的一个二进制单位称为1bit,8bit=1Bytes称为一个字节,1024Bytes=1KB,1024KB=1MB,1024MB=1GB,1024GB=1TB,1024TB=1PB。 下图展示了目前市面上常用的存储器,从图中可以看出存储器的速度、容量和价格是相互矛盾的。 4.1内存 内存是计算机内临时存储数据的硬件设备。由于内存读取数据速度较快内存

线程数究竟设多少合理

半城伤御伤魂 提交于 2019-11-30 06:10:41
转载: 2016-03-29 58沈剑 架构师之路 一、需求缘起 Web-Server通常有个配置, 最大工作线程数 ,后端服务一般也有个配置,工作线程池的 线程数量 ,这个线程数的配置不同的业务架构师有不同的经验值,有些业务设置为CPU核数的2倍,有些业务设置为CPU核数的8倍,有些业务设置为CPU核数的32倍。 “工作线程数”的设置依据是什么,到底设置为多少能够最大化CPU性能,是本文要讨论的问题。 二、一些共性认知 在进行进一步深入讨论之前,先以提问的方式就一些共性认知达成一致。 提问:工作线程数是不是设置的越大越好? 回答:肯定不是的 1)一来服务器CPU核数有限,同时并发的线程数是有限的,1核CPU设置10000个工作线程没有意义 2)线程切换是有开销的,如果线程切换过于频繁,反而会使性能降低 提问:调用sleep() 函数的时候,线程是否一直占用CPU ? 回答:不占用,等待时会把CPU让出来,给其他需要CPU资源的线程使用 不止调用sleep()函数,在进行一些阻塞调用,例如网络编程中的 阻塞 accept()【等待客户端连接】和 阻塞 recv()【等待下游回包】也不占用CPU资源 提问:如果CPU****是单核,设置多线程有意义么,能提高并发性能么? 回答:即使是单核,使用多线程也是有意义的 1)多线程编码可以让我们的服务/代码更加清晰,有些IO线程收发包

Linux内存描述之内存节点node–Linux内存管理(二)

回眸只為那壹抹淺笑 提交于 2019-11-30 05:51:50
日期 内核版本 架构 作者 GitHub CSDN 2016-06-14 Linux-4.7 X86 & arm gatieme LinuxDeviceDrivers Linux内存管理 #1 前景回顾 前面我们讲到 服务器体系(SMP, NUMA, MPP)与共享存储器架构(UMA和NUMA) #1.1 UMA和NUMA两种模型 共享存储型多处理机有两种模型 均匀存储器存取(Uniform-Memory-Access,简称UMA)模型 非均匀存储器存取(Nonuniform-Memory-Access,简称NUMA)模型 UMA模型 物理存储器被所有处理机均匀共享。所有处理机对所有存储字具有相同的存取时间,这就是为什么称它为均匀存储器存取的原因。每台处理机可以有私用高速缓存,外围设备也以一定形式共享。 NUMA模型 NUMA模式下,处理器被划分成多个"节点"(node), 每个节点被分配有的本地存储器空间。 所有节点中的处理器都可以访问全部的系统物理存储器,但是访问本节点内的存储器所需要的时间,比访问某些远程节点内的存储器所花的时间要少得多。 #1.2 (N)UMA模型中linux内存的机构 非一致存储器访问(NUMA)模式下 处理器被划分成多个"节点"(node), 每个节点被分配有的本地存储器空间. 所有节点中的处理器都可以访问全部的系统物理存储器

Tomcat 的连接数与线程池

∥☆過路亽.° 提交于 2019-11-30 05:43:52
前言 在使用tomcat时,经常会遇到连接数、线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector)。 在前面的文章 详解Tomcat配置文件server.xml 中写到过:Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine(也就是Servlet容器)来处理这个请求,并把产生的Request和Response对象传给Engine。当Engine处理完请求后,也会通过Connector将响应返回给客户端。 可以说,Servlet容器处理请求,是需要Connector进行调度和控制的,Connector是Tomcat处理请求的主干,因此Connector的配置和使用对Tomcat的性能有着重要的影响。这篇文章将从Connector入手,讨论一些与Connector有关的重要问题,包括NIO/BIO模式、线程池、连接数等。 根据协议的不同,Connector可以分为HTTP Connector、AJP Connector等,本文只讨论HTTP Connector。 一、Nio、Bio、APR 1、Connector的protocol Connector在处理HTTP请求时,会使用不同的protocol。不同的Tomcat版本支持的protocol不同

srs 使用 ffmpeg 转码

寵の児 提交于 2019-11-30 05:36:54
前面搭建完毕后,在进行转码(清晰度转换)的时候发现 ffmpeg 非常占cpu,服务器一直处于高负载状态。 centos7 top查看进程状态 如图所示采取软解码cpu要求太高,所以我们考虑将转码任务分担到 gpu 硬件解码(效率提高的同时解少cpu负载) 原文地址: https://www.jianshu.com/p/59da3d350488 由于我的服务器没有显卡没有进行测试 本文内容包括: 在Linux环境下安装FFmpeg 通过命令行实现视频格式识别和转码 有Nvidia显卡的情况下,在Linux下使用GPU进行视频转码加速的方法 FFmpeg编译安装 在FFmpeg官网 https://ffmpeg.org/download.html 可以下载到ubunto/debian的发行包,其他Linux发行版需自行编译。同时,如果要使用GPU进行硬件加速的话,也是必须自己编译FFmpeg的,所以本节将介绍从源码编译安装FFmpeg的方法(基于RHEL/Centos) 安装依赖工具 yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ git libtool make mercurial pkgconfig zlib-devel 准备工作 在$HOME下创建ffmpeg_sources目录