本课程设计通过修改Linux 0.11内核代码,在 Linux 0.11 内核中实现信号量的系统调用,从而实现生产者和消费者问题:通过用户控制取进程和放进程,反应生产者和消费者问题中所涉及的进程的同步与互斥。在分析理解实现信号量机制各个函数功能、数据结构和函数之间的调用关系的基础上,利用信号量机制实现在多个并发程序环境下的生产者—消费者问题,利用 Linux 0.11 内核提供的 sleep_on 函数和 wake_up 函数实现信号量的阻塞与唤醒,并且对上述两种信号量实现方法的结果进行测试和比较。在实现过程中进行总体设计,对算法分模块设计,并分块编写代码进行测试,最后进行程序的测试,在设计思路上严格按照软件工程的思想执行,确保了设计和实现的可行,可信。本课程设计中代码用C语言编写。
2.1功能设计
2.2程序功能模块
2.3功能分析
2.3.1程序流程图
2.3.2 程序主要功能说明
3.1单个生产者和单个消费者的实现
3.2一个生产者和多个消费者的实现
3.3多个生产者和多个消费者的实现
3.4 sleep_on函数和wake_up函数阻塞和唤醒进程的实现
《操作系统》是软件工程专业的核心专业课,《操作系统课程设