操作系统课程设计说明书--基于Linux的实现进程的信号量互斥申请.docx
《操作系统课程设计说明书--基于Linux的实现进程的信号量互斥申请.docx》由会员分享,可在线阅读,更多相关《操作系统课程设计说明书--基于Linux的实现进程的信号量互斥申请.docx(8页珍藏版)》请在第一文库网上搜索。
1、操作系统课程设计说明书学院、系:软件学院专业:软件工程设计题目:基于1inUX的实现进程的信号量互斥申请1需求分析我们的题目是:基于IirIUX的进程同步与模拟实验,首先,我们将系统分为三个大得模块:进程操作模块,生产者消费者模块,银行家算法模拟模块。对于进程操作模块,我们要手动的创建几个进程,并且输入其运行时间,这些都是在终端下完成,通过一定的算法,在屏幕上输出,进程的相关信息,比如名称、执行时间和等待时间等。对于生产者消费者模块,我们要创建几个生产者、几个消费者,通过IinUX中的信号量Se1nj创建三个信号量:1. empty(表示空缓冲区的信号量)2. fu11(表示满缓冲区的信号量)
2、3. mutex(互斥信号量,控制在同一时刻只能有一个进程访问缓冲区)对于银行家算法的模拟,我们通过设计:1 .资源向量:Avai1ab1e(代表资源的空闲个数)2 .最大需求矩阵MaX(这是个n*m的矩阵,表示一个进程对各类资源的最大需求个数)3 .分配矩阵AI1OCatiOn(这是个n*m的矩阵,表示各类资源已经分配给进程的个数)4 .需求矩阵Need(这是个n*m的矩阵,它定义里系统中各个进程还需要的资源个数)5 .设计思路:(1) 如果ReqUeSti=Needi则转向,否则不能分配;(2) 如果ReqUeSti银行家算法生产者消费退出系统安全性检查输出安全序列创建生产者创建消费者显示
3、缓冲区(3)模块说明:(1)进程操作模块:创建进程手动创建进程,输入进程id和运行时间输出函数在终端显示进程运行的相关信息,运行时间、及等待时间时间轮转函数根据随机产生的优先权,分别运行和阻塞进程(2)银行家算法模块输入请求进程及资源手动输入进程id及请求的资源数目。安全检查函数对请求的资源进行安全性检查,如果不安全,则返回错误Request函数对请求的资源进行检查,如果符合系统要求,则进行安全性检查输出函数如果安全则输出安全序列,(3)生产者消费者创建生产者手动的输入生产者的个数和名字创建消费者手动的输入消费者的个数和名字输出缓冲区信息动态的显示缓冲区中生产的产品生产和消费产品生产者生产一个
4、产品,当离开缓冲区的时候,消费者消费一个产品3,详细设计标题输出函数voidprint1()(printf(-);printf(z,pidnamestatustypepriorestota1TimecountrunTimenz,);)进程PCB的输出voidprint2(PCB*q)(printfC%d%-4s%-4d%-6d1%-4d%-4d%-8d%-5d%-dn,z,q-pid,q-name,q-status,q-type,q-prio,q-res,q-tota1Time,q-count,q-runTime);输出函数voidprint()if(run!=NU11)如果运行指针不空pri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计 说明书 基于 Linux 实现 进程 信号量 申请