CSAPP读书笔记

在这里插入图片描述

第一章:计算机系统漫游

  • 每个字节表示程序中的某些文本字符(大部分计算机系统用ASCII标准来表示文本字符)
  • gcc编译hello.c程序分为四个阶段:预处理、编译器、汇编器、连接器
  • 计算机硬件组成:总线、IO设备、主存、处理器
  • 从磁盘加载到主存可以不经过CPU利用DMA技术

在这里插入图片描述

  • 文件加载到主存处理器就开始执行程序,将字节从主存复制到寄存器文件,再从寄存器文件中复制到显示设备最终显示到屏幕上

在这里插入图片描述

  • 为了解决主存到CPU的速度差问题设计出高速缓存
    在这里插入图片描述
    在这里插入图片描述
  • 其实缓存是相对的,只要快速的都可以作为缓存
  • 程序并没有直接访问键盘、显示器、磁盘或主存,依靠操作系统提供服务
  • 操作系统通过几个基本抽象(进程、虚拟内存、文件)文件是对IO设备的抽象,虚拟内存是对主存和磁盘IO设备的抽象,进程是对处理器、主存、IO设备的抽象
  • 对于CPU而言程序在现代操作系统上运行会造成系统只有这一个程序在运行的假象,进程是操作系统对一个正在运行的程序的一种抽象,一个系统可以运行多个进程,每个进程指令交错执行,处理器在进程之间来回切换需要保存PC和寄存器指令就是上下文切换的开销
  • 操作系统保持跟踪进程运行所需的所有状态信息,这种状态就是上下文,包括许多信息,比如PC和寄存器文件的当前值、主存的内容。
  • 单处理的系统都只能执行一个进程的代码,当操作系统决定要把控制权从当前进程转移到某个进程时就会进行上下文切换,即保存当前进程的上下文,恢复新进程的上下文,将控制权传递到新的进程
  • 从一个进程到另一个进程的转换是由操作系统的内核管理的。内核是操作系统代码常驻主存的部分,当城西需要操作系统的某些操作时比如读写文件,就会执行system call指令将控制权传递给内核,然后内核执行请求返回给应用程序,内核不是一个独立的进程,是系统管理全部进程所用代码和数据结构的集合。
  • 多线程比多进程更容易的共享数据,比进程的执行效率更高效
  • 虚拟内存是一个抽象概念,为每个进程提供了一种假象,每个进程都在独占使用主存,每个进程看到的内存都一致,称为虚拟地址空间。

在这里插入图片描述

  • 文件是字节序列,每个设备等都是文件,通过系统函数调用读写文件
  • 系统之间通过网络通信

在这里插入图片描述

在这里插入图片描述

  • 计算机系统的抽象:

在这里插入图片描述

第二章:信息的表示和处理

  • 计算机的内存是一块巨大的字节数组(虚拟内存)

第三章:程序的机器级表示

  • x86-64是cpu包含一组16个存储64位 值的通用寄存器
  • 寄存器用来存储整数数据和指针

处理器体系结构

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值