程序员的自我修养 -- 基础知识笔记(一)

硬件设备核心的三个部件:中央处理器CPU内存I/O控制芯片


为什么会有北桥南桥

因为速度不匹配;CPU和总线的速度不匹配,总线和外设(鼠标、键盘、磁盘)速度不匹配。

为了协调    CPU、内存和高速的图形设备,专门设计了一个高速的北桥芯片,以便高速设备间能够高速地交换数据。
由于北桥运行的速度非常高,所有的相对低速的设备如果全部直接连接在北桥上,北桥既需要处理高速设备,又要处理低速设备,设计就会十分复杂。于是就设计了专门处理低速设备的南桥芯片。

采用PCI/ISA及南北桥设计的硬件架构如下图:

                   


                                                                     

对称多处理器(SMP,Symmetrical Multi-Processing),简单的讲就是每个CPU在系统所处的地位和所发挥的功能都是一样的,是相互对称的。
计算机系统软件体系结构的设计要点:

                        Any program computer science can be solved by another layer of indirection.
                        (计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决问题)

将实现层次之间的通讯协议称之为接口(interface)
接口的下面那层是接口的提供者,由它定义接口;接口的上面一层是接口的使用者,它使用该接口来实现所需要的的功能。
虚拟机技术是在硬件和操作系统之间增加了一层虚拟层,使得一个计算机上可以同时运行多个操作系统

                                 


操作系统做什么

操作系统的一个功能是提供抽象的接口,另外一个主要的功能是管理硬件资源。

                             

对于其中的多任务系统,CPU由操作系统统一进行分配,每个进程根据进程(Process)的优先级的高低都有机会得到CPU,但是如果运行超时,操作系统就会暂停该进程,将CPU的资源分配给其他等待运行的进程。操作系统的多任务的功能使得CPU能够在多个进程之间很好地共享,从进程的角度看好像是它独占了CPU而不用考虑与其他进程分享CPU的事情。

CPU的这种分配方式被称为抢占式(Preemptive),操作系统可以强制剥夺CPU资源且分配给他认为目前最需要的进程。

硬件驱动程序(Device Driver)可以看做是操作系统的一部分,一般情况下它与操作系统内核一起运行在特权级,但它又与操作系统内核之间有一定的独立性,使得驱动程序有比较好的灵活性。


内存不够怎么办

将计算机上有限的物理内存分配给多个程序使用在分配策略上可能遇到的问题:

  1. 地址空间不隔离:所有的程序都直接访问物理地址,程序所使用的内存空间不是相互隔离的。
  2. 内存使用效率低:由于没有有效的内存管理机制,通常要一个程序执行时,监控程序就将整个程序装入内存中然后开始执行。
  3. 程序运行的地址不确定:程序每次需要装入时,都需要给它从内存中分配一块足够大的空闲区域,这个空闲区域的位置不确定。

处理策略:增加中间层,使用一种间接的地址访问方法,即把程序给出的地址看做是一种虚拟地址(Virtual Address),然后通过某些映射的方法,将这个虚拟地址转换成实际的物理地址。

地址空间分为两种:虚拟地址空间物理地址空间

每个进程都有自己独立的虚拟空间,而且每个进程只能访问自己的地址空间,这样的操作就能有效的做到进程的隔离

分段:基本思路是把一段与程序所需要的内存空间大小的虚拟空间映射到某个地址空间。

                                   

通过分段可以满足程序运行时地址确定和地址隔离这两项,但效率方面却存在不足,因此引出“分页”。

分页:分页的基本方法是把地址空间人为的等分成固定大小的页,每一页的大小由硬件决定,或硬件支持多种大小的页,由操作系统选择决定页的大小。

虚拟空间汇总的页叫做虚拟页(VP, Virtual Page);
物理内存中的页叫做物理页(PP, Physical Page);
磁盘中的页叫做磁盘页(DP,Disk Page);

                

在页映射模式下,CPU发出的是Virtual Address,即程序看到的是虚拟地址。经过MMU(Memory Management Unit)转换后变成了Physical Address。一般MMU都集成在CPU内部了,不会以独立的部件存在。

     

本文摘至《程序员的自我修养 链接、装载与库》,强烈建议研读。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值