一些基本概念的思考与总结
Posted CS_Green_Hand
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一些基本概念的思考与总结相关的知识,希望对你有一定的参考价值。
引言:
在学习计算机知识时,经常对所读资料中的一些名词不明就里,例如指令集、指令集架构、微架构、CPU架构、x86、Intel64、x64等。而这些名词多为工程概念或者是人们的口语表达,并无像数学概念一般的精确定义。为解决此类困惑,现将自己对这些名词的理解阐述如下,若有错误之处,还望批评指正。
1.名词概念阐述与一些见解
1.1 指令集
指令集:一台给定的计算机所能执行的全部指令的集合。
1.2 指令集架构
指令集架构:指令集,基本数据类型,寄存器的类型与个数,寻址方式,中断异常处理,存储体系以及I/O模型等共同组成了指令集架构。总而言之,指令集架构包含指令集。
指令集架构决定了处理器架构。换句话说,处理器架构是指令集架构的硬件实现。同样的指令集可以有不同的处理器架构。例如x86指令集架构中有加法运算指令,在硬件层面上,处理器设计人员可通过串行进位加法器来实现加法,也可以通过超前进位加法器来实现加法,二者都可完成加法运算,但硬件层面上的执行元件与执行过程不同。上述特点也使得在某一台计算机上编写的二进制程序可以在使用相同指令集架构的计算机上运行。
此外,现有生存下来的指令集架构具有强大的兼容性。最突出的例子就是x86指令集架构,该指令集架构最初在Intel 8086处理器(1978)中使用,最初为16为架构,而后扩展至32位,直至到今天的64位。因为x86指令集的兼容性,为8086编写的程序仍可在最新的x86架构的Intel 处理器上运行。
1.3 处理器架构
处理器架构:也可称作处理器微架构,是指令集架构的硬件实现。
处理器架构也可称作处理器微架构,他们在硬件层面上完成他们所支持的指令集架构的功能,换句话说处理器架构是一些能完成特定功能的硬件电路。
如同1.2节所说,同一指令集架构可具有不同的硬件实现。例如AMD与Intel两个厂家的处理器都支持x86指令集架构,但二者的处理器微架构不同,即处理器硬件的硬件实现不同,例如在缓存技术,分支预测,乱序执行以及流水线结构等方面都会有不同之处。即使是同一家公司的产品,例如Intel Core i3/i5/i7/i9,它们的指令集架构相同,但微架构不同,因此性能也不同。
2.x86指令集架构发展简史
1978年,Intel首次生产出16为微处理器8086,x86架构由此产生。之后Intel又接连推出了80286,80386(第一个32位x86架构处理器)和80486。
但因为商标注册的问题,Intel第五代处理器并未命名为80586,而是有一个截然不同的名字“Pentium”,PENT在希腊文中表示“5”,ium看上去是某化学元素的结尾,用在这里表示处理器强大的处理能力和高速性能。Intel在以后的几年里相继推出一系列的32位处理器产品。
20世纪90年代,Intel与HP互作开发出应用在安腾系列处理器中的IA-64架构,但该架构与x86结构完全不兼容,可以说是两个完全不同的指令集架构。因此IA-64在市场上并未取得成功。
随着社会的发展,人们对更高性能处理器的呼声越来越强烈,1999年由AMD推出x86-64(又称x64,AMD64)是x86架构的64位扩展。Intel于2004年推出Intel 64(该架构曾被命名为IA-32e,EM64T,同样也是x86架构的64位扩展),在现阶段,虽然x64架构与Intel 64架构有不同厂家设计,但Intel曾表示,Intel 64完全兼容x64架构。
面试题思考:web中关于一些容器基本概念的简单总结
关键字:应用服务器、web服务器、web容器、jsp容器、servlet容器。
1.应用服务器:
作为应用程序服务器,要求可以通过各种协议(包括 HTTP 协议)把商业逻辑暴露给(expose)客户端应用程序。应用程序使用此商业逻辑就像你调用对象的一个方法或过程(语言中的一个函数)一样。
2.web服务器(程序/软件):
www服务器或http服务器。提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL。向浏览器提供服务的程序。
目前常见web服务器:
大型:Microsoft IIS、IBM WebSphere、BEA WebLogic、Apache、Tomcat
小型:nginx、 micro_httpd、mini_httpd、thttpd、 lighttpd、Shttpd
3.web容器:
满足一定条件的web服务器就是web容器。是web服务器或应用与服务器的一部分,例如是tomcat,weblogic等,实现的是jsp,servlet;tomcat就是servlet和jsp运行的容器。
WEB容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,JSP容器和SERVLET容器。使JSP,SERVLET直接跟容器中的环境变量接口交互,不必关注其它系统问题。主要由WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。
EJB容器:Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。
WEB容器和EJB容器在原理上是大体相同的,更多的区别是被隔离的外界环境。WEB容器更多的是跟基于HTTP的请求打交道。而EJB容器不是。它是更多的跟数据库、其它服务打交道。但他们都是把与外界的交互实现从而减轻应用程序的负担。例如SERVLET不用关心HTTP的细节,直接引用环境变量session,request,response就行、EJB不用关心数据库连接速度、各种事务控制,直接由容器来完成。
4.serlvet容器:
存放维护和创建servlet相关的逻辑,主要任务是管理servlet的生命周期
5.现阶段jsp容器、serlvet容器、web容器基本是是同义的。
以上是关于一些基本概念的思考与总结的主要内容,如果未能解决你的问题,请参考以下文章
中小企业对Spring Cloud微服务架构实践经验总结的一些思考!
一图流思维导图kafka (出现背景/ 核心概念/Kafka的集群架构/优秀架构思考-总结高并发高可用高性能/实际应用)