Sistemas de Tempo Compartilhado Time - Sharing 1 - Definição de Sistemas de Tempo Compartilhado 1.1 - Definição de Sistemas de Tempo Compartilhado • Este conceito significa compartilhamento de tempo, ou seja, o tempo ocioso entre os processos são compartilhados com outros processos para dinamizar o sistema. • Múltiplos job são executados simultaneamente, sendo que a CPU atende cada job por um pequeno tempo, um a um em sequência. • Os tempos dedicados para cada job são pequenos o suficiente para que os usuários consigam interagir com cada programa sem que percebam que existem outros programas rodando. 1.2 - Funcionamento de um Sistema de Tempo Compartilhado 2 - Características de Sistemas do Tempo Compartilhado • A capacidade e o tempo de processamento da máquina é dividida em múltiplos usuários; • Jobs são constantemente trocados entre memória e disco; • Processamento on – line; • Interação dos usuários com o sistema; • Sistema multiprogramáveis; • Interatividade com o usuário; 2 - Exemplo de interatividade com o usuário 3 – Vantagens de Sistemas do Tempo Compartilhado • Multitarefa; • Fornecimento de resposta rápida; • Evita a duplicação de software; • Reduz CPU tempo ocioso; 4 - Desvantagens do Sistemas de Tempo Compartilhado • Problema de confiabilidade; • Questão de segurança e integridade dos programas • e dados do usuário; • Problema de comunicação de dados; 5 - Time - Slice • Time – slice significa fatia de tempo, tempo fatiado. • Permite que um processo seja executado sem interrupção durante um certo intervalo de tempo. • Caso a fatia de tempo não seja suficiente para a conclusão do programa, ele é interrompido pelo sistema operacional e substituído por um outro, enquanto fica aguardando por uma nova fatia de tempo. • O sistema cria para cada usuário um ambiente de trabalho próprio, dando a impressão de que todo o sistema está dedicado exclusivamente a ele. Equipe de desenvolvimento do SO Multics. Em 1953, surgiu o sistema operacional chamado Multics, que possuía características de tempo compartilhado (vários usuários compartilhando os recursos de um único computador). 6 - Lotes X Tempo Compartilhado 7 - Sistema de tempo compartilhado escalonado • O escalonador trabalha com uma tabela, gravada na memória principal, dos processos que estão sendo executados. • Existem dois tipos de escalonamento: escalonamento cooperativo e escalonamento preemptivo. 7.1 - Sistema de tempo compartilhado escalonado 1. Escalonamento cooperativo Quando a CPU é alocada para executar um determinado processo, ela não é liberada para outro processo até que o primeiro seja executado ou entre em estado de espera (aguarda o que deve fazer). No escalonamento cooperativo o papel do escalonador de processos é basicamente iniciar os processos, podendo usar algoritmos para determinar qual processo iniciar. 7.1 - Sistema de tempo compartilhado escalonado • Vantagem As aplicações podem ter uma implementação mais simples por não terem que lidar com interrupções do processamento. • Desvantagem Aplicações mal escritas podem monopolizar o tempo do processador causando um travamento no sistema. 7.1 - Sistema de tempo compartilhado escalonado 2. Escalonamento preemptivo Permite que a CPU seja retirada de um processo para ser entregue a outro. Garante que os processos possam progredir uniformemente. Não permite a monopolização da CPU. Usado para o atendimento rápido de processos mais importantes e atender aos usuários em sistema de tempo compartilhado. Referências • CRECENTE, Luciano. Tipos de Sistemas Operacionais. Disponível em: <https://www.slideshare.net/lscrecente/tipos-de-sistemas- operacionais/19?src=clipshare > Acesso em: 19 de fevereiro de 2018. • BUENO, Henrique. Arquivo da tag: time sharing. Disponível em : < https://hbueno.wordpress.com/tag/time-sharing/ > Acesso em : 18 de fevereiro de 2018. • TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3a ed. São Paulo: Pearson, 2010.