Canister memory consumptions and limitations

Is 4GB of canister memory used for stored data in canister and for runtime processing as well?
For example: I have a map (3.5GB) persisted in canister.

  • Would it be possible to create a local tmp map (1GB of size) while processing query to that canister?
  • What happens if another canister calls that canister with map 1GB of size in call parameter?
  • Are there any limits (in size) for parameters for calls between canisters?