I3MUP1+-+Exercise+4.2

=Exercise 4.2 - Parking Lot Control System=

//These are the requirements for the PLCS:// //1. Cars enter the parking lot, stay there for a while, and then exit the parking lot again. Then they wait a// //while before they re-enter the parking lot.// //2. An arriving car must request permission to enter the parking lot from the PLCS entry guard. When// //permission is granted, the car may enter the parking lot.// //3. An exiting car must request permission to exit the parking lot from the PLCS exit guard. When access// //is granted, the car may exit the parking lot.//

Exercise 1:
//Use the Park-a-Lot 2000 example of the recent lecture as an example of how a car may interact with the PLCS entry (or exit) guard to request access to enter (or exit) the parking lot and receive permission to do so.//

Entry og Exit: 1. PLCS venter på en bil. 2. Bil ankommer/kører ud, og venter på at PLCS åbner. 3. PLCS lukker op. 4. Bil kører ind/ud. 5. PLCS lukker.

Exercise 2:
//Implement the PLCS. Test PLCS using a number of cars – make sure that all cars enter and exit the parking lot correctly.//

Vi har valgt at bruge mutex til at danne vores program, og have en mutex der styrer hvem der kører ind og hvem der kører ud. Programmet endte også med at virke, men den havde dog en fejl. Der kom flere biler der ventede, men de kom ikke ind i den rigtige rækkefølge. Det skyldes at når vi signalerede fra vores bil-tråd om at den ventede, så var vi ikke sikker på at entry-tråden tog den oplåste mutex. Der kunne nemlig også være en anden bil tråd som tog fat i mutexen, og derved var der nu to biler som ventede på at døren blev åbnet, og dette kunne selvfølgelig ske flere gange. Men programmet fungerede ellers efter hensigten. Vi havde to tråde til at styre Entry-delen (Parking Lot) og Exit-delen (Parking Lot), samt en tråd til hver bil.



Exercise 3 (Optional):
//We now add a fourth requirement to the PLCS:// //4. The entry guard must not grant permission to access the parking lot until there is actually room for the entering car.//