Estudo
São exemplos de sistemas monothread o Microsoft MS-DOS e as primeiras versões do MS-\~indo^\^N s. .\Mesmo em ambientes multiprogramaveis e multiusuário, encontramos exemplos de implementações monothread, como nas versões mais antigas dos sistemas Unix.
6.3 Ambiente Multithread
Em um ambiente MultiThread. ou seja~ com múltiplos threads, não existe a ideia de programas associados a processos~ mas, sim, a threads. O processo, neste ambiente, tem pelo menos um thread de execução, mas pode compartilhar o seu espaço de endereçamento com inúmeros outros threads. Na Fig. 6.3 existe apenas um processo com três threads de execução compartilhando o mesmo espaço de endereçamento.
861 Arquitetura de Sistemas Operacionais
De forma simplificada, um thread pode ser definido como uma sub-rotina de um programa que pode ser executada de forma associada, ou seja~ executada paralelamente ao programa chamador. O programador deve especificar os threads~ associando-os as sub-rotinas associadas. Desta forma~ um ambiente multithread possibilita a execuc^7ao concorrente de sub-rotinas dentro de um mesmo processo.
Na Fig. 6.4 existe um programa principal que realiza a chamada de duas sub-rotinas associadas (Sub_l e Sub_2). Inicialmente. o processo e criado apenas com o Thread 1 para a execução do programa principal. Quando o programa principal chama as sub-rotinas Sub_l e Sub_2~ são criados os Thread_2 e Thread_3, respectivamente, e executados independentemente do programa principal. Neste processo, os três threads são executados concorrentemente
No ambiente multithread, cada processo pode responder a varias solicitações concorrentemente ou mesmo simultaneamente. caso haja mal de um processador. A grande vantagem no uso de threads e a possibilidade de minimizar a alocação de recursos do sistema, além de diminuir o overhead na criação, troca e eliminação de