《深入理解计算机系统》第一章

  • 一、概述
  • 二、计算机系统各概念是对软硬件的**抽象**:
  • 三、关于性能

该专栏是读《深入理解计算机系统》第三版后的总结和思考——基于个人知识背景和内容偏好。

一、概述

  1. 计算机系统=硬件+软件,计算机系统用程序处理信息,而信息就是bits+context。
  2. 程序的诞生:C源程序需要编译系统的预处理、编译、汇编、链接才编程器可执行文件。简单理解下,预处理是将宏替换为代码,编译是将C转成汇编代码,汇编是将汇编代码转成机器码的二进制文件,最后链接将被调用的模块与之合并。
  3. 程序的执行:我们在命令行窗口输入一个命令按回车,计算机系统大致这么运行——shell程序将键盘输入内容读入寄存器,然后存到内存,再刷写到图形适配器,我们就看到了它。按了回车之后,shell程序查找磁盘中该命令对应的指令并加载到内存,然后cpu执行这些指令。最后执行得到的结果从内存写到图形适配器,我们就看到了命令执行结果。

二、计算机系统各概念是对软硬件的抽象

  • IO设备->文件
  • IO设备+主存->虚拟内存
  • IO设备+主存+处理器->进程
  • 处理器->指令集
  • IO设备+主存+处理器+OS->虚拟机
  1. 操作系统OS:管理硬件,提供统一的操作接口。
  2. 进程:OS对正在运行的程序的抽象,操作系统可以交替运行不同进程一小段时间,实现多进程的并发。各进程运行中的状态称为上下文,交替运行需要CPU切换进程相应的状态,称上下文切换。
  3. 线程:在进程的基础上增加了状态共享,让切换更轻量级。线程也可以有自己的状态,比如java中的ThreadLocal。
  4. 虚拟内存:对内存的抽象,让每个进程都可以像独享内存空间一样使用内存。包括:
    a. 程序代码、数据
    b. 堆,占用的内存大小可以动态变化
    c. 共享库,类似a,但是共享
    d. 栈,用于函数调用时存放函数地址,动态的
    e. 内核虚拟内存,内核保留的,应用程序不能直接访问
  5. 文件:bits或字节序列,磁盘、显示器、键盘等都是文件设备。
  6. 网络:系统间通信的媒介。

三、关于性能

  1. Amdahl定律:对系统某个部分加速,其影响跟该部分在系统占比和加速大小有关。想要加速多,就得加速系统的大部分
  2. 并行有三个层次:线程级的超线程,指令级并行,SIMD
  3. 数据在不同速度设备之间来回复制,慢的设备很容易成为性能瓶颈。高速缓存就是用来解决这个问题的:将比内存更快的SRAM放到CPU与内存之间,存放CPU最近可能会用到的内存中的数据,优先供CPU取用,以提高数据访问速率。

《深入理解计算机系统》第一章相关推荐

  1. 软件工程导论 1-13章 重点定义及解释

    软件工程导论 第一章 概述 第二章 可行性研究 第三章 需求分析 第五章 总体设计 第六章 详细设计 第七章 实现 第八章 维护 第九章 面向对象方法学引论 第十章 面向对象分析 第十一章 面向对象设 ...

  2. 计算机导论第一章试题及答案,计算机导论第一章测试题

    计算机导论第一章测试题 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 Test Bank-Chapter One (Data Re ...

  3. 网络空间安全导论-第一章习题

    网络空间安全导论-第一章习题 1.网络空间安全有哪些定义? 2.简述网络安全空间的技术架构. 3.列举一些你身边遇到或发现的网络安全问题,试分析其中的原因,并说说有哪些防范措施. 1.网络空间安全有哪 ...

  4. 概率论的基本公式(概率导论第一章)

    概率论的基本公式(概率导论第一章) 文章目录 概率论的基本公式(概率导论第一章) 1. 概率模型 1.1 概率模型的基本组成 1.2 概率公理 1.3 概率律的若干性质 2. 条件概率 2.1条件概率 ...

  5. 现代软件工程讨论第一章-第四章

    第一章 1.代码如下 #include <iostream> #include <cstdio> #include <time.h> using namespace ...

  6. 软件工程技术--第一章 概述

    第一章 软件 操作系统本身就是一个软件,一个系统可以理解为系统软件. 什么是软件? 软件是计算机系统的"思维中枢",它与计算机硬件相互作用,互相配合,从而实现了特定的系统功能. 软 ...

  7. 我眼中的算法导论 | 第一章——算法在计算中的作用、第二章——算法基础

    一个小白的算法学习之路.读<算法导论>第一天.本文仅作为学习的心得记录. 算法(Algorithm) 对于一个程序员来说,无论资历深浅,对算法一词的含义一定会或多或少有自己的体会,在< ...

  8. 工程电磁场导论第一章总结

    前言:电磁场中有很多题目运用了圆柱或球坐标系,下面这篇文章对此有介绍,后面有时间 可能我也会写一点电磁场中有很多题目运用了圆柱或球坐标系,下面这篇文章对此有介绍​​​​​​电磁场电磁波基础笔记之圆柱和 ...

  9. 软件工程导论 01章软件工程学概述

    1.软件是程序.数据以及各种相关文档的集合. 程序是对计算任务的处理规则的描述,数据是对计算任务的处理对象的描述,文档则是有关计算机程序功能.设计.编制与使用的文字图形资料. 软件等于程序加数据加相关 ...

  10. 计算机科学导论 -- 第一章 绪论

    一 本章内容 本章讲述了 图灵模型 冯.诺依曼模型 计算机组成部分 历史 社会问题和道德问题等 1.1 图灵模型 Alan Turing(阿兰-图灵)1937年首次提出通用计算设备的设想: 所有的计算 ...

最新文章

  1. 程序员会懂的冷笑话:各大编程语言的内心独白
  2. stack UVA 442 Matrix Chain Multiplication
  3. HttpRequest Get和Post调用其他页面的方法
  4. 自动化运维之ansible-安装部署与基础命令篇
  5. 解决vue在ie9中的兼容问题
  6. LitJson使用中的坑
  7. 【Java】ResourceBundle 使用
  8. 电商项目实战--收货地址相关
  9. 【史上最全】数据分级分类标准、指南和模板
  10. win2008服务器c盘在线扩容,win7 win10 win2008系统给主分区C盘增加空间 不破坏原硬盘内容扩充C盘 MiniTool Partition Wizard...
  11. mysql创建数据库表_mysql基础之创建数据库和表
  12. Ubuntu 20.04 server 安装
  13. 2022Q3消费级AR眼镜市场季度分析:国产品牌纷纷发力,市场全面启航
  14. 【ALM】POLARION ALM之需求管理解决方案介绍02
  15. Ubuntu:apt 配置阿里源
  16. java map包_java Map
  17. 说说信息技术工程化问题
  18. SAP教程之 Sap S/4HANA的未来是什么?它会取代 SAP ABAP 吗?
  19. asp.net mvc4 修改密码界面
  20. 砂.随笔.十.大中午冒雨翘班 感慨一下,福州的天气真是变幻莫测

热门文章

  1. 微信小程序扫描二维码、小程序码进入的开发测试
  2. JavaScript详解原型和原型链
  3. 常见的几种网络Hack方式
  4. 李宏毅2020机器学习深度学习 笔记1(理论上持续更新中)
  5. OCX控件在win10下的查看、删除、注册、卸载
  6. Scala中的集合排序总结
  7. perl中正则匹配中文字符
  8. 基于51单片机ds1302时钟、ds18b20、lcd12864的恒温器
  9. matlab导入origin,matlab导入origin
  10. 九龙证券|游戏板块或继续迎来业绩估值“戴维斯双击”