计算机基础知识
文章平均质量分 70
Coding-lover
Keep hungry,Keep foolish(可通过微信联系我:unilay_yang)
展开
-
内存一致性模型(Memory Consistency Models)
译注:计算机早已进入了多核时代,多核时代要求程序员能够编写并行的程序来充分发挥多处理器的功效。而编写并行/并发程序必须要对内存模型有所了解。因此本人特翻译了一篇有关内存模型综述性质的文章。初次翻译文章,错误在所难免,还望指教。原文地址:http://www.cs.nmsu.edu/~pfeiffer/classes/573/notes/consistency.html 注:有一转载 2014-12-08 10:59:11 · 759 阅读 · 0 评论 -
计算机原理学习 -- x86-32 CPU和内存管理之分段管理
前言 前一篇我们介绍了内存管理中的分页试内存管理,分页的主要作用就是使得每个进程有一个独立的,完整的内存空间,通过虚拟内存技术,使得程序可以在较小的内存上运行,而进程之间内存空间相互独立,提高了安全性。这一篇将主要介绍内存管理中分段管理,以及两种的结合,也是目前计算机普遍采用的段页式内存管理。这也直接决定了的后面程序的编译,加载以及允许时的内存布局。转载 2014-12-27 22:36:30 · 1283 阅读 · 0 评论 -
硬盘的读写原理
硬盘的种类主要是SCSI 、IDE 、以及现在流行的SATA等;任何一种硬盘的生产都要一定的标准;随着相应的标准的升级,硬盘生产技术也在升级;比如 SCSI标准已经经历了SCSI-1 、SCSI-2、SCSI-3;其中目前咱们经常在服务器网站看到的 Ultral-160就是基于SCSI-3标准的;IDE 遵循的是ATA标准,而目前流行的SATA,是ATA标准的升级版本;IDE是并口设备,而SATA转载 2014-12-28 23:51:01 · 804 阅读 · 0 评论 -
磁盘阵列 RAID 技术原理详解
序RAID一页通整理所有RAID技术、原理并配合相应RAID图解,给所有存储新人提供一个迅速学习、理解RAID技术的网上资源库,本文将持续更新,欢迎大家补充及投稿。中国存储网一如既往为广大存储界朋友提供免费、精品资料。在这里我们还推荐形象的看水桶学Raid和一个Raid学习的Flash短片。1.什么是Raid;RAID(Redundant Array of Inexpensive转载 2014-12-29 23:40:12 · 1672 阅读 · 0 评论 -
固态硬盘(SSD)原理简介
ssd原理简介 SSD硬盘之所以需要特别优化系统配置,主要是由其特性决定的:写入方式向SSD硬盘写入数据时,不能像写入普通硬盘那样直接覆盖,而是要先擦除、再写入。不幸的是,由于设计的原因,虽然写入操作可以以页(page,常为 4KB)为单位,擦除操作的最小单位一般是块(block,常为512KB)。[1]如果想保留块中的其它数据,需要在擦除前要先读出该块的数据,转载 2014-12-30 00:04:08 · 2312 阅读 · 0 评论 -
IDE、SATA、SCSI、SAS、FC、SSD硬盘类型介绍
目前所能见到的硬盘接口类型主要有IDE、SATA、SCSI、SAS、FC等等。 IDE是俗称的并口,SATA是俗称的串口,这两种硬盘是个人电脑和低端服务器常见的硬盘。SCSI是"小型计算机系统专用接口"的简称,SCSI硬盘就是采用这种接口的硬盘。SAS就是串口的SCSI接口。一般服务器硬盘采用这两类接口,其性能比上述两种硬盘要高,稳定性更强,但是价格高,容量小,噪音大。FC是光纤通道,和SCIS接转载 2014-12-29 21:06:03 · 1209 阅读 · 0 评论 -
磁盘性能指标--IOPS 理论
机械硬盘的连续读写性很好, 但随机读写性能很差。这是因为磁头移动至正确的磁道上需要时间,随机读写时,磁头不停的移动,时间都花在了磁头寻道上,所以性能不高。 如下图:在存储小文件(图片)、OLTP数据库应用时,随机读写性能(IOPS)是最重要指标。学习它,有助于我们分析存储系统的性能互瓶颈。下面我们来认识随机读写性能指标--IOPS(每秒的输入输出次数)。转载 2014-12-29 22:04:11 · 1594 阅读 · 0 评论 -
从数据库层面理解:随机 I/O & 顺序 I/O
在谈这俩概念前、先来说说 大I/O vs. 小I/O 通常、我们把 的I/O认为是小I/O、而 >=32KB 的I/O认为是大I/O 了解I/O的大小、影响到后期对缓存、RAID类型、LUN的一些属性的调优 当前大多数数据库使用的都是传统的机械磁盘 因此、整个系统设计要尽可能顺序I/O 避免昂贵的寻道时间和旋转延迟的开销转载 2014-12-30 22:35:10 · 927 阅读 · 0 评论 -
吞吐量(Throughput)、QPS、并发数、响应时间(RT)对系统性能的影响
首先对吞吐量(Throughput)、QPS、并发数、响应时间(RT)几个概念一直比较模糊,也不知道哪些指标可以较好的衡量系统的性能。今天特意查了些资料做一些记录:首先看一些概念(来自百度百科) 1. 响应时间(RT) 响应时间是指系统对请求作出响应的时间。直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。由于一个系统通常会提供许多转载 2015-01-01 10:50:13 · 987 阅读 · 0 评论 -
如何组装配置属于自己的台式机
现在电脑这么普及,大部分人都有自己的电脑,有的是台式机,有的是笔记本。很多朋友配台式机时都是直接去电脑城然后商家给配置方案或者找认识的朋友推荐一套配置方案,但是有些时候会出现这样的情形:配完电脑,拿回家玩两天发现不适合自己(有的由于要打游戏,发现电脑带不动)或者发现自己被商家给坑了,这时候就非常懊恼。因此给自己普及一点电脑硬件方面的知识有一定的好处的。下面从几个方面来说一下配置台式机时应注意的一些转载 2014-12-09 11:13:00 · 1125 阅读 · 0 评论 -
java 字符,字节和编码
字符,字节和编码[原创文章,转载请保留或注明出处:http://www.regexlab.com/zh/encoding.htm]级别:中级摘要:本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应用中,编码的实现方法。然后,本文讲述了通常对字符与编码的几种误解,由于这些误解而导致乱码产生的原因,以及消除乱码的办法。本文的内容涵盖了“中文问题”,“乱转载 2014-09-18 21:00:54 · 1115 阅读 · 0 评论 -
字符编码详解及由来
真空管时代的计算机尽管已经步入了现代计算机的范畴,但其体积之大、能耗之高、故障之多、价格之贵大大制约了它的普及应用。直到1947年,由Bell实验室的William B. Shockley、 John Bardeen和Walter H. Brattain.发明了晶体管,开辟了电子时代新纪元,电子计算机也找到了腾飞的起点,一发而不可收……1. 二进制:bit转载 2014-12-28 23:10:41 · 877 阅读 · 0 评论 -
机械硬盘内部硬件结构和工作原理详解
一般硬盘正面贴有产品标签,主要包括厂家信息和产品信息,如商标、型号、序列号、生产日期、容量、参数和主从设置方法等。这些信息是正确使用硬盘的基本依据,下面将逐步介绍它们的含义。硬盘主要由盘体、控制电路板和接口部件等组成,如图1-1所示。盘体是一个密封的腔体。硬盘的内部结构通常是指盘体的内部结构;控制电路板上主要有硬盘BIOS、硬盘缓存(即CACHE)和主控制芯片等单元,如图1-2所示;硬盘接转载 2014-12-28 17:44:58 · 45855 阅读 · 7 评论 -
深入理解Linux中内存管理(发展历程)
前一段时间看了《深入理解Linux内核》对其中的内存管理部分花了不少时间,但是还是有很多问题不是很清楚,最近又花了一些时间复习了一下,在这里记录下自己的理解和对Linux中内存管理的一些看法和认识。我比较喜欢搞清楚一个技术本身的发展历程,简而言之就是这个技术是怎么发展而来的,在这个技术之前存在哪些技术,这些技术有哪些特点,为什么会被目前的技术所取代,而目前的技术又解决了之前的技术所存在的哪些问转载 2014-12-23 23:18:13 · 1099 阅读 · 0 评论 -
大学课程-计算机专业
闲来无事,突然想总结一下大学学习的课程。可能有些课程对现在的工作没什么用,忘的也差不多。但学习,成长的过程是不能以有用没用来衡量的。毕竟曾经经历过、学习过、努力过、奋斗过。大一第一学期(03): (1) 马克思主义哲学(一上课就睡觉,盼着下课) (2) 计算机基础概论(world Excel 的使用)转载 2014-09-21 16:46:40 · 912 阅读 · 0 评论 -
计算机中带符号的整数为何采用二进制的补码进行存储?
计算机中带符号的整数为何采用二进制的补码进行存储? 我们都知道在计算机内部数据的存储和运算都采用二进制,是因为计算机是由很多晶体管组成的,而晶体管只有2种状态,恰好可以用二进制的0和1表示,并且采用二进制可以使得计算机内部的运算规则简单,稳定性高。在计算机中存在实数和整数,而整数又分为无符号整数和有符号整数,无符号的整数表示很简单,直接采用其二进制形式表示即可,而对于有符号数的表示却成了转载 2014-12-09 10:48:53 · 1283 阅读 · 0 评论 -
32位系统最大只能支持4GB内存之由来
32位系统最大只能支持4GB内存之由来 也许大家对这个问题都不陌生,实际装过系统用过电脑的朋友可能都有这样的经历:自己电脑配的是4G的内存条,可是装完系统之后发现电脑上显示的只有3.2G左右可用内存,其它的内存跑到哪去了?网上也有很多朋友给出了一些解释,大部分我觉得都没有解释得很清楚,今天我们就来看一下其中的具体缘由。 在此之前先来了解一些计算机系统结构和PC硬件方面的一些知识转载 2014-12-09 10:36:41 · 1261 阅读 · 0 评论 -
计算机原理-存储器和I/O设备和总线
前言 前一篇文章介绍了冯诺依曼体系结构的计算机的基本工作原理,其中主要介绍了CPU的结构和工作原理。这一篇主要来介绍存储区,总线,以及IO设备等其他几大组件,来了解整个计算机是如何工作的。 这些东西都是看得见摸得着的硬件,平时我们买电脑时最关注的就是CPU的速度,内存的大小,主板芯片等等的参数。 1. 存储器 前面我们转载 2014-12-25 00:48:28 · 5573 阅读 · 0 评论 -
计算机原理学习 -- x86-32 CPU和内存管理之分页管理
前言上一篇我们了解了x86-16 CPU计算机的内存访问方式,寻址方式,以及基于MS-DOS的应用程序的内存布局。这一篇会主要介绍32位处理器的内存访问,内存管理以及应用程序的内存布局。虽然目前64位CPU已经非常普及了,不过相对于32位的内存管理方式并没有大的变化,而32位相对于16位却有了极大的改变。1. IA-32 CPU转载 2014-12-27 19:06:11 · 1160 阅读 · 0 评论 -
计算机原理学习 -- 内存工作原理
前言 前面两篇文章介绍了计算机硬件是如何工作的。而从这一章开始将逐渐的转到软件上面来。我们还有内存这一个很重要的部分没有介绍。这一章不仅仅介绍内存的工作原理,还会介绍内存的编址、内存数据存放。逐渐从硬件过渡到软件上来。为后面介绍程序运行打下基础。 1. 内存工作原理 CPU和内存是计算机中最重要的两个组件,转载 2014-12-26 23:39:49 · 2062 阅读 · 0 评论 -
计算机原理学习 -- 操作系统发展和程序编译
前言 前面的文章主要都是计算机硬件相关的一些工作原理。而前一篇文章介绍了内存的工作原理,编址方式,逐步过渡到软件上面来了。前面也说过,内存是一个非常重要的部件,因为CPU所需的指令和数据都在内存中。所以从这一篇开始我们主要看看程序运行时在内存中的布局。 我们知道对于计算机系统来说,最底层的是硬件,硬件之上是操作系统,而我们的程序都是基于操作系统来运行的,转载 2014-12-27 10:06:24 · 1116 阅读 · 0 评论 -
计算机原理学习 -- x86-16 CPU和内存管理
前言前面我们已经了解了计算机硬件的工作原理,以及操作系统的发展。我们知道是内存把计算机硬件和软件联系了起来。不夸张的说,了解了软件在内存中的结构,就基本了解了程序最底层的运行原理。所以从这一篇开始,将深入的讨论计算机中内存管理和布局。内存的管理同计算机硬件以及擦做系统是分不开的。这一篇我们主要讨论早期x86 CPU和DOS系统对于内存的管理。转载 2014-12-27 11:51:36 · 1714 阅读 · 1 评论 -
java 从Java视角理解CPU缓存(CPU Cache)
从Java视角理解系统结构连载, 关注我的微博(链接)了解最新动态 众所周知, CPU是计算机的大脑, 它负责执行程序的指令; 内存负责存数据, 包括程序自身数据. 同样大家都知道, 内存比CPU慢很多. 其实在30年前, CPU的频率和内存总线的频率在同一个级别, 访问内存只比访问CPU寄存器慢一点儿. 由于内存的发展都到技术及成本的限制, 现在获取内存中的一条数据大概需要200多个CP转载 2014-12-06 23:44:45 · 840 阅读 · 0 评论 -
linux IO模型伪代码及图解
服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:(1)同步阻塞IO(Blocking IO):即传统的IO模型。(2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。(3)IO多路复用(IO Multiplexi转载 2015-03-08 19:05:41 · 1422 阅读 · 0 评论 -
I/O 设计模式 Reactor 和 Proactor
前言 网络服务在处理数以万计的客户端连接时,往往出现效率低下甚至完全瘫痪,这被 称为 C10K 问题。C10K问题最早提出于2003年,10多年间,随着互联网的迅速发展,越来越多的网络服务面临的不再是C10K问题,而是C10M问题!典型的多线程服务器的线程模型 1. 每个请求创建一个线程,使用阻塞式 I/O 操作 这是最简单的线程模型,转载 2015-03-15 18:47:00 · 1540 阅读 · 0 评论 -
java 框架基础知识(9)----HTTP报文-->MVC
学习Web开发不好好学习HTTP报文,将会“打拳不练功,到老一场空”,你花在犯迷糊上的时间比你沉下心来学习HTTP的时间肯定会多很多。HTTP请求报文解剖HTTP请求报文由3部分组成(请求行+请求头+请求体): 下面是一个实际的请求报文: ①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。不过,当前的大多数浏览器只支持GE转载 2015-06-19 00:16:45 · 847 阅读 · 0 评论 -
手机APP UI设计尺寸基础知识
从原理开始介绍一下移动端设计尺寸规范。初涉移动端设计和开发的同学们,基本都会在尺寸问题上纠结好一阵子才能摸到头绪。我也花了很长时间才弄明白,感觉有必要写一篇足够通俗易懂的教程来帮助大家。从原理说起,理清关于尺寸的所有细节。由于是写给初学者的,所以不要嫌我啰嗦。 现象 首先说现象,大家都知道移动端设备屏幕尺寸非常多,碎片化严重。尤其是Android,你会听到很多种分辨率:480x800,转载 2015-06-29 00:15:18 · 1226 阅读 · 0 评论 -
linux 目录个数和文件个数限制(单个目录下最大文件数)
昨晚排查了在KVM的build系统中的一个问题,跟踪到后面发现在一个目录下mkdir创建目录失败。我手动试了一下,提示如下:cannot create directory `/home/master/jaytemp` too many links我发现是在一个目录下的一级子目录数量是有限制的,遂做了点实验和调查,结合网上其他人写的博客,得到如下的一些关于目录个数和文件个数限制的结论。1.ext3文件转载 2015-06-30 14:56:24 · 2134 阅读 · 0 评论 -
线程与进程的区别
1、线程的基本概念概念:线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。好处 : (1)易于调度。(2)提高并发性。通过线程可方便有效地实现并发性。进程可创建多个线程来执行同一转载 2015-06-10 20:20:28 · 699 阅读 · 0 评论 -
java 时间纪元与时区介绍
时间纪元所谓的”时间纪元”就是1970年1月1日0时0分0秒,指的是开始的时间。比如Java类代码: Date date = new Date(0); System.out.println(date); 打印出来的结果: Thu Jan 01 08:00:00 CST 1970 也是1970年1月1日,实际上时分秒是0点0分0秒,这里打印出来的时间是8点而非0点,原因是存在系统时间和本地时转载 2015-07-13 17:53:31 · 1715 阅读 · 0 评论 -
TCP恋爱史:三次握手和四次分手
TCP协议非常重要,这里把它的连接和释放整理一下。首先是三次握手:1、 客户端发起,像服务器发送的报文SYN=1,ACK=0,然后选择了一个初始序号:seq=x。SYN是干什么用的?在链接的时候创建一个同步序号,当SYN=1同时ACK=0的时候,表明这是一个连接请求的报文段。如果对方有意链接,返回的报文里面SYN=1,ACK=1,。从这个意义上来说,SYN=1的时候,就表明这是一个‘请求’或者‘接转载 2015-07-28 08:58:18 · 702 阅读 · 0 评论 -
HTTP与HTTPS的区别
HTTPS(Secure Hypertext Transfer Protocol)协议概述HTTPS是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的安全套接字转载 2015-07-17 13:41:03 · 815 阅读 · 0 评论 -
TCP 三次握手和四次挥手协议
前言在面试的过程中,TCP的传输协议经常会出现。以前我参加面试的过程中就被问到过,现在轮到我面试其他人的时候,我也会问一些相关的问题。作为一名开发者,无论使用什么样的开发语言,最基本的网络知识一定要理解透彻,这样才能获得更好的职业发展。TCP链接协议概述建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:建立连接的过程首先Client端发送连接请求报文,Server段接受连转载 2015-07-17 13:31:15 · 620 阅读 · 0 评论 -
java Java与编码
ASCII编码上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。ASCII码一共规定了128个字符的编码,比如空格”SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。ISO-885转载 2015-11-21 13:41:30 · 939 阅读 · 0 评论 -
cpu 如何合理地估算线程池大小?
如何合理地估算线程池大小?这个问题虽然看起来很小,却并不那么容易回答。大家如果有更好的方法欢迎赐教,先来一个天真的估算方法:假设要求一个系统的TPS(Transaction Per Second或者Task Per Second)至少为20,然后假设每个Transaction由一个线程完成,继续假设平均每个线程处理一个Transaction的时间为4s。那么问题转化为:如何设计线程转载 2014-12-21 19:28:15 · 2268 阅读 · 0 评论 -
并发性能优化 – 降低锁粒度
为什么要加锁?加锁是为了防止不同的线程访问同一共享资源造成混乱。打个比方:人是不同的线程,卫生间是共享资源你在上洗手间的时候肯定要把门锁上吧,这就是加锁,只要你在里面,这个卫生间就被锁了,只有你出来之后别人才能用。想象一下如果卫生间的门没有锁会是什么样?什么是加锁粒度呢?所谓加锁粒度就是你要锁住的范围是多大。比如你在家上卫生间,你只要锁住卫生间就可以了吧,不需要将整个家都锁起来不让家人进门吧,转载 2015-05-07 22:56:20 · 4603 阅读 · 0 评论 -
死锁
一、要点提示(1) 掌握死锁的概念和产生死锁的根本原因。(2) 理解产生死锁的必要条件–以下四个条件同时具备:互斥条件、不可抢占条件、占有且申请条件、循环等待条件。(3) 记住解决死锁的一般方法,掌握死锁的预防和死锁的避免二者的基本思想。(4) 掌握死锁的预防策略中资源有序分配策略。(5) 理解进程安全序列的概念,理解死锁与安全序列的关系。(6) 了解银行家算法。(7) 了解资源分配图。(8) 了解转载 2015-05-09 01:56:51 · 703 阅读 · 0 评论 -
java 从Java视角理解CPU上下文切换(Context Switch)
从Java视角理解系统结构连载, 关注我的微博(链接)了解最新动态 在高性能编程时,经常接触到多线程. 起初我们的理解是, 多个线程并行地执行总比单个线程要快, 就像多个人一起干活总比一个人干要快. 然而实际情况是, 多线程之间需要竞争IO设备, 或者竞争锁资源,导致往往执行速度还不如单个线程. 在这里有一个经常提及的概念就是: 上下文切换(Context Switch). 上下文转载 2014-12-03 00:23:39 · 1119 阅读 · 0 评论 -
linux I/O模型
socket阻塞与非阻塞,同步与异步作者:huangguisu1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做转载 2015-03-08 18:09:25 · 633 阅读 · 0 评论 -
内存映射文件原理
一直都对内存映射文件这个概念很模糊,不知道它和虚拟内存有什么区别,而且映射这个词也很让人迷茫,今天终于搞清楚了。。。下面,我先解释一下我对映射这个词的理解,再区分一下几个容易混淆的概念,之后,什么是内存映射就很明朗了。 原理首先,“映射”这个词,就和数学课上说的“一一映射”是一个意思,就是建立一种一一对应关系,在这里主要是只 硬盘上文件 的位置与进程 逻辑地址空间 中一块大转载 2015-03-11 23:34:22 · 667 阅读 · 0 评论