Draw It or Lose It memory management relies on two known constants: the size of each necessary image is 8 megabytes, and only one image is being used at any one time. Because of this, one can deduce that the client-side application only needs as much memory space to store the current image. Additionally, a smaller amount of memory will be required for image-related data, such as how much of it should be revealed. Since the size of the biggest component of this data is known and the additional component can be reasonably estimated, memory for it can be assigned at load time (Silberschatz, et al., 2008). This block of memory will also be cleared out after each round, thus preventing internal fragmentation (Silberschatz, et al., 2008). As the game relies on relatively fast reactions as players compete to guess the image first, ensuring that the image is completely loaded into memory and can be accessed quickly and reliably is crucial.
The server-side database requires 1600MB of storage space for the existing images, though if new ones are ever added, this space will have to be expanded. On the client side, since it is known that a game lasts 4 rounds, each with one image, a minimum of 32 megabytes of storage space will be required per game. This storage can be implemented as a single archive file for convenience (Silberschatz, et al., 2008). An important consideration is whether the client should only download images for the current game, keep the ones already downloaded for possible reuse in a later game, or permanently store all the possible images. In any case, speed of access is not a priority in this application due to the relatively small file size and the time allowed by breaks between rounds.
Overall, memory management considerations focus on short-term resource storage where access speed and reliability are prioritized. Due to the game’s short duration, fragmentation does not become an issue as memory is only assigned for a single launch of the client application. Conversely, storage considerations focus on medium and long-term storage of resources. At this scale, speed of access is less of a concern than consistency, efficiency, and the possibility of expansion as the game’s image database grows.
Reference
Silberschatz, A., Galvin, P. B., & Gagne, G. (2008). Operating system concepts (8th ed). Wiley.