20
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

Sistema Operativo

Embed Size (px)

DESCRIPTION

Definitions

Citation preview

Page 1: Sistema Operativo

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

Page 2: Sistema Operativo

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.

Page 3: Sistema Operativo

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

Page 4: Sistema Operativo

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,

Page 5: Sistema Operativo

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.

Page 6: Sistema Operativo

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

Page 7: Sistema Operativo

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)

Page 8: Sistema Operativo

� 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

Page 9: Sistema Operativo

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

Page 10: Sistema Operativo

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

……………..

Page 11: Sistema Operativo

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

Page 12: Sistema Operativo

• 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

Page 13: Sistema Operativo

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

Page 14: Sistema Operativo

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

Page 15: Sistema Operativo

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

Page 16: Sistema Operativo

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

Page 17: Sistema Operativo

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

Page 18: Sistema Operativo

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.

Page 19: Sistema Operativo

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

Page 20: Sistema Operativo

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