《深入理解计算机系统》第一章
《深入理解计算机系统》第一章
- 一、概述
- 二、计算机系统各概念是对软硬件的**抽象**:
- 三、关于性能
该专栏是读《深入理解计算机系统》第三版后的总结和思考——基于个人知识背景和内容偏好。
一、概述
- 计算机系统=硬件+软件,计算机系统用程序处理信息,而信息就是bits+context。
- 程序的诞生:C源程序需要编译系统的预处理、编译、汇编、链接才编程器可执行文件。简单理解下,预处理是将宏替换为代码,编译是将C转成汇编代码,汇编是将汇编代码转成机器码的二进制文件,最后链接将被调用的模块与之合并。
- 程序的执行:我们在命令行窗口输入一个命令按回车,计算机系统大致这么运行——shell程序将键盘输入内容读入寄存器,然后存到内存,再刷写到图形适配器,我们就看到了它。按了回车之后,shell程序查找磁盘中该命令对应的指令并加载到内存,然后cpu执行这些指令。最后执行得到的结果从内存写到图形适配器,我们就看到了命令执行结果。
二、计算机系统各概念是对软硬件的抽象:
- IO设备->文件
- IO设备+主存->虚拟内存
- IO设备+主存+处理器->进程
- 处理器->指令集
- IO设备+主存+处理器+OS->虚拟机
- 操作系统OS:管理硬件,提供统一的操作接口。
- 进程:OS对正在运行的程序的抽象,操作系统可以交替运行不同进程一小段时间,实现多进程的并发。各进程运行中的状态称为上下文,交替运行需要CPU切换进程相应的状态,称上下文切换。
- 线程:在进程的基础上增加了状态共享,让切换更轻量级。线程也可以有自己的状态,比如java中的ThreadLocal。
- 虚拟内存:对内存的抽象,让每个进程都可以像独享内存空间一样使用内存。包括:
a. 程序代码、数据
b. 堆,占用的内存大小可以动态变化
c. 共享库,类似a,但是共享
d. 栈,用于函数调用时存放函数地址,动态的
e. 内核虚拟内存,内核保留的,应用程序不能直接访问 - 文件:bits或字节序列,磁盘、显示器、键盘等都是文件设备。
- 网络:系统间通信的媒介。
三、关于性能
- Amdahl定律:对系统某个部分加速,其影响跟该部分在系统占比和加速大小有关。想要加速多,就得加速系统的大部分
- 并行有三个层次:线程级的超线程,指令级并行,SIMD
- 数据在不同速度设备之间来回复制,慢的设备很容易成为性能瓶颈。高速缓存就是用来解决这个问题的:将比内存更快的SRAM放到CPU与内存之间,存放CPU最近可能会用到的内存中的数据,优先供CPU取用,以提高数据访问速率。
《深入理解计算机系统》第一章相关推荐
- 软件工程导论 1-13章 重点定义及解释
软件工程导论 第一章 概述 第二章 可行性研究 第三章 需求分析 第五章 总体设计 第六章 详细设计 第七章 实现 第八章 维护 第九章 面向对象方法学引论 第十章 面向对象分析 第十一章 面向对象设 ...
- 计算机导论第一章试题及答案,计算机导论第一章测试题
计算机导论第一章测试题 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 Test Bank-Chapter One (Data Re ...
- 网络空间安全导论-第一章习题
网络空间安全导论-第一章习题 1.网络空间安全有哪些定义? 2.简述网络安全空间的技术架构. 3.列举一些你身边遇到或发现的网络安全问题,试分析其中的原因,并说说有哪些防范措施. 1.网络空间安全有哪 ...
- 概率论的基本公式(概率导论第一章)
概率论的基本公式(概率导论第一章) 文章目录 概率论的基本公式(概率导论第一章) 1. 概率模型 1.1 概率模型的基本组成 1.2 概率公理 1.3 概率律的若干性质 2. 条件概率 2.1条件概率 ...
- 现代软件工程讨论第一章-第四章
第一章 1.代码如下 #include <iostream> #include <cstdio> #include <time.h> using namespace ...
- 软件工程技术--第一章 概述
第一章 软件 操作系统本身就是一个软件,一个系统可以理解为系统软件. 什么是软件? 软件是计算机系统的"思维中枢",它与计算机硬件相互作用,互相配合,从而实现了特定的系统功能. 软 ...
- 我眼中的算法导论 | 第一章——算法在计算中的作用、第二章——算法基础
一个小白的算法学习之路.读<算法导论>第一天.本文仅作为学习的心得记录. 算法(Algorithm) 对于一个程序员来说,无论资历深浅,对算法一词的含义一定会或多或少有自己的体会,在< ...
- 工程电磁场导论第一章总结
前言:电磁场中有很多题目运用了圆柱或球坐标系,下面这篇文章对此有介绍,后面有时间 可能我也会写一点电磁场中有很多题目运用了圆柱或球坐标系,下面这篇文章对此有介绍电磁场电磁波基础笔记之圆柱和 ...
- 软件工程导论 01章软件工程学概述
1.软件是程序.数据以及各种相关文档的集合. 程序是对计算任务的处理规则的描述,数据是对计算任务的处理对象的描述,文档则是有关计算机程序功能.设计.编制与使用的文字图形资料. 软件等于程序加数据加相关 ...
- 计算机科学导论 -- 第一章 绪论
一 本章内容 本章讲述了 图灵模型 冯.诺依曼模型 计算机组成部分 历史 社会问题和道德问题等 1.1 图灵模型 Alan Turing(阿兰-图灵)1937年首次提出通用计算设备的设想: 所有的计算 ...
最新文章
- 程序员会懂的冷笑话:各大编程语言的内心独白
- stack UVA 442 Matrix Chain Multiplication
- HttpRequest Get和Post调用其他页面的方法
- 自动化运维之ansible-安装部署与基础命令篇
- 解决vue在ie9中的兼容问题
- LitJson使用中的坑
- 【Java】ResourceBundle 使用
- 电商项目实战--收货地址相关
- 【史上最全】数据分级分类标准、指南和模板
- win2008服务器c盘在线扩容,win7 win10 win2008系统给主分区C盘增加空间 不破坏原硬盘内容扩充C盘 MiniTool Partition Wizard...
- mysql创建数据库表_mysql基础之创建数据库和表
- Ubuntu 20.04 server 安装
- 2022Q3消费级AR眼镜市场季度分析:国产品牌纷纷发力,市场全面启航
- 【ALM】POLARION ALM之需求管理解决方案介绍02
- Ubuntu:apt 配置阿里源
- java map包_java Map
- 说说信息技术工程化问题
- SAP教程之 Sap S/4HANA的未来是什么?它会取代 SAP ABAP 吗?
- asp.net mvc4 修改密码界面
- 砂.随笔.十.大中午冒雨翘班 感慨一下,福州的天气真是变幻莫测