硬件组成
- 总线
- I/O设备
键盘,鼠标,显示器,磁盘... - 主存
- 处理器(CPU)
- 寄存器
hello程序的生命周期
- 源文件
hello.c
- 文本文件:位序列
- 字节:8个位为一组
- ASCII码
- 可执行目标文件
- Unix:通过编译器驱动程序完成
- 编译系统
- 预处理器
‘#’,hello.i
- 编译器
‘main’,hello.s
- 汇编器
翻译成机器语言指令,打包成可重定位目标程序,hello.o
- 链接器
‘printf’,得到可执行文件hello
,存放在磁盘中
- 预处理器
- 运行
hello
程序-
键入
./hello
回车,文件从磁盘复制到主存(DMA技术)
-
开始执行程序中的机器语言指令,将字符串从主存复制到寄存器,再复制到显示设备
-
高速缓存(不懂)
操作系统管理硬件
-
功能
- 防止滥用硬件
- 提供简单一致的机制来控制多种硬件
-
进程
- 并发运行:多个进程指令交错执行
- 上下文:跟踪进程运行所需的状态信息
- 内核:管理全部进程所用代码和数据的集合
-
线程
- 一个进程可以由多个线程组成
- 每个线程运行在进程的上下文中
-
虚拟内存
-
网络
通过系统连接
-
重要主题
- 性能提升
- 并发和并行
- 抽象的重要性