Opdrachtplanning
Opdrachtplanning
Opdrachten kunnen vanaf meerdere contexten naar de TBS worden verzonden. Een fysieke TPM kan echter slechts één opdracht tegelijk verwerken en sommige opdrachten kunnen gedurende een aanzienlijke periode worden uitgevoerd. Wanneer er meerdere opdrachten in behandeling zijn, bepaalt de TBS welke opdracht naar de TPM moet worden verzonden. Wanneer een opdracht wordt verzonden, heeft elke opdracht een prioriteit eraan gekoppeld. De TBS gebruikt deze prioriteiten om te bepalen welke opdracht in behandeling moet worden verzonden wanneer de TPM gratis is. De vier prioriteitsniveaus zijn laag, normaal, hoog en systeem. Toepassingen moeten lage, normale of hoge prioriteit gebruiken. Hoewel opdrachten met hoge prioriteit meestal worden uitgevoerd vóór opdrachten met lage prioriteit, heeft de TBS-opdrachtplanner een verouderingsbeleid dat uiteindelijk zeer hoge prioriteit geeft aan opdrachten die gedurende aanzienlijke tijd zijn geblokkeerd.
Contextbeheer
Wanneer een opdracht TPM_SaveContext of TPM2 ContextSave wordt verzonden met een virtuele ingang naar een resource die door de TBS wordt beheerd, voert de TBS de juiste opdracht uit op de fysieke resource en wordt het resultaat geretourneerd aan de aanroeper als de resource fysiek aanwezig is in de TPM. Als de resource niet fysiek aanwezig is in de TPM, zorgt de voorverwerking van de TPM_SaveContext of TPM2_ContextSave opdracht ervoor dat de resource opnieuw wordt geladen, waarna de context wordt opgeslagen en naar de aanroeper wordt geretourneerd. Als de resource die wordt opgeslagen, van een type is dat normaal gesproken automatisch wordt leeggemaakt vanaf de TPM nadat deze is opgeslagen, wordt de virtuele resource ongeldig door de TBS na voltooiing van deze opdracht. Wanneer een TPM_LoadContext of TPM2_ContextLoad opdracht wordt verzonden naar de TBS, voert de TBS de opdracht onmiddellijk uit. Als de opdracht is voltooid, virtualiseert de TBS de resource-handle en geeft de resulterende TPM-bytestroom door aan de aanroeper. Wanneer een TPM_FlushSpecific of TPM2_FlushContext opdracht wordt verzonden met een virtuele ingang naar een resource die door de TBS wordt beheerd, voert de TBS een TPM_FlushSpecific of TPM2_FlushContext opdracht uit om de resource uit de TPM te verwijderen als deze fysiek aanwezig is. In dit geval wordt de virtuele resource ongeldig gemaakt door de TBS en wordt het resultaat van de flush-opdracht aan de aanroeper geretourneerd. Als de resource niet fysiek aanwezig is in de TPM, wordt de resource die overeenkomt met de virtuele ingang geladen door de voorverwerking van de TPM_FlushSpecific of TPM2_FlushContext opdracht, maar wordt deze vervolgens leeggemaakt wanneer de opdracht daadwerkelijk wordt verwerkt. De TBS biedt geen ondersteuning voor het TPM_KeyControlOwner-bit of de keepHandle-functionaliteit van de TPM_LoadContext-bewerking, waardoor een resource niet hetzelfde handle zal krijgen als voordat de context werd opgeslagen.
Andere opdrachten
Opdrachten die niet in deze documentatie worden vermeld, worden verwerkt door virtuele-sleutelgrepen te vervangen door fysieke sleutelingangen (indien nodig) en deze naar de TPM te verzenden. Dit wordt gedaan nadat u de juiste bewerkingen hebt uitgevoerd om ervoor te zorgen dat resources die worden gebruikt fysiek aanwezig zijn op de TPM. Er wordt geen extra speciale verwerking uitgevoerd. De TBS probeert de betrouwbaarheid van de virtualisatie niet te verbeteren door gegevens die zijn doorgegeven vanuit de TPM te wijzigen als onderdeel van een TPM_GetCapabilities- of TPM2_GetCapability-query. De TBS ondersteunt ook TCG Physical Presence-opdrachten. De TBS fungeert als doorgeefluik voor opdrachten voor fysieke aanwezigheid; er wordt geen speciale verwerking uitgevoerd door de TBS zelf.
Opruimen
Wanneer een context wordt afgesloten, worden alle fysieke en virtuele resources die eraan zijn gekoppeld opgeschoond, zodat ze geen systeembronnen meer verbruiken.