Phillip Heer has a gas station with one pump and one hose. Cars can fill up, one at a time, on either side depending on which side of the car their gas cap is. Phillip's gas station starts the day open with supply liters of fuel. Each car fills up with x litres of gas, or whatever is left in supply, whichever is less. If a car arrives and the station is closed, the car departs immediately. If the station is open and the pump is not in use, the car can fill up immediately. If the station is open but the pump is in use, the car waits on either the left side or the right side (depending where its gas cap is). When a car finishes filling up, it should wake up a waiting car and that car will fill up next. If there are cars waiting on both sides, it should wake up one on the opposite side to it. If it has emptied the supply, it should close the station and wake up all of the waiting cars. Cars: have a side (right or left) for lining up on, • require x litres of gas, and • invoke pumpGas( litres ), which decrements supply, to fill up. Write pseudocode that implements the car's behaviour. The variables below are provided. You may use whichever of these variables vou need and may add others if needed

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question
Phillip Heer has a gas station with one pump and one hose. Cars can fill up, one at a time, on either side depending
on which side of the car their gas cap is. Phillip's gas station starts the day open with supply liters of fuel. Each car
fills up with x litres of gas, or whatever is left in supply, whichever is less. If a car arrives and the station is closed,
the car departs immediately. If the station is open and the pump is not in use, the car can fill up immediately. If
the station is open but the pump is in use, the car waits on either the left side or the right side (depending where
its gas cap is). When a car finishes filling up, it should wake up a waiting car and that car will fill up next. If there
are cars waiting on both sides, it should wake up one on the opposite side to it. If it has emptied the supply, it
should close the station and wake up all of the waiting cars. Cars:
• have a side (right or left) for lining up on,
require x litres of gas, and
• invoke pumpGas( litres ), which decrements supply, to fill up.
Write pseudocode that implements the car's behaviour. The variables below are provided. You may use whichever
of these variables you need and may add others if needed.
integer supply = SUPPLY
semaphore mutex = 1
boolean open = true
boolean inUse = false
semaphore waitLeft = 0
semaphore waitRight = 0
integer numwaitingLeft = 0
integer numWaitingRight = 0
Transcribed Image Text:Phillip Heer has a gas station with one pump and one hose. Cars can fill up, one at a time, on either side depending on which side of the car their gas cap is. Phillip's gas station starts the day open with supply liters of fuel. Each car fills up with x litres of gas, or whatever is left in supply, whichever is less. If a car arrives and the station is closed, the car departs immediately. If the station is open and the pump is not in use, the car can fill up immediately. If the station is open but the pump is in use, the car waits on either the left side or the right side (depending where its gas cap is). When a car finishes filling up, it should wake up a waiting car and that car will fill up next. If there are cars waiting on both sides, it should wake up one on the opposite side to it. If it has emptied the supply, it should close the station and wake up all of the waiting cars. Cars: • have a side (right or left) for lining up on, require x litres of gas, and • invoke pumpGas( litres ), which decrements supply, to fill up. Write pseudocode that implements the car's behaviour. The variables below are provided. You may use whichever of these variables you need and may add others if needed. integer supply = SUPPLY semaphore mutex = 1 boolean open = true boolean inUse = false semaphore waitLeft = 0 semaphore waitRight = 0 integer numwaitingLeft = 0 integer numWaitingRight = 0
Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY