计算机指令

linux 进阶命令笔记(12月26日)

时光怂恿深爱的人放手 提交于 2019-12-21 00:06:06
1、 df 指令 作用:查看磁盘空间 用法: #df -h -h 表示以可读性较高的形式展示大小 2、free 指令 作用:查看内存使用情况 语法:#free -m -m表示 mb 为单位查看 Total 总大小 used使用过的大小 Free 空闲的空间 Shared 共享内存 Buffers 输出缓冲区 Cached 缓存内存 3、head 指令 作用:查看一个文件的前n行,如果不指定n,则默认显示前10行 语法:#head -n 文件路径 {n表示数字} 如不加n 默认前10行 4、tail 指令 作用:查看一个文件的末n 行,如果n不指定默认显示后10行 语法:# tail -n 文件的路径 n同样表示数字 4.1 可以通过tail 指令查看一个文件的动态变化内容《变化的内容不能是用户手动增加的》 语法: #tail -f 文件路径 该命令一般用于查看系统的日志比较多 退出tail -f 卡屏状态可以按下ctrl+c键,在命令行中c表示cancel(终止) 5、less 作用:查看文件以较少的内容进行输出,按下辅助功能键(数字+回车、 空格+上下键)查看更多 空格是一页一页翻页 上下键是一行一行翻页 1是往下1行,10是往下10行 语法:#less 空+需要查看的文件路径 在退出的只需按下q键(quit)即可 6、wc 作用:统计文件内容信息 wc===word count

计算机基础

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

JAVA CAS原理深度分析

点点圈 提交于 2019-12-20 02:59:47
CAS CAS:Compare and Swap, 翻译成比较并交换。 java.util.concurrent包中借助CAS实现了区别于synchronouse同步锁的一种乐观锁。 本文先从CAS的应用说起,再深入原理解析。 CAS应用 CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。 非阻塞算法 (nonblocking algorithms) 一个线程的失败或者挂起不应该影响其他线程的失败或挂起的算法。 现代的CPU提供了特殊的指令,可以自动更新共享数据,而且能够检测到其他线程的干扰,而 compareAndSet() 就用这些代替了锁定。 拿出AtomicInteger来研究在没有锁的情况下是如何做到数据正确性的。 private volatile int value; 首先毫无以为,在没有锁的机制下可能需要借助volatile原语,保证线程间的数据是可见的(共享的)。 这样才获取变量的值的时候才能直接读取。 public final int get() { return value; } 然后来看看++i是怎么做到的。 public final int incrementAndGet() { for (;;) { int current = get(); int next = current

JAVA CAS原理深度分析

泪湿孤枕 提交于 2019-12-20 02:59:07
参考文档: http://www.blogjava.net/xylz/archive/2010/07/04/325206.html http://blog.hesey.net/2011/09/resolve-aba-by-atomicstampedreference.html http://www.searchsoa.com.cn/showcontent_69238.htm http://ifeve.com/atomic-operation/ http://www.infoq.com/cn/articles/java-memory-model-5 java.util.concurrent包完全建立在CAS之上的,没有CAS就不会有此包。可见CAS的重要性。 CAS CAS:Compare and Swap, 翻译成比较并交换。 java.util.concurrent包中借助CAS实现了区别于synchronouse同步锁的一种乐观锁。 本文先从CAS的应用说起,再深入原理解析。 CAS应用 CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。 非阻塞算法 (nonblocking algorithms) 一个线程的失败或者挂起不应该影响其他线程的失败或挂起的算法。 现代的CPU提供了特殊的指令

CAS--JAVA为什么选择它,如何解析并实现它?

纵饮孤独 提交于 2019-12-20 02:44:38
这边参考的是: A-B-A问题: https://hesey.wang/2011/09/resolve-aba-by-atomicstampedreference.html CAS解析: https://blog.csdn.net/v123411739/article/details/79561458 https://www.cnblogs.com/onlywujun/articles/3529572.html 牛人: http://ifeve.com/ 首先CAS 是是什么? Compare and Swap,是比较并交换的意思。 CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。 它是一种非阻塞型的算法,一个线程的失败或者挂起不应该影响其他线程的失败或挂起的算法。 现代的CPU提供了特殊的指令,可以自动更新共享数据,而且能够检测到其他线程的干扰,而 compareAndSet() 就用这些代替了锁定。 这边拿AtomicInteger来研究在没有锁的情况下是如何做到数据正确性的。 private volatile int value; 在没有锁的机制下可能需要借助volatile原语,保证线程间的数据是可见的(共享的)。 这样在获取变量的值的时候才能直接读取。 public final int

BIOS和DOS中断例程的安装过程

旧城冷巷雨未停 提交于 2019-12-20 02:10:58
CPU一加电,初始化(CS) = 0FFFFH,(IP) = 0自动从FFFF:0单元开始执行程序。FFFF:0处有一条跳转指令,CPU执行该指令后,转去执行BIOS中的硬件检测和初始化程序 跳转指令 -然而啥也没有 初始化程序将建立BIOS所支持的中断向量,即将BIOS中断例程的入口地址登记在中断向量表中 硬件系统检测完成后,调用 INT 19H 进行操作系统引导,计算机交给操作系统控制 来源: CSDN 作者: 只是有点小怂 链接: https://blog.csdn.net/xiong_xin/article/details/103614815

java并发编程笔记

回眸只為那壹抹淺笑 提交于 2019-12-19 12:41:52
java并发编程使用的是java.util.concurrent包下的类,主要是【原子包+锁包+处理并发的数据结构类】 原子类 锁类 Lock标准的实现是 ReentrantLock 重入锁 如何理解ReentrantLock的可重入和互斥? synchronized的实现原理 Lock的实现原理(即AQS(抽象队列同步器)算法) java的内置锁synchronized与类锁Lock的区别 专用于并发的数据结构类 Executor Executor本意是执行器,这里理解成线程池 用于此包中定义的Executor、ExecutorService、ScheduledExecutorService、ThreadFactory和可调用类的工厂和实用程序方法。此类支持以下类型的方法: 创建并返回一个ExecutorService,用来提供有用的配置环境 线程池 cpu工作原理【cpu一次只能做一件事】 冯诺依曼体系结构是现代计算机的基础。在该体系结构下,程序和数据统一存储,指令和数据需要从同一存储空间存取,经由同一总线传输,无法重叠执行。根据冯诺依曼体系,CPU的工作分为以下 5 个阶段:取指令阶段、指令译码阶段、执行指令阶段、访存取数和结果写回。 [1] 取指令(IF,instruction fetch),即将一条指令从主存储器中取到指令寄存器的过程。程序计数器中的数值

附录---cpu详解

情到浓时终转凉″ 提交于 2019-12-18 09:57:24
02 附录---cpu详解 一 五大组成单元=>三大核心组件 组成计算机五大单元可以合并成三大核心组件:CPU、IO设备、主存储器 1、控制单元+算数逻辑单元=>CPU 2、主存储器,即主記憶體 3、输入单元Input+输出单元Outpu=>IO设备 插图:三大核心组件 二 cpu工作流程 CPU的核心工作在于进行运算和判断,那么要被运算与判断的数据是从哪里来的? CPU读取的数据都是从主存储器(内存)来的!主存储器内的数据则是从输入单元所传输进来!而CPU处理完毕的数据也必须先写回主存储器中,最后数据才从主存储器传输到输出单元。 所以计算机五大组成部分的基本工作流程就是:输入单元=>主存储器=>CPU=>主存储器=>输出单元 而CPU会从内存中取指令->解码->执行,然后再取指->解码->执行下一条指令,周而复始,直至整个程序被执行完成。 所以总结CPU的大致工作流程就是:取指—>解码—>执行,详细见下图 插图:cpu工作流程详解 三 cpu指令集 cpu是计算机的大脑,大脑里集成了一系列具体控制身体其他器官做事的指令集,所以站在纯硬件角度去看,计算机所有其他组件都由cpu发出的指令控制。 我们程序员编程的目的是为了控制计算机硬件工作,程序员的代码都会转换成cpu的指令集才能去控制其他硬件,所以程序员是通过直接控制cpu来达到间接控制其他硬件的目的,具体流程如下 插图

编程语言分类

走远了吗. 提交于 2019-12-18 09:57:01
[TOC] 目录: 一 引子 二 编程语言分类: 2.1 机器语言 2.2 汇编语言 2.3 高级语言 2.3.1 编译型 (如C语言) 2.3.2 解释型 (如Python) 2.4 总结 #一 引子 ​ 基于上一章所学,有了计算机硬件,再在硬件之上安装好操作系统,我们就有了一个应用程序的运行平台,我们接下来的任务就是学习如何使用某款编程语言来开发应用程序。 ​ 本章的主题是先带大家了解下编程语言,然后重点介绍python这门编程语言 插图:恶搞图01 二 编程语言分类: 2.1 机器语言 机器语言是站在计算机(奴隶)的角度,说计算机能听懂/理解的语言,而计算机能直接理解的就是二进制指令,所以机器语言就是直接用二进制编程,这意味着机器语言是直接操作硬件的,因此机器语言属于低级语言,此处的低级指的是底层、贴近计算机硬件(贴近代指需要详细了解计算机硬件细节、直接控制硬件),详解如下 #机器语言 用二进制代码0和1描述的指令称为机器指令,由于计算机内部是基于二进制指令工作的,所以机器语言是直接控制计算机硬件。 用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码以及代码的含义,然后在编写程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍

数据处理的两个基本问题

北慕城南 提交于 2019-12-18 08:15:15
计算机是进行数据处理,运算的机器,所以存在两个问题: 处理的数据的位置 处理的数据的长度 这两个问题,必须在机器指令中给出说明(有时候是明确的,有时候是隐式的),否者计算器就无法工作。 定义的描述性符号: reg(寄存器):ax,bx,cx,dx,ah,al···sp,bp,si,di sreg(段寄存器):ds,ss,cs,es bx,si,di和bp 总结: 在8086中, 只有 这四个寄存器可以用在 [...] 中进行内存寻址。 在 [...] 中,他们可以单个出现,或者以组合形式出现(组合中不能有其他寄存器,但可以有idata) bp的默认段地址在ss中(和bx,si,di在ds中不同) 机器指令处理的数据在什么地方 数据处理大致可分为三类:读取,写入,运算 指令执行前,所要处理的数据可以在3个地方:cpu内部,内存,端口 汇编语言中数据位置的表达 立即数(idata) 对于直接包含在机器指令中的数据(执行前在cpu的指令缓冲器中),在汇编语言中称为:立即数(idata) 寄存器 指令要处理的数据存放在寄存器中,给出对应寄存器名 段地址(SA)和偏移地址(EA) 内存中的数据,通过SA+EA给出数据位置 寻址方式 定位内存单元的方法,即称为寻址方式 指令要处理的数据有多长 前面将到分为隐式给出和显式给出,例如通过寄存器和push,pop等方法就是隐式给出。