【nachos】山东大学操作系统课设实验nachos系统(1):线程初探

本文详细介绍了在 Nachos 操作系统中进行线程实验的过程,包括线程的创建、上下文切换函数SWITCH和ThreadRoot的执行分析。通过GDB调试,探讨了中断启用函数、线程对象地址、线程在SWITCH后的返回地址等关键点,揭示了线程如何在SimpleThread和ThreadFinish之间交替执行直至结束。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验内容:
下载并编译nachos之后(注意只能在32位linux下成功编译)
1. 跟踪执行nachos之后,观察以下函数的执行
(a) 上下文切换函数 SWITCH()
(b) 函数 ThreadRoot()

  1. 使用gdb运行nachos,回答一下问题:
    (a) 在你的nachos中,以下函数的地址是什么:
    1
    i. InterruptEnable()
    ii. SimpleThread()
    iii. ThreadFinish()
    iv. ThreadRoot()
    并描述你怎样找到他们的地址的.
    (b) 以下线程对象的地址是什么?
    i. main thread
    ii. 被主线程创造的forked thread
    并描述怎么找到他们的
    (c) 主线程第一次执行到SWITCH函数的时候,它执行到最后一条语句ret后,返回给cpu的地址是什么?这个地址在程序中指向什么?
    (d) 子线程第一次执行到SWITCH函数的时候,它执行到最后一条语句ret后,返回给cpu的地址是什么?这个地址在程序中指向什么?

实验步骤与内容:
1、在threads目录下使用make命令编译
2、用gdb nachos命令开启调试
3、查看源代码的执行,熟悉执行流程
4、程序自main函数开始执行,在Initialize函数中,初始化了main线程的 对象。继续执行执行ThreadTest函数后打印出内容

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值