【操作系统实验】第一次实验

本文介绍了如何使用clang编译C程序,并通过gdb进行调试。在myfork.c的例子中,强调了保存文件的重要性,避免出现对'main'未定义的引用错误。在程序运行过程中,观察到添加lockf函数后,程序的并发执行顺序发生了变化,先是所有子进程执行,然后是所有孙子进程,最后是所有女儿进程执行,揭示了锁在多线程控制中的作用。

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

在这里插入图片描述.c程序的命令行编译:先用clang再用gdb
比如我要运行这个myfork.c,就:

clang myfork.c -o myfork

然后再

gdb myfork

会出来gdb的命令行(开头有括号里的gdb),然后再在(gdb)后面打run就行了

(gdb)run

注意注意一定注意:先保存再命令!!不然会出现这个问题:

在函数‘_start’中: (.text+0x20):对‘main’未定义的引用

第二个运行结果:好长
在这里插入图片描述这张图向上一直是三个重复
在这里插入图片描述这张图三个变2个,child的500个循环结束了
在这里插入图片描述这张图有一段一直是son
在这里插入图片描述这张就是最后一张

给每个部分加上lockf(1,1,0)和lockf(1,0,0)之后的运行结果:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述变成了先运行完全部的child,再运行全部的son,在运行全部的daughter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值