[Linux笔记]P10

gdb的使用

1、开始gdb调试

  • 输入 gdb [可执行文件名]

2、结束gdb调试

  • 输入quit

3、显示代码

  • 输入l,以默认的方式显示。

  • 输入l 0,表示从第一行开始显示,回车键会执行最近的一条命令,这里是执行l。

4、执行debug程序开始调试

  • 输入run,简写r。

5、给某一行打断点

  • 输入break [行数],break可简写b。

6、查看所有断点

  • 输入 info b,gdb会给每一个断点一个Num编号。

7、去除某一行的断点

  • 输入delete [断点的Num号],delete可简写d。

8、逐过程(相当于VS中的F10)

  • 输入next,next简写n。

9、查看当前位置之前的变量

  • 输入print [变量名],print可简写p。

10、逐语句(相当于VS中的F11)

  • 输入step,step可简写s。

11、查看调用堆栈

  • 输入bt

12、执行完当前函数就停下来

  • 输入finish

13、长显示变量(每一步调试都显示变量的值)

  • 输入display [变量名]

14、取消长显示

  • 输入undisplay [变量对应的编号]

15、跳出循环的办法

  • 输入until [行数],输入循环体之外的行号。

16、跳到下一个断点

  • 输入continue,可简写c。

17、禁用断点

  • 输入disable [断点编号],info b显示所有断点可看到一列Enb,表示断点是否生效。

18、启用断点

  • 输入enable [断点编号]

set var i=100
#直接执行到i==100的地方?

冯诺依曼体系结构

[Linux笔记]P10_第1张图片

存储器:指的就是内存

输入设备:鼠标、键盘、摄像头、话筒、磁盘、网卡

从磁盘里面读数据时,磁盘就是输入设备。

网卡既是输入也是输出。

输出设备:显示器、音响、打印机、磁盘、网卡

写入数据到磁盘时,磁盘就是输出设备。

CPU:运算器和控制器是其中比较大的两个组件

运算器:算术运算、逻辑运算。

控制器:CPU响应外部事件,协调外部就绪事件。

做系统开发时的一些问题可能是需要软硬件结合来解决的。
显卡是输入设备还是输出设备?
控制器的功能不懂,控制器会控制事件的逻辑

1、为什么要有存储器?

  • 处理数据的速度:CPU/寄存器 > 内存 > 磁盘 > 光盘 > 磁带

  • 木桶效应,整个计算机的性能会被效率最低的设备牵制。

  • 存储器的处理速度和CPU/寄存器最接近。

  • 因为存储器的存在,我们可以提前把外设(输入或输出设备)的数据放入存储器当中,之后的CPU读数据时就会直接和内存打交道,木桶效应的短板就不是外设了,而是存储器,从而提高整体效率。

2、CPU读取数据(数据+代码),都要从内存中读取。

  • 暂且这么认为,不排除CPU会访问外设的情况(尤其是将数据拷贝的内存的过程)。

  • 将外设中的数据加载到内存中,是操作系统或者自己的程序给自己加载.

3、数据从输入设备到存储器的过程叫做input,数据从存储器到输出设备的过程叫做output,数据输入和输出的过程称为“IO”。

4、请描述发送qq消息时,数据是如何“流动”的。

发送:输入设备(键盘)>内存>CPU(给数据添加报头)>内存>输出设备(网卡)

接收:输入设备(网卡)>内存(运行在内存的qq就可以读取网卡的数据)>CPU(解析数据报)>内存>输出设备(显示器)

5、请描述通过qq发送文件时,数据是如何“流动”的。

发送:输入设备(磁盘)...

接收: ...输出设备(磁盘)

操作系统

operating system

  • 驱动程序主要对硬件进行操作,提供操作硬件的软件接口。

  • 操作系统有很多和核心模块,上图四个是最具有代表性的。

  • 操作系统要给用户提供一个稳定、安全、简单的执行环境。

1、操作系统如何管理好软硬件资源的?

  • 管理是对被管理对象的数据的管理

  • 计算机管理硬件是通过先描述(struct)再组织(数据结构).

管理者通过被管理者的核心数据进行做决策
管理者和被管理者不直接沟通
管理者如何拿到数据?
管理者如何将决策交付给下层人员
所有的算法离不开结构?

你可能感兴趣的:(linux,运维,服务器)