View
9
Download
0
Category
Preview:
DESCRIPTION
Definitions
Citation preview
sistema operativo
O software de qualquer computador ou sistema computacional pode ser dividido
basicamente em dois tipos: Software do sistema - programas que contribuem para o
controlo e desempehenho das operações do computador e Software de aplicação -
programas que resolvem os problemas dos usuários.
O mais fundamental dos programas do sistema é o sistema operativo. É este que
controla todos
os recursos do computador e é este que fornece a base sobre a qual os programas de
aplicação
podem ser escritos.
Definição
Silberschatz “Sistema Operativo é um programa ou até um conjunto de programas que
age como intermediário entre o utilizador e o hardware ou máquina física”
MilenKovic “Colecção organizada de software, consistindo em rotinas de controlo
relativas ao hardware do computador que permitem fornecer um ambiente homogéneo
para a execução de programas”
.
Funções de um Sistema Operativo
� Executar comandos e programas do utilizador
� Facilitar o uso da máquina
� Utilizar o hardware da máquina de uma forma eficiente (disco, placa gráfica,
memória, etc.)
� Fornecer uma Interface com o SO
� Gerir recursos
Gerir o trabalho do processador
Gerira utilização da memória
Controlar a interacção com os periféricos
Controlar as diversas solicitações dos programas em relação aos recursos do
sistema
etc.
� Controlar a execução de programas e as respectivas operações de I/O
Componentes dum Sistema de Computacional
Um sistema computacional divide-se em: Hardware, Sistema operativo, Programas de
aplicação e utilizadores.
� Hardware – os recursos físicos: CPU, memória, dispositivos de Entrada e Saída
(E/S).
� Sistema operativo – controla e coordena a utilização do hardware durante a
execução de
vários programas de aplicação, eventualmente pertencentes a diferentes utilizadores.
� Programas de aplicação – definem as formas de utilização dos recursos do sistema
com o objectivo de resolver problemas dos utilizadores (compiladores, sistemas de
bases de dados, jogos de vídeo, programas de contabilidade, etc.).
� Utilizadores -pessoas, máquinas ou até outros computadores. O utilizador final do
sistema que não está (ou não quer estar) preocupado com a sua arquitectura.
Tipos de Sistemas Operativos
Batch. As tarefas com necessidades semelhantes são agrupadas e executadas no
computador como um grupo por um operador ou um sequenciador de tarefas
automático. O desempenho é aumentado pela tentativa de manter a CPU e os
dispositivos de E/S ocupados o tempo todo através de buffers, operação off-line,
spooling e multiprogramação. O batch é bom para executar tarefas grandes, que
precisam de pouca interacção; ele pode ser submetido e apanhado mais tarde.
Interactivo. Esse sistema é composto de muitas transacções curtas, em que os
resultados da próxima transacção podem ser imprevisíveis. O tempo de resposta precisa
ser curto (segundos), pois o usuário submete e espera o resultado.
Tempo compartilhado. Esses sistemas utilizam o escalonamento de CPU e a
multiprogramação para prover o uso interactivo económico de um sistema. A CPU
comuta rapidamente de um usuário para outro. Em vez de ter uma tarefa definida por
imagens de cartão em spool, cada programa precisa do seu cartão de controlo a partir do
terminal, e a saída normalmente é impressa imediatamente na tela.
Utilizador 1 Utilizador 2 Utilizador 3 Utilizador 4 Utilizador n
Compilador editor de texto base de dados ………………………………………………
Aplicações
Sistema operativo
Hardware
Tempo real. Normalmente usado em uma aplicação dedicada, esse sistema lê
informações de sensores e precisa responder dentro de um período de tempo fixo, para
garantir o desempenho correcto.
Rede. Oferece recursos do sistema operacional por uma rede, como compartilhamento
de arquivos.
SMP. Usado em sistemas em que existem várias CPUs, cada uma executando a mesma
cópia do sistema operacional. A comunicação ocorre através do barramento do sistema.
Distribuído. Esse sistema distribui a computação entre vários processadores físicos. Os
processadores não compartilham memória ou um relógio. Em vez disso, cada
processador possui sua própria memória local. Eles se comunicam entre si através de
diversas linhas de comunicação, como um barramento de alta velocidade ou uma rede
local.
Em clusters. Um sistema em clusters combina diversos computadores em um único
sistema, para realizar a tarefa computacional distribuída pelo cluster.
Portátil. Um pequeno computador que realiza tarefas simples, como calendários, e-mail
e navegação Web. Os sistemas portáteis diferem dos sistemas desktop tradicionais por
terem memória e tela menores, e processadores mais lentos.
Componentes dum Sistema Operativo
Gestão de Processos: Sendo um processo um programa em execução, devem ser
disponibilizadas sobre eles as seguintes funções básicas: criação, eliminação, suspensão,
activação, sincronização e comunicação. Adicionalmente o SO deve garantir uma
partilha correcta do tempo de CPU entre os vários processos.
Gestão de Memória: Sendo a memória o dispositivo onde são carregados os processos
em execução e o próprio SO, este deve permitir a reserva, libertação e monitorização do
espaço em memória. Se o SO dispuser de um mecanismo de memória virtual então o
espaço disponível para os processos poderá exceder a memória física (RAM) disponível
no sistema.
Gestão de I/O(Entrada/Saída): Um sistema computacional dispõe de vários
periféricos sobre os quais são possíveis operações de leitura (entrada) e/ou de escrita
(saída). Então para cada dispositivo (ou grupos de dispositivos) o SO dispõe de módulos
que lidam especificamente com cada tipo de dispositivos (device drivers).
Gestão de Ficheiros: Sendo um ficheiro uma colecção de informação relacionada,
devem ser disponibilizadas sobre eles as seguintes funções básicas: criação, eliminação
e manipulação.
Adicionalmente deve existir a possibilidade de organizar os ficheiros (em directorias) e
de
realizar cópias de segurança (backups).
Protecção: O SO poderá disponibilizar mecanismos de protecção para controlar os
acessos dos processos aos recursos e dos utilizadores ao sistema.
Interpretador de comandos: Muitos dos comandos passados ao SO são instruções de
controlo que lidam com os mecanismos de gestão do SO. O programa que lê e interpreta
essas instruções de controlo é o interpretador de comandos.
Chamadas de sistema: A comunicação entre os processos e o SO é realizada através de
chamadas de sistema (system calls). Estas são funções disponibilizadas através de
bibliotecas (APIs-Application Programming Interfaces) pelo SO e podem ser utilizadas
em qualquer programa. A chamadas do sistema criam, apagam e utilizam vários
objectos de software e estruturas de dados geridos pelo S.O. Os mais importantes destes
objectos são os processos e os arquivos.
Organização de um sistema Computacional
Um sistema computacional e composto por CPU, controladores de dispositivos e os
respectivos dispositivos.
Os Controladores de I/O e a UCP podem executar de uma forma Concorrente e cada um
deles está encarregue de um dispositivo particular.
Cada controlador tem um buffer local e a UCP movimenta dados da (para) memória
principal para (a partir de) os buffers locais
O controlador tem a função de informar a UCP que terminou a sua operação através de
uma interrupção
Gestão de processos
“Fluxo de actividade autónomo que executa um conjunto de acções que são
determinadas por um programa”
Por tanto, um processo pode ser definido como Uma instância de um programa em
execução e que um programa pode ser constituído por n processos.
Um processo contém:
� Código executável
� Dados (variáveis globais)
� Estado do Processador (registos, stack, program counter)
� Ficheiros abertos
� Tempo de UCP consumido
Em ambientes multi-tarefa as funções do sistema operativo no que diz respeito a gestão
de processos:
� Alternar a execução de processos de forma a maximizar a utilização da UCP
� Fornecer tempo de resposta razoável
� Alocar recursos a processos
� suportar a criação de processos pelo utilizador
� Suportar a comunicação entre processos
Estados de um processo
libert
ado
admissão despacho
interrompido
terminated
running
waiting
ready new
evento ocorre espera evento
� New O processo está a ser criado
� Ready O processo está pronto para ser executado
� Running O código referente a um processo está a ser executado
Sistemas multi-processador podem executar vários processo em paralelo, um em
cada processador
� Waiting O processo está à espera que um evento específico ocorra (por ex. operação
de I/O ou recepção de um sinal)
� Terminated O processo finalizou a sua execução
Nota: Em máquinas com apenas uma UCP só um processo pode estar no estado running
Pode haver vários processos no estado ready e no estado waiting
Cada processo é representado perante o SO por uma estrutura contendo a sua
informação,
o Process Control Block (PCB)
O PCB é o conjunto de atributos do processo e pode ser dividido em três partes:
� Identificação do processo
� Informação de estado do processador
� Informação de controle do processo
Identificação do Processo
� Composta por identificadores numéricos que incluem:
Identificador do processo (PID)
Identificador do processo que o criou
Identificador do utilizador
Informação de Estado do Processador
� Contida nos registos do processador:
Registos visíveis pelo utilizador
Registos de controle de estado
Apontadores de pilha
Informação de controle do processo
� Estado e escalonamento, de acordo com a máquina de estados definida
anteriormente,
que inclui:
Estado do processo (por ex. ready)
Prioridade
Suporte ao escalonamento (por ex. há quanto tempo está à espera)
Evento (por ex. identificação do evento que o processo está à espera)
� Estrutura dos dados (por ex. relação pai-filho)
� Comunicação entre processos
� Privilégios (por ex. tipos de instruções que podem ser executadas)
� Gestão da memória
Valores do registo base e limite
ponteiro para a tabela de páginas
� Propriedade e uso de recursos (por ex. ficheiros abertos)
BCP
Process state
Process number
Program counter
register
Memory limits
List of open files
……………..
Escalonamento de processos
E a actividade de decidir que processo deve ser executado ou retirado do processamento
Os objectivos são:
� Optimizar a performance do sistema de acordo com um critério
Dividir a capacidade de processamento da UCP entre vários processos
Diminuir o tempo de resposta (sistemas de Tempo-Real)
Tipos de Escalonamento
� Escalonamento não preemptivo: o escalonador apenas pode efectuar a troca entre
processos quando o processo termina ou passa para o estado de Waiting.
� Escalonamento preemptivo: o escalonador pode interromper a execução de um
processo antes que este tenha terminado
Critérios de Escalonamento
� Critérios orientados ao utilizador (performance)
Turnaround time
• Tempo que decorre entre o instante em que um processo é submetido
e o instante em que é concluído
• É a soma do tempo de espera para ir para a memória, tempo de espera
na fila dos ready, tempo em execução na UCP e o tempo de
espera por recursos
Tempo de resposta
• Tempo que decorre entre a submissão de um pedido e o início da
resposta este critério é adequado para sistemas interactivos
• Objectivos: baixo tempo de resposta maximizando o número de
utilizadores com tempos de resposta aceitáveis
Deadline
• Deadline, ponto no tempo no qual um determinado resultado de
computação deve estar disponível
• Sempre que forem especificadas deadlines, o critério de
escalonamento deve garantir que as deadlines são cumpridas, caso não
seja possível deve garantir que o mínimo número de deadlines é
ultrapassado
� Critérios orientados ao utilizador (outros)
Predictabilidade
• um determinado processo, independentemente da carga do
processador deve correr aproximadamente no mesmo tempo
Exemplos:
• um jogo de computador do tipo “Arcade” deve correr à mesma
velocidade independentemente da máquina em que está funcionar e da
respectiva carga
• um programa de descodificação de vídeo deve ser capaz de processar
30 frames por segundo independentemente da máquina e respectiva
carga
•
� Critérios orientados ao sistema (performance)
Utilização da UCP
• Utilização: razão entre o tempo durante o qual a UCP é utilizada e o
tempo total de execução
• O objectivo é maximizar a utilização da UCP
Débito (Throughput)
• Número de processo executados por unidade de tempo
• Maximizar o número de processos concluídos por unidade de tempo
• O valor óptimo depende dos processos
Algoritmos de Escalonamento
� Fisrt-Came, Fisrt-Served (FCFS)
� Shortest-Job-First (SJF)
� Escalonamento por Prioridades
� Round-Robin (RR)
� Multi-nível por Filas
� Multi-nível com realimentação por filas
First-Come, First-Served (FCFS)
O processo que chega à fila de ready em primeiro lugar é também o primeiro
processo a ser executado
Simples e fácil de implementar
Não preemptivo
• um processo apenas liberta a UCP quando termina ou quando requer uma
operação de I/O
Exemplo:
Processo Brust
time
P1 24
P2 3
P3 3
Ordem de chegada: {P1, P2, P3}
0 24 27 30
Tempo de espera: P1=0, P2=24, P3=27
Tempo médio de espera: (0+24+27)/3 =17
Tempo de permanência: P1=24, P2=27, P3=30
P1 P2 P3
Tempo médio de permanência: (24+27+30) /3=27
Shortest-Job-First (SJF)
O escalonador selecciona o processo na fila de ready que tiver menor tempo de
execução
Não preemptivo: se chegar à fila de ready um processo com um tempo de
execução menor que o processo em execução, este não é comutado
Preemptivo: o processo em execução é comutado pelo processo novo se o
tempo restante de execução for maior que o tempo de execução do
processo novo (Shortest-Remaining-Time-First (SRTF))
� SJF - Não Preemptivo
Processo Chegada Brust
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
0 7 8 12 16
Tempo de espera:
P1=0, - porque chegou no instante 0.0 e iniciou execução no instante 0.0
P2=6, - porque chegou no instante 2.0 e iniciou execução no instante 8.0 (8-
2=6)
P3=3, - porque chegou no instante 4.0 e iniciou execução no instante 7.0 (7-4=3)
P1 P3 P2 P4
P4=7, - porque chegou no instante 5.0 e iniciou execução no instante 12.0 (12-
5=7)
Tempo médio de espera: (0+6+3+7) /4=4
Tempo de permanência: - somatório entre o tempo de espera e de brust ou de
serviço de cada processo
P1=7
P2=10
P3=4
P4=11
Tempo médio de permanência: (7+10+4+11) /4=8
� SJF - Preemptivo
0 2 4 5 7 11 16
Tempo de espera:
P1=9, - porque chegou no instante 0.0, iniciou sua execução e foi interrompido
no instante 2.0 porque nesse momento chegou um processo que quando
comparado com o resto que falta para executar do processo P1 é menor, sendo
que o P1 voltou a execução no instante 11.0 (11-2=9)
P2=1, - porque chegou no instante 2.0, imediatamente iniciou sua execução, só
que no instante 4.0, foi interrompido para executar o P3 que tinha um tempo de
brust menor que o resto do P2, sendo que o P2 voltou a execução no instante 5.0
após termino do P3 e não existência de um processo menor que o resto de P2 (5-
4=1)
P3=0, - porque chegou no instante 3.0 e iniciou execução no mesmo instante
P4=2, - porque chegou no instante 5.0 e iniciou execução no instante 7.0 (7-5=2)
P1 P2 P3 P2 P4 P1
Tempo médio de espera: (9+1+0+2) /4=3
Tempo de permanência: - somatório entre o tempo de espera e de brust ou de
serviço de cada processo
P1=16
P2=5
P3=1
P4=6
Tempo médio de permanência: (16+5+1+6) /4=7
Escalonamento por Prioridades
Cada processo tem uma prioridade associada
A UCP é alocada ao processo com maior prioridade
Processos de igual prioridade podem ser escalonados através de FCFS
Pode ser preemptivo ou não preemptivo
A prioridade é representada por um número inteiro positivo
� Escalonamento não preemptivo
Processo Brust Prioridade
P1 3 3
P2 2 1
P3 2 4
P4 2 5
P5 5 2
Prioridade mais alta e 1.
Todos processos chegaram no mesmo instante
P2 P5 P1 P3 P4
0 2 7 10 12 14
Tempo de espera: P1=7, P2=0, P3=10, P4=12, P5=2
Tempo médio de espera(7+0+10+12+2) /5=6,2
Tempo de permanência: P1=10, P2=2, P3=12, P4=14,P5=7
Tempo médio de permanência: (10+2+12+14+7) /5=9
� Escalonamento preemptivo
Processo Brust Prioridade Chegada
P1 3 3 0
P2 2 1 2
P3 2 4 2
P4 2 5 5
P5 5 2 7
0 2 4 5 7 12 14
Tempo de espera:
P1=2: porque apesar de não ter a prioridade para execução, iniciou sua execução
visto que no instante 0.0 estava sozinho, só que no momento 2.0 chegou um
processo com uma prioridade mais alta, por isso o P1 foi interrompido para dar
lugar ao novo processo (P2), sendo que o P1 voltou a execução após termino do
P1 P2 P1 P3 P5 P4
P2 e dos processos já presentes não existir algum com prioridade mais alta que
P1 (4-2=2)
P2=0, porque chegou no instante 2.0 e devido sua prioridade foi executado
imediatamente
P3=3, porque chegou no momento 2.0 e foi executado no instante 5.0, porque
entre os processos que faltavam (P3, P4 e P5), o P5 tinha maior prioridade, mas
era antes de chegar, sobrando apenas o P3 e P4 sendo o P3 mais prioritário neste
instante (5-2=3)
P4=7 porque chegou no instante 5.0 e iniciou sua execução no instante 12.0,
porque após término do processo P3, chegou o processo P5 que detém maior
prioridade que o P4, por isso começou-se com o P5
P5=0, porque por coincidência chegou no instante 7.0 e imediatamente começou
sua execução sem ficar na fila de espera
Tempo médio de espera: (2+0+3+7+0) /5=3
Tempo de permanência:
P1=5
P2=2
P3=5
P4=9
P5=5
Tempo médio de permanência: (5+2+5+9+5) /5=5,2
Nota: Vai executando o processo que estiver presente ate que um de uma prioridade
maior que o actual chegue.
Round-Robin (RR)
� Especialmente adaptado para Sistemas Partilhados Multiutilizador
� Algoritmo:
Cada processo obtém uma pequena unidade de tempo da UCP, time quantum ou
time slice, vulgarmente 10 -100ms
No fim de cada time quantum (q) o processo é comutado e adicionado à cauda
da fila ready
Caso o processo termine a sua execução ou passe para o estado de waiting
durante time quantum atribuído, o escalonador selecciona o processo seguinte
para execução
O escalonador necessita de um timer de modo a que seja periodicamente
interrompido após cada time quantum
Processo Brust
P1 53
P2 17
P3 68
P4 24
0 20 37 57 77 97 117 121 134 154
162
Tempo de espera:
P1=0+57+24=81
P2=20
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
P3=37+40+17=94
P4=57+40=97
Tempo médio de espera: (81+20+94+97) /4=73
Tempo de permanência:
P1=134
P2=37
P3=162
P4=121
Tempo médio de permanência: 134+37+162+121) /4=113,5
Recommended