#!/bin/bash
#!/bin/bash
# Initialize the semaphore and shared variable
declare -i readers_count=0
declare -i resource=0
# Semaphore for readers
declare -i mutex_readers=1
declare -i mutex_writers=1
# Function for readers
reader() {
echo "Reader $1 is reading"
((mutex_readers--))
if ((mutex_readers == 0)); then
((mutex_writers--))
fi
((readers_count++))
((mutex_readers++))
echo "Reader $1 reads: $resource"
((readers_count--))
if ((readers_count == 0)); then
((mutex_writers++))
fi
}
# Function for writers
writer() {
echo "Writer $1 is writing"
((mutex_writers--))
((mutex_readers--))
((resource++))
echo "Writer $1 modifies resource to: $resource"
((mutex_writers++))
((mutex_readers++))
}
# Simulate readers and writers
for i in {1..5}; do
reader "$i" &
writer "$i" &
done
wait
To embed this program on your website, copy the following code and paste it into your website's HTML: