Threads
9/8/2008
Um segmento é um caminho de execução em um processo.
Cada tempo de OS cria um processo, ele também cria at least um segmento para dar o processo tantos tempo de CPU como possíveis.
De exemplo, em muitos aplicativos, é útil criar um separar segmento para impressão identificador tarefas isso que o usuário pode continuar a usar o aplicativo enquanto ele está impressão.
Cada segmento compartilha todos os recursos do processo, incluindo suas espaço de endereço.
Cada segmento possui uma pilha. O vinculador, /STACK, define o tamanho pilha para todos os segmentos que são criados em um processo. Um individual segmento pode definir seu próprio tamanho pilha por chamado CreateThread e usando o parâmetro STACK_SIZE_PARAM_IS_A_RESERVATION.
Um segmento também contém o estado dos registradores CPU, conhecidos como o contexto e uma entrada na lista do agendador de sistema.
Use a função GetThreadContext para obter o contexto segmento e a função SetThreadContext para definir o contexto segmento.
Cada segmento em um processo é executado de forma independente. A menos que você tornar os segmentos visível para si, eles são insensíveis os outros segmentos em um processo.
Segmentos que comum compartilhar recursos devem ser sincronizado.
Um aplicativo é iniciado quando o agendador sistema oferece um controle seu segmentos. O agendador sistema determina quais segmentos para executar e quando eles devem executar. Segmentos de prioridade inferior talvez precise aguardar enquanto prioridade mais alta segmentos completo suas tarefas.
Segmentos podem estar em um do seguinte estados:
- Executando
- Suspenso
- Aguardando
- Bloqueado
- Finalizada
Quando todos os segmentos estão no estado bloqueado, Windows Embedded CE insere ocioso modo, que interrompe a CPU de desempenhando instruções e consumindo energia.
A partir ocioso modo, você pode alternar para suspender modo se não houver nenhuma atividade usuário. Suspender modo pode ser controlado pelo OEM e aplicativos.
Para economizar energia, use sincronização objetos para segmentos bloco que estão aguardando, em vez de criar um segmento que controla de status, such as a função PeekMessage.
Para obter mais informações sobre segmentos, consulte o seguinte tópicos:
- Timing a Thread
- Storing Thread-specific Data with Thread Local Storage
- Suspending a Thread
- Creating and Terminating a Thread
- Scheduling a Thread
See Also
Concepts
Processes and Threads
Creating and Terminating a Thread
Scheduling a Thread
Suspending a Thread
Timing a Thread
Storing Thread-specific Data with Thread Local Storage