深入理解计算机系统-第1天-第1章

来源:互联网 发布:用友网络吧 编辑:程序博客网 时间:2024/04/29 12:30

        最近打算补习一些底层的知识,网上也说,了解计算机底层知识对一个程序员来说是大有裨益的。自己也深信了这一点。今天开始号称国外经典计算机教材《Computer System Programmer's Persdective》中文译名《深入理解计算机系统》的阅读之旅。

第一章-计算机漫游

        计算机系统是由硬件和软件组成的,他们共同协作以运行应用程序。计算机内部的信息被表示为一组组的位(bit),他们依据不同的上下文又有不同的解释方式。程序被其他程序翻译成不同的形式,开始时是ASC‖文本,然后被编译器和链接器翻译成二进制可执行文件。

        处理器读取并解释存放在主存里的二进制指令。因为计算机花费大量的时间在存储器,I/O设备和CPU寄存器之间拷贝数据,所以系统中的存储设备就被按层次排列,CPU寄存器在顶部,接着是多层的硬件高速缓存存储器,DRAM主存储器金额磁盘存储器。在层次模型中位于更高层的存储设备比底层的存储设备要快,单位比特造价也更高。程序员通过理解和运用这种存储层次结构的知识,可以优化他们C程序的性能。

        操作系统内核是应用程序和硬件点之间的媒介。他提供三个基本的抽象概念:文件是对I/O设备的抽象概念;虚拟存储器是对主存和磁盘的抽象概念;进程是处理器,主存和I/O设备的抽象概念。

        最后,网络提供了计算机系统之间通信的手段。从某个系统的角度看,网络就是一种I/O设备。

计算机处理的就是二进制信号,这个知道,但文件是对I/O设备的抽象概念这个以前还真没想过。呵呵,分层的思想真是无所不在,原来存储器从顶至下还分寄存器,L1高速缓存,L2高速缓存,主存储器,本地磁盘存储器,远程磁盘存储器。而且都是N+1曾直接为N层提供服务。网络从某个角度看,就是一种I/O设备。这个倒也是第一次看到,以前写程序的时候我就不明白,为什么Client与Server的通信要用流。原来也是I/O设备啊,难怪要用到I/O流。呵呵

原创粉丝点击