Matéria: Sistema Computacional - SC Prof.: Esp.: Patrícia Dias da Silva Peixoto
SISTEMA OPERACIONAL E TIPOS DE SISTEMAS OPERACIONAIS
O QUE É UM SISTEMA OPERACIONAL (S.O.). Por mais complexo que possa parecer, um sistema operacional é nada mais que um conjunto de rotinas executadas pelo processador, da mesma forma que nossos programas.
O QUE FAZ UM SISTEMA OPERACIONAL (S.O.). Sua principal função é controlar o funcionamento do computador como um gerente dos vários recursos disponíveis no sistema. Um sistema de computação possui, normalmente, diversos componentes como terminais, impressoras, discos, fitas, etc. Quando utilizamos estes dispositivos não nos preocupamos com a maneira como são realizadas esta comunicação e os inúmeros detalhes envolvidos. Uma operação aparentemente simples como ler um disquete exige um conjunto muito grande de rotinas especificas, como por exemplo, converter um endereço lógico em físico, posicionar a cabeça na trilha correta, esperar pelo setor correto passar, etc. O sistema operacional serve então como uma interface entre o usuário e os recursos do sistema, tornando esta comunicação transparente.
Cronologia Grande porte (mainframes) 1990 1950 1960 1970 1980 1º Sistema Operacional Monoprogramável Monotarefa Introduzido o conceito de Memória Virtual Sistema Multitarefa Sistemas Multiprogramáveis Multitarefa microcomputadores
TIPOS DE SISTEMAS OPERACIONAIS Tipos de Sistemas Operacionais istemas Monoprogramáveis/ Sistemas Monotarefa Multiprogramáveis/ Multitarefa Sistemas Com Múltiplos Processadores
SISTEMAS MONOPROGRAMÁVEIS/MONOTAREFA Os primeiros sistemas operacionais eram voltados tipicamente para a execução de um único programa. Qualquer outra aplicação, para ser executada, deveria aguardar o término do programa corrente. Neste tipo de sistema, o processador, a memória e os periféricos permanecem exclusivamente dedicados à execução de um único programa. Os sistemas monoprogramáveis estão diretamente ligados ao surgimento, na década de 50/60, dos primeiros computadores. Embora os sistemas operacionais já tivessem evoluído com as tecnologias de multitarefa e multiprogramáveis, os sistemas monoprogramáveis voltaram a ser utilizados na plataforma de microcomputadores pessoais e estações de trabalho devido à baixa capacidade de armazenamento destas máquinas, na época.
Era muito clara a desvantagem deste tipo de sistema, no que diz respeito à limitação de tarefas (uma de cada vez), o que provocava um grande desperdício de recursos de hardware. Comparados a outros sistemas, os monoprogramáveis são de simples implementação, não existindo muita preocupação com problemas decorrentes do compartilhamento de recursos como memória, processador e dispositivos de E/S.
SISTEMAS MULTIPROGRAMÁVEIS/MULTITAREFA Constituindo-se uma evolução dos sistemas monoprogramáveis, neste tipo de sistema os recursos computacionais são compartilhados entre os diversos usuários e aplicações: enquanto um programa espera por um evento, outros programas podem estar processando neste mesmo intervalo de tempo. Neste caso, podemos observar o compartilhamento da memória e do processador. O sistema operacional se incumbe de gerenciar o acesso concorrente aos seus diversos recursos, como processador, memória e periféricos, de forma ordenada e protegida, entre os diversos programas. As vantagens do uso deste tipo de sistema são a redução do tempo de resposta das aplicações, além dos custos reduzidos devido ao compartilhamento dos recursos do sistema entre as diferentes aplicações. Apesar de mais eficientes que os monoprogramáveis, os sistemas multiprogramáveis são de implementação muito mais complexa.
Os sistemas multiprogramáveis/multitarefa podem ser classificados de acordo com a forma com que suas aplicações são gerenciadas, podendo ser divididos em sistemas batch, de tempo compartilhado e de tempo real, de acordo com a figura abaixo.
SISTEMAS BATCH Foram os primeiros sistemas multiprogramáveis a serem implementados na década de 60. Nesta modalidade, os programas eram submetidos para execução através de cartões perfurados e armazenados em disco ou fita, para posterior execução. Vem daí o nome batch (lote de cartões). O processamento em batch tem como característica não exigir interação do usuário com o sistema ou com a aplicação. Todas as entradas ou saídas são implementadas por meio de algum tipo de memória secundária, geralmente disco ou fita. Aplicações deste tipo eram utilizadas em cálculo numérico, compilações, back-ups, etc. Estes sistemas, se bem projetados, podem ser bastante eficientes devido à melhor utilização do processador, mas podem oferecer tempos de resposta bastante longos. Atualmente, os sistemas operacionais simulam este tipo de processamento, não havendo sistemas dedicados a este tipo de execução.
SISTEMAS DE TEMPO COMPARTILHADO Também chamados sistemas de time-sharing, permitem que diversos programas sejam executados a partir da divisão de tempo do processador em pequenos intervalos, denominados fatia de tempo (ou time-slice). Caso a fatia de tempo não seja suficiente para a conclusão do programa, este é interrompido pelo sistema operacional e substituído no processador por outro, enquanto aguarda nova fatia de tempo. Neste tipo de processamento, cada usuário tem a impressão de que a máquina está dedicada ao seu programa, como se ele fosse o único usuário a se utilizar do sistema. Geralmente permitem interação do usuário com a aplicação através de terminais compostos por monitor, teclado e mouse. Estes sistemas possuem uma linguagem de controle que permite ao usuário interagir com o sistema operacional através de comandos. Assim, é possível verificar arquivos armazenados em disco ou cancelar execução de programas. Normalmente, o sistema responde em apenas alguns segundos à maioria destes comandos, o que se levou a chamá-los também de sistemas on-line.
A maioria das aplicações comerciais atualmente é processada em ambiente de tempo compartilhado, que oferece tempos baixos de respostas a seus usuários e menores custos, em função do alto grau de compartilhamento dos diversos recursos do sistema.
SISTEMAS DE TEMPO REAL Este tipo de sistema é implementado de forma bastante semelhante ao de tempo compartilhado. O que caracteriza a diferença entre eles é o tempo exigido no processamento das aplicações. Enquanto nos sistemas de tempo compartilhado o tempo de processamento pode variar sem comprometer as aplicações em execução, nos sistemas de tempo real os tempos de execução devem estar dentro de limites rígidos, que devem ser obedecidos, caso contrário poderão ocorrer problemas irreparáveis.
No sistema de tempo real não existe a ideia de fatia de tempo como nos sistemas de tempo compartilhado. Um programa ocupa o processador o tempo que for necessário ou até que apareça um outro com um nível de prioridade maior. Esta prioridade de execução é definida pela própria aplicação e não pelo sistema operacional, como nos sistemas de tempo compartilhado. Estes sistemas são utilizados em aplicações de controle de processos, como monitoramento de refinarias de petróleo, controle de tráfego aéreo, de usinas, ou em qualquer aplicação onde o tempo de processamento é fator fundamental.
SISTEMAS COM MÚLTIPLOS PROCESSADORES Os sistemas com múltiplos processadores caracterizam-se por possuir duas ou mais CPUs interligadas e trabalhando em conjunto. A vantagem deste tipo de sistema é permitir que vários programas sejam executados ao mesmo tempo ou que um mesmo programa seja subdividido em várias partes para serem executadas simultaneamente em mais de um processador. Esta técnica permitiu a criação de sistemas computacionais voltados para processamento científico, prospecção de petróleo, simulações, processamento de imagens e CAD. Um fator chave no desenvolvimento dos sistemas multiprocessadores é a forma de comunicação entre as CPUs e o grau de compartilhamento da memória e dos dispositivos de E/S. Em função destes fatores, podemos classificar os sistemas multiprocessadores de acordo com a figura a seguir:
fortemente acoplados existe apenas uma memória a ser compartilhada pelos processadores do conjunto. fracamente acoplados cada sistema tem sua própria memória individual. A taxa de transferência entre processadores e memória em sistemas fortemente acoplados é muito maior que nos fracamente acoplados.
Nos sistemas fortemente acoplados: Quando todos os processadores na arquitetura são iguais, diz-se que o sistema é simétrico. No entanto, quando os processadores são diferentes, dáse à arquitetura a denominação assimétrica.
No Fracamente Acoplado No ambiente de rede, existem dois ou mais sistemas independentes (hosts), interligados por linhas telefônicas, que oferecem algum tipo de serviço aos demais, permitindo que um host compartilhe seus recursos, como impressora e diretórios, com os outros hosts da rede. Enquanto nos sistemas em rede os usuários têm conhecimento dos hosts e seus serviços, nos sistemas distribuídos o sistema operacional esconde os detalhes dos hosts individuais e passa a tratá-los como um conjunto único, como se fosse um sistema só, fortemente acoplado. Os sistemas distribuídos permitem, por exemplo, que uma aplicação seja dividida em partes e que cada parte seja executada por hosts diferentes na rede. Para os usuários e suas aplicações é como se não existisse a rede, mas um único sistema centralizado.
Outros exemplos de sistemas distribuídos são os clusters. Em um cluster podem existir dois ou mais servidores ligados por algum tipo de conexão de alto desempenho, e o usuário não conhece os nomes dos membros do cluster e nem quantos são. Quando é necessário algum serviço, basta solicitar ao cluster para obtê-lo, sem se preocupar com quem vai dispor e oferecer tal serviço. Clusters são muito utilizados em servidores de bancos de dados e Web.
Questões: 1 - Defina Sistema Monoprogramável. 2 - Defina Sistema Multiprogramável. 3 - Fale sobre o Sistema Batch. 4 - Fale sobre o Sistema de tempo compartilhado. 5 - Fale sobre o Sistema de tempo real. 6 - Defina Sistema de Múltiplos processadores. 7 - Qual a diferença entre os Sistemas de tempo real e de tempo compartilhado?