Sistemas Operacionais e Redes
1) Evolução dos Sistemas Operacionais (SOs)
Dois tipos de sistemas:
Monoprocessados
Multiprocessados
Bem no início: programas eram “rodados” como Jobs
SOs surgem para simplificar a instalação dos programas
1o Progresso: separação entre usuários e equipamentos
Início do processamento em lotes (batch processing Fig.3.1)
Fila: sistema de organização de armazenamento (FIFO)
Linguagem dos ‘jobs’ (JCL - Job Control Language)
O ‘Operador de Sistema’: um trabalho que não existe mais
Desvantagem do processamento em lotes: falta de interação
SOs atuais propiciam processamento interativo (Fig. 3.2)
2o Progresso: SOs com a técnica de tempo partilhado
‘Time Sharing’ e os sistemas multiusuários (grandes comp.)
Em PCs: a técnica é chamada de multitarefa (multitasking)
Bem mais tarde: redes de computador
Compartilhamento de dados e recursos entre as máquinas
Software de controle de rede pode ser visto como um SO
Software de rede é visto como extensão do campo de SOs
Rede é um bom exemplo de projeto de multiprocessador
Principais problemas envolvidos:
balanceamento de carga dos processos
escalação dos processos
2) Arquitetura dos SOs
Classificação dos tipos de software (Fig.3.3)
Software aplicativos: programas para o usuário
Software de sistema: programas para gerenciar o computador e os seus periféricos
De sistemas:
Utilitários
SO
SO:
Shell (concha)
Kernel (núcleo)
Shell: é a parte do SO que define a interface entre o núcleo do SO e os usuários (Fig.3.4)
Objetivo: prover uma comunicação entre núcleo e usuários
As Shells podem ter uma:
interface de texto
interface gráfica (GUI - Graphical User Interface)
Possibilidade de várias Shells para um mesmo SO
Questão da padronização das interfaces (SO e aplicativos)
Kernel: é o núcleo de um SO
Contém pequenos programas que executam:
as funções básicas para o computador
os acionadores de dispositivos (device drivers)
o gerenciamento da memória principal
o escalador (scheduler) e o despachante (dispatcher)
Exemplos:
gerenciador de arquivos em disco
‘drivers’ para monitor, impressora, HD, modem, etc
gerenciador de memória virtual
gerenciador de processos (escalador e despachante)
Conceitos básicos para entender as operações de um SO:
início da execução do SO: ‘booting’
um SO é inicializado no computador ao ligarmos
‘Contador de Instruções’: qual seu endereço inicial?
a memória ROM e o programa ‘bootstrap’ (Fig.3.5)
Diferença entre processador específico e de uso geral
3) Coordenação das Atividades do Computador
Conceito de Processo:
Distinção entre um programa e a atividade de executá-lo
Programa: conjunto estático de instruções
Sua execução: atividade dinâmica chamada ‘processo’
Estado do processo: é a situação corrente da atividade
Compõe o estado do processo:
o valor do contador de instruções
o valor dos outros registradores
as posições associadas de memória (em rel. aos regist.)
o status do processo (pronto ou em espera)
Um único programa pode estar associado a mais de um processo, em um mesmo momento
É tarefa essencial do SO coordenar todos os processos
Administração de Processos:
As tarefas de coordenação de processos são realizadas pelo escalador (scheduler) e pelo despachante (dispatcher)
Escalador:
mantém registros sobre os processos em andamento
inclui novos processos
remove processos já executados e terminados
mantém na memória uma tabela de processos
Cada registro da tabela de processos contém dados sobre:
área da memória usada pelo processo
prioridade do processo
estado do processo (registradores, status, etc)
Despachante:
garante que processos escalados sejam executados
SO c/ tempo partilhado divisão do tempo em fatias
realiza um ‘revezamento’ entre os processos, de modo que cada um não exceda o tempo de um ‘quantum’
controla o chaveamento de processos
controla e dispara o sinal de interrupção
Chaveamento de processos: é o procedimento de alternar o processamento de um processo para outro (o revezamento)
O chaveamento de processos é realizado, a cada vez, por meio de uma ‘interrupção’ (Fig. 3.6)
O tratamento de interrupção é realizado pelo despachante, a cada vez que este dispara o sinal de interrupção
Com o sinal de interrupção o ‘Despachante’:
retoma o controle das operações do computador
permite que o escalador atualize a tabela de processos
seleciona o processo com maior prioridade (daqueles que estiverem com o status ‘pronto’)
reinicia o temporizador para uma nova fatia de tempo
entrega o controle da operação para processo selecionado
dispara o sinal de interrupção após o término do quantum
Característica fundamental de um sistema de tempo compartilhado: “capacidade de interromper um processo para continuá-lo mais tarde”
Importância de guardar o estado de um processo
Modelo Cliente/Servidor: (Fig. 3.7)
Diversas unidades do SO processos independentes
Eles competem por tempo sob a supervisão do despachante
Eles se comunicam para coordenar suas atividades
Exemplos:
Para escalar um novo processo, o escalador solicita informação ao gerenciador de memória
Para acessar um arquivo em disco, um dado processo deve obter informação do gerenciador de arquivos
Os SOs são projetados usando o modelo Cliente/Servidor
Vantagem: padronização da comunicação entre as unidades
Outra vantagem: com a padronização, a comunicação entre as unidades é a mesma, tanto a interna de um computador, como entre diversas máquinas (Fig. 3.8)
4) Tratamento da Competição entre Processos
Tarefa do SO: distribuição dos recursos entre os processos
‘Recursos’ do computador inclui os elementos internos do computador, bem com os seus periféricos
Solução do tratamento da competição: uso de Semáforo
Tipos de Semáforos:
Sinalizador (com estados ligado e desligado)
Sinalizador com instruções de habilitação (enable) e de desabilitação (disable)
Sinalizador com instrução de ‘test-and-set’
Perigo: ocorrência de ‘Deadlock’ (paralisação completa)
‘Deadlock’ acontece quando 2 ou mais processos dependem da conclusão do(s) outro(s)
Análise dos ‘deadlocks’ revela que eles ocorrem quando:
Recursos são solicitados de forma parcial
Um recurso não pode ser retomado pelo sistema, a não ser que o processo o libere espontaneamente
Soluções dos ‘deadlocks’: impedir as situações acima
tornar um recurso compartilhável
forçar os recursos serem solicitados totalmente
solução ao superusuário: ‘kill the process’ (matar)