计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,能够进行数值计算,又能够进行逻辑计算,还具备存储记忆功能。是可以按照程序运行,自动、高速处理海量数据的现代化智能电子设备。一个完整的计算机由硬件和操做系统组成。若是没有操做系统的计算机,能够称之为裸机。html
2.计算机的组成:缓存
硬件部分:计算机硬件主要由cpu,输入设备,输出设备,存储器和系统总线组成。cpu就像人类的大脑同样,负责计算,处理事件,系统总线则是人的血管和神经同样,控制的输入,输出和存储设备(控制总线),将养分物质传输到身体各处(数据传输总线)。输入,输出设备则负责计算机与外界作交互,进行数据的输入和输出,图形的显示等做用。而存储设备则负责存储内容。安全
软件部分:计算机的软件部分主要分为操做系统和应用软件。操做系统的出现,将计算机复杂的硬件结构进行了包装,给人们提供了一个简单,方便,优美的操做感觉和视图界面。而应用软件的出现则是为了知足人们各类特定的需求,如暴风影音,游戏等。多线程
3.硬件部分架构
1.CPU:cpu的组成以下图所示,工做过程能够分为取指---解码--执行,这三个部分,分别再指令寄存器,指令译码器和ALU这三个地方完成。由于从内存读取数据的时间比cpu执行命令的时间要慢的多,因此计算机在内部有部分寄存器(和cpu同材质),寄存器主要分为如下几种类型:并发
通用寄存器:用来保存变量和临时结果框架
程序计数器:用来保存下一个要执行的指令的内存地址。spa
程序状态字寄存器(PSW):用来标记区分访问状态(用户态,内核态),cpu优先级等内容。操作系统
堆栈指针寄存器:该栈包含已经进入可是尚未退出的每一个过程当中的一个框架。在一个过程的堆栈框架中保存了有关的输入参数、局部变量以及那些没有保存在寄存器中的临时变量。堆栈的特色是先进后出。线程
补充说明:
内核态:为了保护硬件系统底层的安全和稳定性,只容许内核态进行操做硬件。通常操做系统处于内核态,而应用软件处于用户态
用户态:只能操做cpu指令集的一个子集,没法操做底层硬件内容,若是须要操做底层硬件,须要将用户态转换为内核态。
多线程:线程是cpu执行的基本单位,线程之间内存的共享的。多线程cpu能够保持两个不一样状态的线程(休眠状态和运行状态),cpu来回切换这些线程,速度十分快,以至于让人们认为是并发处理的。cpu同一个时间只能处理一个线程。
进程:进程是最小的资源单位,进程间内存是不共享的。一个进程最少要有一个线程。
多核:增长了数个完整的cpu,这样就能够同时处理多个线程。每一个cpu有个跟cpu材质同样的缓存区,称为一级缓存(L1),有个二级缓存(L2)连接着这几个cpu(inter架构)。
2.存储器
以下图,缓存的级别由上到下一次递增,寄存器为一级缓存,高速缓存为二级缓存,以此类推,缓存速度越快,容量就越小,造价就越昂贵。若是运行一个程序,所须要的内容已经在高速缓存中,即称为高速缓存命中,若是高速缓存未命中,则须要去内存读取数据,速度会慢不少。
内存RAM为易失性存储,断电后数据所有消失。
rom(Read Only Memory)为非易失性存储。
flash(闪存):非易失性存储,固态硬盘,u盘都是有闪存进行存储。
cmos:易失性存储,保存当前时间和日志,还有系统的一些参数。
磁盘:磁盘由多个碟片,磁柱,磁头组成。每一个磁盘又以扇区为单位进行划分。一个扇区为512B。最小的块单元由8个扇区组成,即4KB。
磁盘读取数据会有必定延时,主要非为:
1.平均寻道延时:即找到所需数据所在的扇扇道
2.平均延时时间:在扇道上找到正确的扇区所须要的时间
因此一块磁盘转速约快,他的延时时间就越短,读取速度就越快。
咱们还会划分一小部分磁盘做为内存来使用,防止运行软件过多,所需内存超过实际内存大小,而形成内存溢出,服务崩溃。虚拟内存虽然运行速度较慢,可是能够防止内存溢出的状况发生,保证服务的稳定。
I/O设备(input/output)
I/O 通常分为设备控制器(须要安装驱动软件)和设备自己。
设备控制器的做用是提供一个标准的接口来接入设备,驱动软件则是提供给系统操控设备的方法。各个设备控制器由I/O总线连接着。
I/O总线分为北桥和南桥,北桥链接cpu,内存,二级缓存,南桥链接硬盘,键盘,打印机等运行速度较慢的设备。
4.操做系统
操做系统的做用主要由两个:
1.给用户提供一个简单,明了的硬件接口(工做在用户态),程序开发人员不须要再去了解如何去控制硬件,而是调用相应的硬件接口就可使用。
2.让线程的进程变得有序(工做在内核态)。如打印机同时打印a,b,c,若是是无序竞争,那么打印出来的内容会是a一行,b一行,这样混乱的内容。操做系统会使用锁 这个方法让竞争变得有序,若是a文件正常使用打印机,则会将打印线程锁住,只给a只有,那么b和c只有等a打印完以后才会使用打印机。
操做系统与应用软件的区别:
1.主要区别是:应用软件开发周期短,可修改,操做系统由内核保护着,不能被修改。
2.操做系统是一个大型(源码数量大)、复杂(提供复杂功能)、长寿(不会轻易被弃用)的软件
多路复用(多道技术):
1.时间上的复用:当一个资源在时间上复用时,不一样的程序或用户轮流使用它。例如:cpu的 上下文切换:一个内核可处理多个进程, 在只有一颗 CPU 的状况下, 内核必须调度和平衡这些进程和线程。 每一个线程在处理器上都拥有一个时间分配单元, 当一个线程超过本身的时间单元或被更高优先级的程序抢占时, 此线程及被传回队列而此时更高优先级的程序将在处理器上执行。
2.空间上的复用(须要硬件上的支持,将内存在硬件层面上进行分区):多个程序同时进入不一样的内存区域。且由操做系统控制,这比一个程序独占内存一个一个排队进入内存效率要高的多。 硬件层面的分割保证了安全性:应用程序不会操做到操做系统的内存区域 稳定性:释放应用程序内存时,不会同时释放掉操做系统的内存(即便是操做系统的部份内存),这样能够避免引发操做系统的崩溃。
参考博客连接:
https://www.cnblogs.com/linhaifeng/p/6523843.html
https://www.cnblogs.com/linhaifeng/p/6295875.html