深入理解计算机系统阅读1

深入理解计算机系统阅读

14:50

   

1 计算系统中所有的信息都是由比特来表示

计算系统中所有的信息都是由比特来表示。区分这些数据对象的唯一方法是我们读到这些数据的上下文。在不同的上下文中,同样的字节可以表示为字符串,整数,机器指令。

2 hello.c 字符文本-->机器指令-->打包成exe可执行目标文件

Hello.i

优化被

修改的

文本

Hello.s

汇编文本

链接 Print.o

Hello.c

文本

预处理器

cpp

编译器

ccl

链接器

ld

hello

汇编器

as

Hello.o

可重定位

的目标程序

二进制

可执行的目标程序

   

寄存器

L0

   

   

高速缓存

L1

   

   

高速缓存

L2

   

主存储器DRAM

   

   

本地磁盘

   

分布式文件系统 web服务器

   

   

   

   

   

   

   

   

   

3层架构

应用

   

操作系统

   

处理器 内存 io设备

   

2操作系统有两个基本作用

防止应用滥用硬件

向应用提供简单一致的操作方法

操作系统通过抽象的概念来实现这些

如文件是对io设备的抽象表示

虚拟存储器是对主存和磁盘i/o设备的抽象表示

进程是对处理器主存i/o设备的抽象表示

   

   

3什么是进程

hello 这样的程序在系统上运行时,系统会提供一种假象,就好像系统上只有

这个程序在运行,看上去只有这个程序在使用处理器、主存和 I/O 设备。处理器看上去就像在不

间断地一条接一条地执行程序中的指令,即该程序的代码和数据是系统存储器中唯一的对象。这些假象是通过进程的概念来实现的

 

4什么上下文

CPU 看上去都像是在并发地执行多个进程,这是通过处理器在进程间切

换来实现的。操作系统实现这种交错执行的机制称为上下文切换

操作系统保持跟踪进程运行所需的所有状态信息。这种状态,也就是上下文

它包括许多信息,例如 PC 和寄存器文件的当前值,以及主存的内容。在任何一个时刻,单处理器系统都只能执行一个进程的代码。

Hello.exe

shell

操作系统负责保存并切换上下文

   

等hello.exe执行完毕操作系统切换回shell进程

   

5什么是线程

   

进程是最小的资源单位

线程是最小的执行单位

一个进程实际上可以由

多个称为线程的执行单元组成

每个线程都运行在进程的上下文中,

并共享同样的代码和全局数据

   

   

6虚拟存储器

   

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

存,每个进程看到的是一致的存储器,称为虚拟地址空间

   

虚拟地址空间

   

   

   

内核虚拟存储器

   

用户栈

运行时创建

   

共享库的存储器映射区

   

   

运行堆区

malloc创建数据

   

   

读写数据

   

   

只读代码和数据

   

   

   

   

hello程序加载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值