Ignore:
Timestamp:
06/06/14 10:48:32 (11 years ago)
Author:
wojtekp
Message:
 
Location:
DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/resources
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/resources/LocalResourceManager.java

    r1374 r1377  
    2929import schedframe.resources.units.StandardResourceUnitName; 
    3030import schedframe.scheduling.Scheduler; 
    31 import schedframe.scheduling.plugin.local.ResourceAllocation; 
    3231 
    3332 
     
    297296        } 
    298297         
    299         public boolean allocateResources(Map<ResourceUnitName, ResourceUnit> resources) { 
     298 
     299        public boolean allocateResources(Map<ResourceUnitName, ResourceUnit> resources, boolean exclusive) { 
    300300                 
    301301                if (resources == null) { 
     
    303303                } 
    304304                 
    305                 for(ResourceUnitName resUnitName: resources.keySet()){ 
    306                         ResourceUnit resUnit = resources.get(resUnitName); 
    307                         resUnit.getProvisioner().setState(ResourceUnitState.BUSY); 
    308                 } 
    309                 return true; 
    310         } 
    311  
    312  
    313         public void freeResources(Map<ResourceUnitName, ResourceUnit> resources) { 
     305                if(exclusive){ 
     306                        for(ResourceUnitName resUnitName: resources.keySet()){ 
     307                                ResourceUnit resUnit = resources.get(resUnitName); 
     308                                if(resUnit.getName().getName().equals(StandardResourceUnitName.PE.getName())){ 
     309                                        ProcessingElements pe = (ProcessingElements)resUnit; 
     310                                        for(ComputingResource cr: pe){ 
     311                                                if(cr.getStatus().equals(ResourceStatus.BUSY)){ 
     312                                                        return false; 
     313                                                } 
     314                                        } 
     315                                } 
     316                                resUnit.getProvisioner().setState(ResourceUnitState.BUSY); 
     317                        } 
     318                         
     319                        return true; 
     320                } else { 
     321                        for(ResourceUnitName resUnitName: resources.keySet()){ 
     322                                ResourceUnit resUnit = resources.get(resUnitName); 
     323                                resUnit.getProvisioner().setState(ResourceUnitState.BUSY); 
     324                        } 
     325                        return true;     
     326                } 
     327        } 
     328 
     329        public void freeResources(Map<ResourceUnitName, ResourceUnit> resources, boolean exclusive) { 
    314330                 
    315331                for(ResourceUnitName resUnitName: resources.keySet()){ 
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/resources/ResourceAllocation.java

    r477 r1377  
    11package schedframe.scheduling.manager.resources; 
    22 
    3 import java.util.List; 
     3import java.util.Map; 
    44 
    5 import schedframe.resources.computing.ComputingResource; 
     5import schedframe.resources.units.ResourceUnit; 
     6import schedframe.resources.units.ResourceUnitName; 
    67 
    78public interface ResourceAllocation { 
    8         public void allocateResources(List<ComputingResource> resources); 
     9         
     10        /** 
     11         * Allocates resource units( marks as used) on the basis of given resource 
     12         * units. 
     13         *  
     14         * @param freeRes 
     15         *            resource units to be consumed 
     16         * @param exclusive 
     17         *           allocate resources in exclusive mode 
     18         */ 
     19        public boolean allocateResources(Map<ResourceUnitName, ResourceUnit> freeRes, boolean exclusive); 
    920 
     21        /** 
     22         * Frees given resource units. 
     23         *  
     24         * @param lastUsedResources 
     25         *            resource units to be free 
     26         * @param exclusive 
     27         *            free resources allocated in exclusive mode 
     28         */ 
     29        public void freeResources(Map<ResourceUnitName, ResourceUnit> lastUsedResources, boolean exclusive); 
    1030 
    11         public void freeResources(List<ComputingResource> resources); 
    1231         
    1332} 
Note: See TracChangeset for help on using the changeset viewer.