1.信息就是 位 + 上下文

由 ASCII字符(一个唯一的单字节大小的整数值来表示每个字符)构成的文件叫文本文件,
其他所有的文件叫二进制文件

2.程序被其他程序翻译成不同格式

gcc -o hello hello.c每条 C 语句必须被其他程序转化为一些列的低级机器语言指令。
然后这些指令按照一种称为可执行目标的格式打包好,
并以二进制磁盘文件的形式存放起来。目标程序也称为可执行目标文件。

3.处理器读并解释存储在存储器中的指令

1.总线:贯穿整个系统的一组电子管道,称作总线。通常总线被设计成传送定长的字节块,也就是字(word)。2.I/O 设备:输入/输出(i/o)设备是系统与外界的联系通道。每个I/O 设备都通过一个控制器或
者适配器与 I/O 总线相连。
控制器和适配器之前的区别主要在于他们的封装方式。控制器是置于 I/O 设备本身的或者系统的
主印制电路板(通常称为主板)上的芯片组,而适配器则是一块插在主板插槽上的卡。3.主存:主存是一个临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据。
从物理上来说,主存是一组动态随机存取存储器(DRAM)芯片组成的。从逻辑上来说,
存储器是一个线性的字节数组,每个字节都有唯一的地址(即数组索引)。即这些地址是从0开始的。
一般来说,组成程序的每条机器指令都由不同的字节构成。如 int ,2个字节。4.处理器:解释和执行存储在主存中指令的引擎。处理器的核心是一个字长的存储设备,称为程序计数器(PC)。
任何时候,PC都指向主存中的某条机器语言指令

4. 操作系统管理硬件

操作系统有两个基本功能:1.防止硬件被失控的应用程序滥用;
2.向应用程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备。
操作系统通过几个基本的抽象概念(进程,虚拟存储器和文件)来实现这两个功能。

如果所示,文件是对 I/O 设备的抽象表示,虚拟存储器是对主存和磁盘 I/O 设备的抽象表示,
进程则是对处理器,主存和 I/O 设备的抽象表示
进程是指操作系统对一个正在运行的程序的一个抽象。并发运行是说,一个进程的指令和另外一个进程是交错运行的。
传统操作系统在一个时刻只能运行一个程序,而先进的多核处理器能同时处理多个程序。
无论单核还是多核,一个 CPU 看上去都像是在并发的执行多个进程,这是通过处理器在进程间的切换来实现的。
操作系统实现这种交错执行的机制,称为上下文切换。
线程:通常我们认为一个进程只有单一的控制流,但在现代系统中,一个进程实际上可以由多个称为线程的执行单元组成。
每个线程都运行在进程的上下文中,并共享同样的代码和全局数据。

5.虚拟存储器

虚拟存储器是:一个抽象概念,它为每个进程提供了一个假象,即每个进程都在独占的使用主存。

- 程序和代码区:代码和数据区是直接按照可执行目标文件的内容初始化的,是在进程一开始时就被规定了大小的
 - 堆:当调用 malloc 和 free 这样的 C 标准库时,堆可以在运行时动态的扩展和伸缩
 - 共享库:存放 C 标准库和数学库这样的共享库的代码和数据区域
 - 栈:编译器用它来实现函数调用
 - 内核虚拟存储器:内核总是驻留在内存中,是操作系统的一部分

6.文件

文件就是字节序列,每个 I/O 设备,包括磁盘,键盘,显示器,甚至网络,都可以视为文件。
系统中所有的输入输出都是通过使用一小组称为 Unix I/O 的系统函数调用读写文件来实现的。

7. 并发和并行

并发和并行从宏观上来讲都是同时处理多路请求的概念。但并发和并行又有区别,
并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。
1. 线程级并发2. 指令级并行3. 单指令,多数据并行

1.深入理解计算机系统---计算机系统漫游相关推荐

  1. 《深入理解计算机系统》漫游指南

    导读:如果你也读CS专业,如果你也不知道怎么回答"学计算机不就是学修电脑"这个CS系的宿命之问,推荐一定读一读<深入理解计算机系统>. <深入理解计算机系统> ...

  2. 计算机漫游用户的工作原理,深入理解计算机系统——计算机系统漫游

    前言 入坑计算机原理嘛,漫游慢慢游 思维导图 1.1 信息就是位+上下文 什么是位? 一个程序的生命周期是从一个源程序开始的,源程序实际上就是一个有值 0 和 1 组成的 位(比特 序列,8个位 为一 ...

  3. 深入理解计算机系统—计算机系统漫游1.1

    从今天开始,就要每天给自己加点餐了~ 从今天开始,会慢吞吞的开始啃<深入理解计算机系统>这本书了~ 从今天开始,每天的输入内容都会在C站上进行分享.输出了~ 每天的内容不多,日积月累下来, ...

  4. linux国内计算机系统,计算机系统进化论 | Linux 中国

    纵观现代计算机的历史,从与系统的交互方式方面,可以划分为数个进化阶段.-- Karl Voit 有用的原文链接请访问文末的" 原文链接"获得可点击的文内链接.全尺寸原图和相关文章. ...

  5. 如何阅读《深入理解计算机系统》?(文末送书)

    来源:华章计算机 作者:木羊同学 导读:如果你也读CS专业,如果你也不知道怎么回答"学计算机不就是学修电脑"这个CS系的宿命之问,推荐一定读一读<深入理解计算机系统>. ...

  6. 计算机系统漫游:贯穿计算机系统所有方面的重要概念

    作者:Randal E. Bryant,David R. O'Hallaron 来源:华章计算机(hzbook_jsj) 计算机系统是由硬件和系统软件组成的,它们共同协作以运行应用程序.计算机内部的信 ...

  7. 带你读懂《深入理解计算机系统》开篇

    <深入理解计算机系统>在豆瓣评分高达9.7分,可以说是豆瓣上计算机相关书籍中评分最高的一本 一.以下是豆瓣知乎的一些评论节选给大家: 1. 还能说什么呢?能把硬件.系统.软件系统地结合起来 ...

  8. 2021春深入理解计算机系统大作业---hello的一生

    计算机系统 大作业 题     目 程序人生-Hello's P2P 专       业 计算学部 学    号 120L021725 班    级 2003006 学       生 杨楠 指 导 ...

  9. 深入理解计算机系统---程序运行过程

    一个简单的C程序从编写到执行输出hello world!其中间经历的是诸多处理过程,而不仅仅是显示黑屏上的几个字符.这个过程透露着计算机系统的运行本质. 个人对该过程进行了一些分析和总结,如果有不对的 ...

  10. 理解计算机的特性性能和应用,计算机系统性能评价认识与理解.doc

    计算机系统性能评价认识与理解 对计算机系统性能评价的认识和理解 1.什么是计算机系统性能评价? 在20世纪60年代中期,出现了多任务.多用户的计算机系统,随着大家对这种系统的应用,人们发现这些系统表现 ...

最新文章

  1. bzoj 2406: 矩阵 ——solution
  2. Delphi 如何解决在DLL的入口函数中创建或结束线程时卡死
  3. F-Principle:初探深度学习在计算数学的应用
  4. 可视化图形(一):散点图-scatter()
  5. SlickOne 敏捷开发框架介绍(二) -- 多用户/多租户/SAAS软件基础框架实现
  6. 程序猿修仙之路--数据结构之你是否真的懂数组?
  7. javadoc 标签_新的Javadoc标签@ apiNote,@ implSpec和@implNote
  8. dbscan算法中 参数的意义_无监督机器学习中,最常见的聚类算法有哪些?
  9. Spring Boot基础学习笔记20:Spring Security入门
  10. Java Web学习笔记02:在Intellij里创建Web项目
  11. python新手难点_汇总初学python时的28个操作难点(新手必看篇)
  12. IOS 项目中遇到的问题
  13. RHCE之DHCP配置详解
  14. 数学建模国赛论文latex代码汇总
  15. vbs自动登陆115网盘代码
  16. Kubuntu终端中文显示一半解决办法
  17. 凯恩斯主义税收思想概述
  18. Entity Framework入门
  19. 鼠标右键转圈圈_鼠标点击右键后一直转圈圈
  20. leetcode 罗马数字与整数的转换算法

热门文章

  1. uploadify 上传文件出现HTTP 404错误
  2. 根据id查询数据(向前台返回json格式的数据)
  3. 【转】android开发中如何结束所有的activity
  4. Microsoft Security Essentials升级到2.0测试版 失败时的解决办法
  5. 这 8 个 Python 技巧让你的数据分析提升数倍!
  6. 你为什么迷茫的像个数据分析师?
  7. 数据挖掘的本质出路:长三角春招数据岗不完全调研
  8. 那些小城里的分析大师们为什么发不了财?
  9. 洛谷 P1113 杂务
  10. (原)数据结构之树状数组详解