Trabalho Sistemas Operacionais Cintia Ferreira Henrique Elias

Propaganda
Trabalho Sistemas Operacionais
Cintia Ferreira
Henrique Elias
Hermes Tavares
Luiz Netto
Faculdade Pitágoras 08/2012
SISTEMA BATCH
Os sistemas batch, também conhecido por sistemas em lote, foram os primeiros
sistemas multiprogramáveis a serem implementados. Eles se caracterizam por terem seus
programas, quando submetidos, armazenados em disco ou fita, onde esperam para ser
executados sequencialmente.
Normalmente, os programas em seu processamento interagem muito pouco ou até
não interage com o usuário. Em batch, uma vez iniciado um serviço, ele se processa de
maneira continua até o término. O usuário não tem acesso as informações durante o
processamento.
Alguns exemplos de aplicações originalmente processadas em batch são compilações,
link edições, backups, entre outros que não exigem interação com o usuário.
O tempo de resposta deste sistema pode der longo, devido o processamento sequencial.
Hoje são poucos os programas que se utilizam do sistema batch, a tendência é a mudança
para o sistema on-line.
A história da computação pode ser dividida em quatro fases. A primeira fase
caracterizou-se por computadores de grande porte onde os programas eram processados em
lotes. Eram os chamados sistemas batch. Cartões perfurados armazenavam as instruções
dos programas, o processamento era centralizado e não havia interação com o usuário
durante a execução do programa.
A principal característica (e desvantagem) deste sistema é a falta de interação entre
o usuário e o programa em execução no job. O usuário precisa entregar ao operador o
programa que ele deseja executar, incluindo seus dados de entrada. Algum tempo depois
(podendo demorar minutos, horas ou mesmo dias), a saída do job é retornada. Este tempo
entre a submissão do job e seu término, chamado de tempo de turnaround, vai depender da
quantidade de processamento necessária, tempo de preparação necessário, e da quantidade
de jobs que estavam na fila antes dele ser submetido ao processamento.
Existem algumas dificuldades com o sistema batch do ponto de vista do programador
ou do usuário. Já que o usuário não pode interagir com o job que está executando, o usuário
deve indicar os cartões de controle para manipularem todos os resultados possíveis. Em um
job de múltiplos passos, passos subsequentes podem depender do resultado dos anteriores.
A execução de um programa, por exemplo, pode depender do sucesso da compilação. Pode
ser difícil definir completamente o que fazer em todos os casos.
Outra dificuldade em um sistema batch é que programas devem ser depurados
estaticamente, a partir de uma listagem. Um programador não pode modificar um programa
quando ele está sendo executado para estudar o seu comportamento, como hoje é possível
na maioria dos ambientes de programação.
SISTEMAS INTERATIVOS
Os sistemas de tempo compartilhado (time-sharing) permitem que diversos
programas sejam executados a partir da divisão do tempo do processador em pequenos
intervalos, denominados fatia de tempo (time-slice). 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.
Geralmente, sistemas de tempo compartilhado permitem a interação dos usuários
com o sistema, através de terminais que incluem vídeo, teclado e mouse. Esses sistemas
possuem uma linguagem de controle que permite ao usuário comunicar-se diretamente com
o sistema operacional, através de comandos. Desta forma, é possível verificar arquivos
armazenados em disco ou cancelar a execução de um programa. O sistema, normalmente,
responde em poucos segundos à maioria desses comandos. Devido a esse tipo de interação,
os sistemas de tempo compartilhado também ficaram conhecidos como sistemas on-line.
A maioria das aplicações comerciais atualmente é processada em sistemas de tempo
compartilhado, pois elas oferecem tempos de respostas razoáveis a seus usuários e custos
mais baixos, em função da utilização compartilhada dos diversos recursos do sistema.
SISTEMAS OPERACIONAIS EM TEMPO REAL
Para se iniciar o entendimento sobre sistemas operacionais de tempo real (RTOSs) é
necessário compreender algumas questões:
O que é computação não tempo real?
Na computação não tempo real um programa P é executado com uma entrada I,
gerando uma saída O, executando em um tempo T:
- O = P(I), T;
Assim quando menor T, maior a performance. Mais não há, entretanto, imposições
quanto ao valor de T. Ou seja, o tempo de execução não é determinado.
O que é computação tempo real?
Computação de tempo real é a computação “normal”, com uma imposição a mais em
T:- O = P(I), T < D;
D é chamado de deadline: o programa obrigatoriamente deve ser executado antes do
deadline. O deadline é um tempo crítico de execução;
O deadline de cada tarefa deve ser cumprido independente da carga do sistema;
O deadline varia de tarefa para tarefa:
 Painel de cotações da bolsa: alguns minutos;
 Freios automotivos: alguns milissegundos;
A execução do programa num tempo maior que D não é apenas indesejada é inútil.
Os sistemas em tempo real, os mais rápidos de todos são utilizados em ambientes
onde o tempo é um fator crítico, ou seja, onde os dados devem ser processados muito
rapidamente, pois influenciam as decisões mais imediatas: voos espaciais, controle de
tráfego aéreo, aeronaves de alta velocidade, processos industriais, equipamentos médicos
mais sofisticados, distribuição de eletricidade e comutação telefônica. Um verdadeiro sistema
em tempo real deve produzir respostas 100% imediatas em 100% das vezes. O tempo de
resposta é medido em frações de segundo, mas esse ideal muitas vezes não é alcançado.
Apesar de teoricamente ser possível converter um sistema operacional de múltiplos
fins em um sistema em tempo real, na pratica, a sobrecarga dos sistemas gerais é tão
grande que o desempenho em tempo real não pode ser alcançado. Assim sendo grande parte
das tarefas em tempo real requer sistemas operacionais especialmente concebidos para esse
fim.
Num sistema em tempo real, o tempo de execução das tarefas é crítico, não apenas
um fator de performance.
A “corretude” de um programa em tempo real é baseada não apenas na lógica de
sua execução, mas no tempo em que ele o faz;
Soft real-time: o tempo de execução é crítico, mas possíveis atrasos apenas
degradam a qualidade da resposta do sistema:

Transmissão de áudio/vídeo real-time;

Sistemas de bancos de dados integrados (bancos, supermercados, etc.);

Sistemas de medição (satélites, microscópios, etc.).
Hard real-time: o tempo de execução é absolutamente crítico e não tolera
atrasos; uma operação que não cumpra o deadline é considerada inútil:

Equipamentos médicos;

Freios automotivos e sistemas de navegação;
Sistemas operacionais de tempo real (RTOS) são sistemas que auxiliam (mas não
garantem) um escalonamento de tarefas que cumpre com deadlines;
RTOSs não são orientados à excelência de performance (throughput), mas sim ao
cumprimento dos deadlines;
SISTEMAS HIBRIDOS
São combinações entre sistemas em lotes e sistemas interativos. Eles parecem ser
interativos por que os usuários acessam o sistema por terminais e com isso tem respostas
rápidas.
Ele aceita programas em lote e os executa em segundo plano. No seu tempo livre ele
executa programas que não precisam da interferências de um operador.
Download