首页
编程语言
数据库
网络开发
Algorithm算法
移动开发
系统相关
金融统计
人工智能
其他
首页
>
> 详细
辅导program编程,辅导java,python程序
Homework 1
This assignment must be doneindividually
Date Due: Feb 6, 2023
The objectives of this assignment are the following: Acquire familiarity with using POSIX thread management primitives. How to write POSIX thread programs and communicate through shared memory. Read the manualpages for the LINUX primitives for creating shared memory between two LINUX processes. These functions are -- shmget and shmat. For sample programs on how to use the POSIX thread library and its shared memory management, you can use Google to search for "POSIX Thread Programming Examples".
Problem Statement:
In this assignment you will write a POSIX program. Consider a system comprising of three producer threads,one consumer thread, and a shared buffer of size 2. Eachproducer thread randomly (over time) creates a specific colored item: producer_red creates red colored items, producer_black creates black colored items, and producer_white creates white-colored items. Associated with each item created by a specific producer is a local LINUX timestamp in microseconds (use the gettimeofday() function) which records the time that item was placed into the buffer. Each producer deposits its item into the buffer, and the consumer retrieves the items from the buffer. The items produced by the producers will be of any of the three strings below:
“RED timestamp”, “BLACK timestamp”, “WHITEtimestamp”
Each producer threads, after successfully depositing an item into the buffer, will write that item (essentially the “COLOR timestamp” string) into its log file called Producer_COLOR.txt (e.g. Producer_RED.txt). Theconsumer thread will then retrieve the items from this shared buffer. When it retrieves an item, the consumer thread will write that item (essentially the “COLOR timestamp” string) into a file called Consumer.txt.
Requirements for the program:
1. Each producer thread will produce its respective colored item (represented as a string “COLOR timestamp”). If the producer thread finds the shared buffer has space, it will first create a timestamp for that item. The producer threadwill then write the item into its log file (Producer_COLOR.txt) and also deposit the item into the buffer. If the buffer does not have space, the producer willhave to wait. Each string (or item) written into the log file will be on a new line.
2. The consumer thread will take an item from the buffer, and write its contents to Consumer.txt file. Each stringshould be written in the order it was read from the buffer, and in a new line. If the buffer was initially full, the consumer thread should signal any one of the producer threades.
1
3. Each producer thread should produce 1000 items.Hence at the end of running the program, the consumer should have written 3000 items into its log file.
Extra Guidelines:
• One of the objectives of this assignment is to implement counting semaphores using POSIXmutex and condition variables. Hence, you cannot use semaphore.h (which is part of the 3RT library) or any other counting semaphore library.
You can only use the following.h files: #include
#include
#include
#include
#include
#include
//for gettimeofday()
To do tasks: Write the code for this system as a singleLINUX process containing four POSIX threads. The functions of each producer and consumer should be performed by one separate POSIX thread.
1.) In your program, define a semaphore struct (whichwould obviously have a counter, a pthread_mutex, and a pthread_condition variable).
2.) Define signal() and wait() methods which will be usedon the semaphores.
3.) Your main() program can create and initialize the required semaphores. It will then spawn 4 threads,which will perform their functions as specified in the homework. The threads will obviously have to use the implemented signal() and wait() methods to perform semaphore operations.
Items to be submitted in a LINUX tar file:
(1) Code for your program. This should be in a file named prod_cons.c.
(2) A makefile used to compile your code
(3) A Readme.txt file with instructions on how to run your program
联系我们
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-21:00
微信:codinghelp
热点文章
更多
辅导 coms w4172、讲解 c/c++设...
2025-05-12
辅导 program、讲解 java/pyth...
2025-05-12
辅导 econ 214: intermediate ...
2025-05-12
讲解 cosc3000 visualisation ...
2025-05-12
讲解 cosc3000 - visualizatio...
2025-05-12
讲解 emet4314/8014 advanced ...
2025-05-12
讲解 math3014-6027 design (a...
2025-05-12
辅导 econ 214: intermediate ...
2025-05-12
辅导 chin7996 capstone exper...
2025-05-12
辅导 comp3027 algorithm desi...
2025-05-12
讲解 math3014-6027 design of...
2025-05-12
讲解 eco310 – econometrics ...
2025-05-12
讲解 cosc3000 project report...
2025-05-12
讲解 autotutorial 3 microsof...
2025-05-12
辅导 dc4012-b web design 1讲...
2025-05-12
辅导 pls 021 spring 2025 hom...
2025-05-12
辅导 cmt216 computer and net...
2025-05-12
辅导 econ 3023 international...
2025-05-12
辅导 econ20532/30532 macroec...
2025-05-12
讲解 statistical learning (s...
2025-05-12
热点标签
mktg2509
csci 2600
38170
lng302
csse3010
phas3226
77938
arch1162
engn4536/engn6536
acx5903
comp151101
phl245
cse12
comp9312
stat3016/6016
phas0038
comp2140
6qqmb312
xjco3011
rest0005
ematm0051
5qqmn219
lubs5062m
eee8155
cege0100
eap033
artd1109
mat246
etc3430
ecmm462
mis102
inft6800
ddes9903
comp6521
comp9517
comp3331/9331
comp4337
comp6008
comp9414
bu.231.790.81
man00150m
csb352h
math1041
eengm4100
isys1002
08
6057cem
mktg3504
mthm036
mtrx1701
mth3241
eeee3086
cmp-7038b
cmp-7000a
ints4010
econ2151
infs5710
fins5516
fin3309
fins5510
gsoe9340
math2007
math2036
soee5010
mark3088
infs3605
elec9714
comp2271
ma214
comp2211
infs3604
600426
sit254
acct3091
bbt405
msin0116
com107/com113
mark5826
sit120
comp9021
eco2101
eeen40700
cs253
ece3114
ecmm447
chns3000
math377
itd102
comp9444
comp(2041|9044)
econ0060
econ7230
mgt001371
ecs-323
cs6250
mgdi60012
mdia2012
comm221001
comm5000
ma1008
engl642
econ241
com333
math367
mis201
nbs-7041x
meek16104
econ2003
comm1190
mbas902
comp-1027
dpst1091
comp7315
eppd1033
m06
ee3025
msci231
bb113/bbs1063
fc709
comp3425
comp9417
econ42915
cb9101
math1102e
chme0017
fc307
mkt60104
5522usst
litr1-uc6201.200
ee1102
cosc2803
math39512
omp9727
int2067/int5051
bsb151
mgt253
fc021
babs2202
mis2002s
phya21
18-213
cege0012
mdia1002
math38032
mech5125
07
cisc102
mgx3110
cs240
11175
fin3020s
eco3420
ictten622
comp9727
cpt111
de114102d
mgm320h5s
bafi1019
math21112
efim20036
mn-3503
fins5568
110.807
bcpm000028
info6030
bma0092
bcpm0054
math20212
ce335
cs365
cenv6141
ftec5580
math2010
ec3450
comm1170
ecmt1010
csci-ua.0480-003
econ12-200
ib3960
ectb60h3f
cs247—assignment
tk3163
ics3u
ib3j80
comp20008
comp9334
eppd1063
acct2343
cct109
isys1055/3412
math350-real
math2014
eec180
stat141b
econ2101
msinm014/msing014/msing014b
fit2004
comp643
bu1002
cm2030
联系我们
- QQ: 99515681 微信:codinghelp
© 2024
www.7daixie.com
站长地图
程序辅导网!