O conceito de tarefa - Teoria de Sistemas Operacionais

COMPARTILHAR:

Whatsapp Telegram Twitter Facebook Reddit

Em sistemas monotarefas, existem 3 estados possíveis para a tarefa.

Após executar todas as instruções (comandos) de uma tarefa, ela passa do estado Executando para Terminada.

Enquanto um programa é uma sequência de instruções para tratar um problema, uma tarefa é a execução das instruções definidas no programa. Um programa é algo estático, enquanto uma tarefa é algo dinâmico.

Em sistemas monotarefas, existem 3 estados possíveis para a tarefa: Nova (New); Executando (Running) e Terminada (Terminated). Diferentemente de um sistema multitarefas, no sistema monotarefa não existe o estado de Suspensa pois a tarefa aguarda por um recurso (I/O, por exemplo) no estado de Executando.

Em sistemas multitarefa, para evitar que o processador fique ocioso quando uma tarefa está Suspensa aguardando uma entrada do usuário pelo teclado, uma outra tarefa pode ser alocada no processador. Essa é uma vantagem de sistemas multitarefas pois melhora a utilização do processador.

Quando uma tarefa está no estado Terminada, ela não volta para nenhum outro estado. Uma tarefa Terminada aguarda que seus recursos sejam liberados e que alguma outra tarefa pegue seu retorno.

Quando uma tarefa entra no processador, ela terá um tempo para permanecer lá executando. Esse tempo é chamado de quantum de tempo. Quando o quantum termina, a tarefa sai do estado de Executando e vai para Pronto.

Em sistemas multitarefas, existe um monitor que controla a execução das tarefas de tal forma que o processador não fique ocioso quando uma tarefa está aguardando uma entrada de usuário, por exemplo. O monitor tem como objetivo manter o processador ocupado.

Enquanto o código da tarefa está sendo carregado na memória, seu estado permanece em Nova. Quando estiver tudo pronto para a tarefa iniciar a execução, ela passa para o estado de Pronta.

Ao chamar a função "sleep(5)", uma tarefa muda do estado Executando para Suspensa e, ao término do tempo definido (5 segundos), o estado da tarefa é alterado de Suspensa para Pronta.

Em um sistema multitarefa, uma tarefa vai para o estado suspensa (suspended) quando ela deseja receber uma entrada de usuário (via teclado). A tarefa irá para o estado suspensa e permanecerá neste estado até que a operação de entrada seja concluída. Após a conclusão da operação de entrada, o Sistema Operacional retira a tarefa do estado de suspensa colocando-a no estado de pronta.

Algumas funções não precisam dos privilégios do modo kernel para serem executadas e não há necessidade de pedir ajuda ao kernel, como a função sqrt(), por exemplo. Pode-se afirmar que implementar a função sqrt como uma chamada de sistema seria desvantajoso em termos de desempenho. Já que a função sqrt() é implementada pela biblioteca math.h e executa no modo usuário. Ela poderia ser implementada como uma chamada de sistema, porém isso seria muito ruim em termos de desempenho devido a necessidade de realizar algumas trocas de contexto, conforme explicado a seguir. Quando um processo invoca uma chamada de sistema, o processo solicitante é colocado no estado de espera e, em seguida, o sistema troca para o modo kernel e a chamada de sistema é executada (ou seja, o kernel entra em execução). Após calcular a raiz quadrada (sqrt()), a chamada de sistema coloca o retorno em uma área de memória acessível ao processo solicitante. Quando a execução da chamada termina, o Kernel retira o processo solicitante do estado de espera colocando-o em uma fila de processos prontos para serem executados. A próxima vez que o processo ganhar o processador, ele terá acesso ao resultado da função sqrt(). Viu como seria muito trabalhoso o cálculo da função sqrt(), caso ele fosse calculada pelo kernel (especificamente uma chamada de sistema do kernel)? Da forma como ele é realmente executada (sem ser uma chamada de sistema), basta fazer um "jump" para área de código da memória onde se encontram as instruções que calculam a raiz quadrada.

Um sistema operacional multitarefa não é necessariamente preemptivo. Em sistemas preemptivos, a tarefa sai do processador após um intervalo de tempo (ex. 1ms), ou seja, a tarefa é interrompida mesmo antes de ir para o estado de suspensa (suspended) ou para o estado de terminada (terminated). Sistemas multitarefas sem preempção aguardam a tarefa em execução liberar o processador, voluntariamente, indo para o estado de suspensa ou terminada.

COMENTÁRIOS

Nome

#ann,25,#HK,30,#LTCode,130,Artigo - Diversos,156,Artigo - Games,201,Artigo - Tecnologia,615,autor-thomaz,7,Coluna - Alternative World,24,Coluna - Fail,12,Coluna - Tec Line,14,Criptomoeda,72,Curiosidades - Diversos,49,Curiosidades - Tecnologia,50,en,2,estudo,8,HN,12,logica,14,Pentest,23,Programar C,29,Programar POO,6,Programar Python,6,Programar Shell,25,Programar verilog,12,qradar,4,Raspberry Pi,15,Redes,3,root,117,Shorty Awards,1,Smartphones - Reviews,33,Teoria,10,Top Nostalgia,2,VPN,19,WhatsApp,46,
ltr
item
Limon Tec: O conceito de tarefa - Teoria de Sistemas Operacionais
O conceito de tarefa - Teoria de Sistemas Operacionais
Em sistemas monotarefas, existem 3 estados possíveis para a tarefa.
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmI65og5X32bSLCmBz3uJnZlmDvzOFWZWoZzyvUhh2rtp8Hr_kolKy02pOjxpkThrz8uHaTu3skUdeDJlkFEKkC2a9EabpwPzbwJ-hm-po0QIaNeNvYm5CJw3k4SbN03V-d2h1dxrW2tz4/s320/ltcode.jpg
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmI65og5X32bSLCmBz3uJnZlmDvzOFWZWoZzyvUhh2rtp8Hr_kolKy02pOjxpkThrz8uHaTu3skUdeDJlkFEKkC2a9EabpwPzbwJ-hm-po0QIaNeNvYm5CJw3k4SbN03V-d2h1dxrW2tz4/s72-c/ltcode.jpg
Limon Tec
https://www.limontec.com/2022/02/teoria-sistemas-operacionais-2.html
https://www.limontec.com/
https://www.limontec.com/
https://www.limontec.com/2022/02/teoria-sistemas-operacionais-2.html
false
2157924926610706248
UTF-8
Carregar todos posts Não encontramos nenhum post VER TUDO Ler mais Responder Cancelar resposta Deletar Por Home PÁGINAS POSTS Ver tudo RECOMENDADO PARA VOCÊ LABEL ARQUIVO SEARCH TODOS POSTS Não encontramos nenhum post relacionado a sua requisição VOLTAR PÁGINA INICIAL Domingo Segunda Terça Quarta Quinta Sexta Sábado Dom Seg Ter Qua Qui Sex Sab Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro Jan Fev Mar Abr Maio Jun Jul Ago Set Out Nov Dez apenas agora 1 minuto atrás $$1$$ minutes ago 1 hora atrás $$1$$ hours ago Ontem $$1$$ days ago $$1$$ weeks ago mais de 5 semanas atrás Seguidores Seguir ESTE CONTEÚDO ESTÁ BLOQUEADO PASSO 1: Compartilhe com seus amigos PASSO 2: Clique no link compartilhado Copiar Todo Código Selecionar Todo Código Todos códigos foram copiados para seu clipboard Não é possível copiar códigos / textos, por favor aperte [CTRL]+[C] (ou CMD+C no Mac) para copiar Tabela de conteúdo