OS学习笔记-4(清华大学慕课)mooc实验一

C函数调用过程

使用到函数栈,寄存器EBP、ESP(EBP和ESP称为指针寄存器(Pointer Register),主要用于存放堆栈内存储单元的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。)

1.首先将调用call函数的函数的一系列的寄存器信息压入栈中
2.调用call函数
3.将call函数内部局部参数压入栈中
4.弹出call内部参数
5.弹出寄存器信息

GCC内联汇编

原因:
将汇编代码放到C语言中是因为,C语言无法完成所有cpu指令,尤其是特权指令,所以只能用汇编代码实现
主要变化:
原汇编代码=********
C语言中:asm volatile(********);
我们gcc编译器会自动将里面的代码转换好,如字符约定:

  • “a”=%eax
  • “b”=%ebx
  • “c”=%ecx
  • “d”=%edx
  • “S”=%esi
  • “D”=%edi
  • “0”=same as the first

x86的中断源

  1. 外部中断:硬盘,时钟,网卡等
  2. 软件中断:软件执行过程中需要系统调用
  3. 异常:软件执行异常,机器检查出的异常

中断处理过程

  • 每个中断或异常都有个中断服务历程(ISR)与之关联
  • x86环境建立这个关联会使用到一个IDT(中断描述符表)
  • 中断程序会产生一个中断号,中断号会在中断描述符表中找到中断门或陷阱门
  • 基于这个中断门或陷阱门,我们会找到段的选择子和段内偏移(offset)
  • 选择子会去GDT(全局描述符表)里找到一个段描述符里面的Base(基址),这个Base+offset就构成了一个中断服务历程的地址
  • 另外段描述符中还有特权级的描述,如CS
  • 用户态和内核态发生中断都会跳到内核态,如果内核态发生中断跳到内核态,就会使用到内核的栈,并压入原栈的地址

系统调用与中断

  • 系统调用是一个特殊的中断,称之为trap或软中断(软件产生的)
  • 需要指定中断号
  • 需要完成用户态和内核态的转换

如何通过make生成执行文件的过程

使用make V=看make的过程,可以看到它首先会调用gcc,然后编译生成.o文件,然后调用ld,将.o文件生成一个可执行程序bootloader和dd,这个过程取决于一个makefile文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
对于慕课《西安电子科技大学人工智能导论》,以下是一些可能的答案: 人工智能(AI)是计算机科学的一个重要研究领域,它致力于开发能够模拟和实现人类智能的计算机系统。西安电子科技大学的人工智能导论慕课学习者提供了关于该领域的基础知识和相关概念。以下是一些课程内容的答案: 1. 人工智能的概念与历史:人工智能的定义是指计算机系统能够模拟类似于人类智能的行为和决策。它起源于上世纪50年代,而现代人工智能则依赖于强大的计算能力和大数据的支持。 2. 机器学习:机器学习是人工智能的一个重要分支,其通过让计算机学习数据集并从中提取模式和规律来实现任务。常见的机器学习方法包括监督学习、无监督学习和强化学习。 3. 深度学习:深度学习是一种机器学习方法,它通过构建多层神经网络来模拟人脑的处理机制。这种方法在图像和语音识别等领域取得了重大突破。 4. 自然语言处理:自然语言处理是指让计算机理解、处理和生成人类语言的技术。它包括语音识别、文本理解和机器翻译等子领域。 5. 人工智能在各个领域的应用:人工智能已经在诸如医疗健康、交通运输和金融等领域找到广泛应用。例如,它可以辅助医生进行疾病诊断,优化交通路线和预测股票市场走势。 通过学习《西安电子科技大学人工智能导论》慕课学习者可以了解人工智能的基本概念、历史背景和应用领域等方面的知识。这将有助于他们进一步了解人工智能的发展趋势,并为未来的学习和职业发展做好准备。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小怪兽会微笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值