第1页共13页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共13页NameofProject:Producer-ConsumerProblemCourseName:OperatingSystemCourseNumber:CSCI330Student’sName:Student’sID:DateofSubmission:Dec20,2011第2页共13页第1页共13页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第2页共13页TableofContentsRequirementofProject……………………………………………………………………………………….3OperatingEnvironment…………………………………………………………..………….………………3PrincipleofProgram………………………………………………………..………….………………………3Structure……………………………………………………………………………………………………………………3FlowChart…………………………………………………………………………………………………………………4CodeoftheProgram……………………………………………………………………………..……………………5ResultsofSimulation…………………………………………………………………………….…………………….8ConsiderableImprovement…………………………………………………………………………………9Conclusion……………………………………………………………………………..……………………………11References……………………………………………………………………………………………..……………12第3页共13页第2页共13页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第3页共13页RequirementofProjectTheproducer-consumerproblemillustratedasthemodelofbounded-buffer,requiresequentialprocessesorthreadsrunningasynchronouslyandpossiblysharingdata.Thereareseveralmethodstosolvethisproblem,andsemaphore,mutex(simplifiedsemaphore)andmonitorarecommonlyusedonthis.Thisprojectrequiresustomakeproducersandconsumers–runningasseparatedthreads,andsemaphoreswithfull,empty,andmutexparameterstosimulatethisprocedure.Inthetextbook,wearesuggestedtousePthreadsorWin32API,however,IdecidedtouseJavatosimulatetheprocedure,becauseJavaisthemostfamiliarlanguagethatwehavelearned.BecauseoftheJavaVirtualMachine(JVM)layer,manystructuresaremadesimpleinJavacomparedtowin32APIandCinUNIXenvironment,andwecansimulatetheproblemwithoutacertainsemaphore.OperatingEnvironmentOS:Windows7,JDK:Java7edition1.7.0_02PrincipleofProgramBecauseofthelimitedJavaprogrammingskills,Icanonlysimulatetheprocedureinthemostsimplifiedway.Onlythreesub-classesareputundertheProducerConsumerClassintheprogram,andonlyonemethodwhichisthenecessarymainvoidmethodinthisClass.Thethreesub-classesarestorage,producerandconsumer,andproducerandconsumerclassesaresetasJavathreads,becausetheyextendlibraryclassofThreadinjava.lang.Objectpackage.Thereareseveralobjectsandmethodsinthesethreesub-classes,andtheyarecarefullydefinedasprivate,publicorsynchronized.Structure:Thefullstructureofwholeprogramisillustratedinthetablebelow.SuperClass:ProducerConsumerWithObject:p1~p7(sevenproducerobjects),c1~c3(threeconsumerobjects)Withmethod:mainSub-class:Godown//storageclassInnervariable:max_size,curnum//thenumberthatthestoragehavecurrentlyInnermethod:produce(int),consume(int)Sub-class:ProducerInnervariable:neednum//numberofproducing第4页共13页第3页共13页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第4页共13页Innermethod:run//inheritfromtheThreadClassinjava.lang.ObjectSub-class:ConsumerInnervariable:neednum//numberofconsumingInnermethod:run//inheritfromtheThreadClassinjava.lang.ObjectFlowChart:Theflowchartofthisprogra...