2021-01-17深入理解计算机操作系统笔记(第一章)

第一章

1. 从.c程序到生成可执行文件的过程

在这里插入图片描述
(1)预处理阶段:该阶段主要完成的是修改源程序。预编译器读取系统文件#include<>里面的内容并且直接插入到源程序文本中,得到的是另一个.c程序,通常以.i结尾。
(2)编译阶段:编译器(ccl)将.i文本文件翻译为.s文本文件。将C程序翻译汇编程序
(3)汇编阶段汇编器(as)将.s文件翻译为机器语言指令,把指令打包成可重定位目标程序,将结果保存在.o文件中。(.o文件此时已是二进制文件)
(4)链接阶段:程序调用的库函数已经单独预编译为.o文件。该阶段链接器(ld)需要完成的是将所有相关的.o文件通过特定方式合并起来,生成可执行文件。

2. ./hello的执行过程

(1)shell程序对 ./hello 命令的读取:
在这里插入图片描述该过程实际上是一个系统I/O操作,像键盘这样的低速字符设备通常是不采用DMA进行I/O操作而采用中断I/O方式,中断I/O方式需要处理器的密切支持的。因此./hello 的读入操作需要CPU内部寄存器的支持。具体操作是shell程序通过系统调用将命令注意读入寄存器,然后再由寄存器通过总线将“hello”存到主存中。当输入回车时,shell程序便将hello对应的可执行程序从磁盘复制进主存。(实际实现中此处对可执行程序要进行相应的地址变换)
(2)可执行文件的装入:可执行文件在没有指令执行时通常放在磁盘中,hello这个可执行文件被执行时需要将其从磁盘复制进主存,然后cpu才可对其进行读取。可执行文件从外存放入主存的过程称为装入。磁盘到内存的数据传输通常使用的是DMA存取方式,具体过程如下:
在这里插入图片描述 * DMA可形象的理解为CPU的秘书,CPU只需告诉DMA数据在外存的哪个区域、数据在内存的地址、向DMA发出命令(读还是写),DMA便可直接完成外存到内存的数据传输,数据I/O开始由CPU发号施令,数据I/O结束由DMA请求中断,由CPU处理现场,其余时间CPU无需干预。DMA进一步解放了CPU,实现了CPU与I/O的并行工作。*
(3)可执行文件的执行:可执行文件装入内存后CPU便可对可执行文件进行读取(CPU无法直接读取外存中的数据)。可执行文件存储的是翻译后的机器语言指令,CPU执行其中的每条机器语言指令。
在这里插入图片描述

3.进程、线程的概念和区别;并发并行的区别;

 此部分os教材中有详细的介绍

4.多核处理器的组织结构

在这里插入图片描述 在多核处理器系统中,通常一块CPU内部有多个核心(多处理机);每个核都有自己私有的 L1 Cache 和 L2 Cache,L3 Cache是所有核心共享的。L1 Cache分为数据Cache和指令Cache。

5.超线程技术

超线程技术在现在已被广泛采用,超线程的使用很大程度上提高了CPU的利用率。**超线程是一项允许一个CPU执行多个控制流的技术。它涉及CPU的某些硬件有多个备份(如程序计数器和寄存器),其他硬件仅有一份(比如浮点算数运算单元)。**常规的线程切换需要20000个时钟周期,而超线程处理器可以在单个周期的基础上决定要执行哪一个线程(主要得益于PC以及寄存器的备份)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值