操作系统实验:系统调用与并发执行探究

需积分: 0 0 下载量 29 浏览量 更新于2024-08-05 收藏 560KB PDF 举报
"操作系统初步实验,包括系统调用、并发及内存分配的学习与实践" 在本次实验中,我们主要探讨了操作系统中的三个关键概念:系统调用、进程并发以及内存分配。 首先,关于系统调用,实验涉及了两种调用方式:通过API接口函数和直接使用汇编中断。以Linux系统为例,实验中提到了`getpid()`系统调用,其调用号为20,对应的中断向量号是0x80。系统调用是用户空间程序与内核交互的主要途径,通常在用户态切换到核心态执行。对比API接口调用,汇编中断调用更为底层,直接触发硬件中断进入内核。 实验要求阅读Pintos操作系统的源代码,并绘制系统调用的实现流程图。Pintos是一个小型的开源操作系统,用于教学目的,它可以帮助理解系统调用的完整过程,从用户态到核心态的切换,再到执行实际的系统服务,最后返回用户态。 其次,实验涉及了并发概念。通过编译运行`cpu.c`程序,我们观察到进程并发执行的效果。在执行`./cpuA&;./cpuB&;./cpuC&;./cpuD&`命令后,四个进程并发运行,输出顺序随机,这体现了操作系统的多道批处理和多核处理器的特性。由于CPU的调度是不确定的,各进程可能会在任意时刻获得执行机会,因此呈现出无特定顺序的运行现象。 最后,实验考察了内存分配。虽然未给出具体代码,但通常这类实验会涉及到动态内存分配函数,如`malloc()`和`free()`。学生需要理解如何申请、使用和释放内存,以及可能出现的问题,如内存泄漏。 通过这些实验,学生能深入理解操作系统的基本机制,包括如何与内核交互,进程如何并发执行,以及内存管理的重要性。这些知识对于进一步学习操作系统原理和进行系统级编程至关重要。