操作系统实验一

实验一: 操作系统初步
-16281271 巫勐

一(系统调用实验)了解系统调用不同的封装形式。

1.11、请问getpid的系统调用号是多少?
-39
1.12、linux系统调用的中断向量号是多少?
-使用了int 80的系统调用

1.13、getpid()直接调用
在这里插入图片描述
在这里插入图片描述
1.14、汇编中断调用
在这里插入图片描述
在这里插入图片描述

1.2上机作业1.13
1.21、c调用
在这里插入图片描述
在这里插入图片描述

1.22汇编调用
在这里插入图片描述
在这里插入图片描述

二 (并发实验)根据以下代码完成下面的实验。
1、编译运行该程序(cpu.c),观察输出结果,说明程序功能。

在这里插入图片描述
在这里插入图片描述

用于输出输入参数(根据判断参数)
2、再次按下面的运行并观察结果:执行命令:./cpu A & ; ./cpu B & ; ./cpu C & ; ./cpu D &程序cpu运行了几次?他们运行的顺序有何特点和规律?请结合操作系统的特征进行解释。
在这里插入图片描述

Cpu运行了四次,并发运行,就是A未完成B就开始进行了导致ABCD轮流出现,交替执行。
三(内存分配实验)根据以下代码完成实验。
1、阅读并编译运行该程序(mem.c),观察输出结果,说明程序功能。(命令: gcc -o mem mem.c –Wall)
在这里插入图片描述

第一次运行
在这里插入图片描述
2、再次按下面的命令运行并观察结果。两个分别运行的程序分配的内存地址是否相同?是否共享同一块物理内存区域?为什么?
第二次运行
在这里插入图片描述
两次地址不一样,不共享同一块物理内存区域。
四、(共享的问题)根据以下代码完成实验。
4.1阅读并编译运行该程序,观察输出结果,说明程序功能。
在这里插入图片描述
在这里插入图片描述
用于计算程序运行次数
4.2尝试其他输入参数并执行,并总结执行结果的有何规律?你能尝试解释它吗?
在这里插入图片描述
输出进程数为参数的两倍。
4.3哪些变量是各个线程共享的,线程并发执行时访问共享变量会不会导致意想不到的问题。
栈、程序计数器、线程ID、条件码等。每个线程和其它的线程一起共享除此之外的进程上下文的剩余部分

每一步代码均已放上。
github链接:https://github.com/warmllll/caozuoxitong

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值