Skip to content

Memory budget ignores Memory_Size on system and virtual processors and related issues #2169

@philip-alldredge

Description

@philip-alldredge

Summary

I'm trying to perform memory budget analysis for a system. The system consists of a physical execution platform, a virtual machine, and an application. The application is bound to the virtual machine and the virtual machine is bound to physical processors. The AADL standard allows the Memory_Size property to be used on processors, virtual machines, and systems. I'd like to use it on a virtual processor representing the virtual machine to represent the total memory that is available for use by applications running on the VM. On the physical side, i'd like to bind to a system that represents that hardware and has Memory_Size set to the total memory provided.

Expected and Current Behavior

After creating such a model, I expect the memory budget analysis would produce results based on the specified property values.

However, the bound resource analysis plugin produces a message No Memory with Memory_Size or RAMCapacity or ROMCapacity. While that is somewhat clear it is expected that it would support Memory_Size for virtual processors and other cases as well. The unbound analysis does not include memory at all.

Lastly, I would expect to be allowed to specify a RAMBudget and ROMBudget for the virtual processor to express how much memory is is estimated to require. The amount of memory provided by a virtual processor may not be the same as the amount it provides to which it is bound.

Steps to Reproduce

Run bound and/or unbound resource budget analysis on the provided model.

package test_memory_budget
public
	with SEI;

	system system_to_analyze
	end system_to_analyze;
	
	system implementation system_to_analyze.impl
	subcomponents
		hw: system hardware.impl;
		sw: system software.impl;	
	properties
		Actual_Processor_Binding => (reference(hw.core1), reference(hw.core2)) applies to sw.vm;
		Actual_Memory_Binding => (reference(hw)) applies to sw.vm;		
	end system_to_analyze.impl;
	
	system hardware
	end hardware;

	system implementation hardware.impl
		subcomponents
			core1: processor;
			core2: processor;
		properties
			Memory_Size => 4 GByte;
	end hardware.impl;

	system software
	end software;

	system implementation software.impl
		subcomponents
			vm: virtual processor {Memory_Size => 1 GByte;};
			application: process {SEI::RAMBudget => 10.0 MByte; };
		properties
			Actual_Processor_Binding => (reference (vm)) applies to application;
			Actual_Memory_Binding => (reference (vm)) applies to application;
	end software.impl;
end test_memory_budget;

Environment

  • OSATE Version: 2.6.1
  • Operating System: Windows 10

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions