Você está na página 1de 71

1

Sistemas Operativos: Características & Evolução

Ano Lectivo 2021


Dr. Xadreque de Algesio Macamo
BIBLIOGRAFIA BÁSICA
• Tanenbaum, A., Sistemas Operativos Modernos – 2ª Edição. – Prentice
Hall, 2008
• Silberschatz, G., Operating System Concepts – 6ª Edição ; Wiley, 2002
• Welsh, M., Dalheimer, M., Kaufman, L., Running Linux 3rd Edição – O’Reilly,
1999
• Alves, J., Guedes, P., Fundamentos de Sistemas Operativos, Editorial
Presença, 1990
“Fundamental de Linux” - Paulo Trezentos/António Cardoso,FCA 2001 (ISBN
972-722-328-1)
BIBLIOGRAFIA PARA CONSULTA

•Pereira, F., Linux – Curso Completo, 3ª Edição, FCA – Editora de Informática, 2000
•Alcade, E./ Morera, J., Introdução aos Sistemas Operativos MS/DOS, UNIX/OS/2
PROGRAMA TEMÁTICO

1. O que é um sistema operativo


2. História dos sistemas operativos
3. Classificação dos sistemas operativos
4. Gestão de Sistemas Operativos
5. Utilizadores e Quotas
6. Configuração TCP/IP
7. Gestão de logs
8. Escalonamento de Tarefas
9. Sistemas de Ficheiros
10. Gestão de Backup.
Para que serve um Computador ?

• Para facilitar a vida aos utilizadores


• Para executar programas (aplicações)
O que é um Sistema Operativo?...

Um Sistema operativo é um programa ou conjunto de


programas cuja a função é gerenciar os recursos de
Hardware.
Níveis de um Sistema Computacional
O que é um Sistema Sistema Operacional?...

Da perspectiva do Usuário - é uma abstração do hardware,


fazendo o papel de intermediário o software (programas) e
os componentes físicos do computador, o (Hardware).

Na visão do Computador – é um gestor de recursos, que


controla aplicações (processos) a serem executadas.
Funções Básicas SO

• Facilidade de Acesso aos recursos do Sistema.

• Compartilha de recursos de forma organizada e


protegida.
Sistema Computacional
Reservas de
Programas de
Sistema Visualizador Aplicação
passagens
bancário Web
aéreas

Compiler Editores Interpreters Programas do


Sistema Operativo Sistema

Hardware + Instruções = Nivel


Linguagem Máquina ISA
Computer
Microarquitectura
Hardware
Dispositivos Físicos
Registers do CPU & Data Path, MicroProgr

Chips, tubos de raios catódicos, etc.


Visão do Sistema Operativo como
Interface entre users e os recursos
do Sistema
Hardware – o Processador central, a memória e os dispositivos de
entrada e saída – oferecem os recursos básicos para a computação

Aplicações: compiladores, sistemas de bases de dados,


programas diversos, Jogos, … - definem as formas em que estes
recursos são usados para resolver os problemas de computação dos
utilizadores

Utilizadores: pessoas, outros computadores, máquinas, aplicativos, ...

O Sistema Operativo controla e coordena o uso do Hardware entre os


vários programas de aplicação para diferentesusers .
…sim, mas então o que é um Sistema Operativo ?

• Olhar as duas funções básicas que realiza:


– Estender a Máquina
– Gerenciar Recursos
• Duas funções não relacionadas!
Sistema Operativo – Definição
◊ Silberschatz: “É um programa intermediário entre o utilizador e o
hardware”
◊ 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”

◊ Conjunto de programas que servem para gerir e vigiar a execução dos


programas de diversos utilizadores e que promovem a gestão dos recursos
de um computador.
◊ É uma interface entre o utilizador e ohardware

◊ Apresenta ao programador serviços de alto nível para uma exploração fácil


e eficiente dohardware (para o programador o S. O. é visto como uma
colecção de serviços)
Funções Principais de um Sistema Operativo

◊ Gestão da concorrência
controlar diversos fluxos de actividade independentes que se executam “em
paralelo”.

◊ Partilha de Recursos com Protecção


Físicos: processador, memória, discos, periféricos diversos
Lógicos: programas de uso geral (editores, compiladores) e bibliotecas
partilhadas por diversos programas

◊ Gestão de informação persistente


armazenamento fiável e seguro da informação não volátil em suportes
magnéticos, ópticos, etc.

◊ etc…
Objectivos

• 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
• Controlar a execução de programas e as
Tipos de Computadores

• Super computadores
• Mainframes
• Mini computadores
• Workstations
• PC’s (microcomputadores)
• Computadores de bolso
Evolução dos Sistemas Operativos

• Processamento em Série (Serial


Processing )
– Monitor de Controlo
• Processamento em Lotes (Batch )
• Multiprogramação
Evolução dos sistemas operativos

Sem Sistema Operativo (serial Processing ): UNIVAC, IBM 701, IBM 650

Tratamento por Lotes Rudimentares

Tratamento por Lotes: IBM 7090

Multiprogramação: Multics
Tempo Partilhado
Memória Virtual: UNIX
Sistemas
Distribuídos

194 195 196 197 198


6 0 0 0 0
1ª Geração 3ª Geração 4ª Geração
2ª Geração
Interruptores e Circuitos Integrados Computadores
Válvulas Transístores Pessoais
Tratamento em Série (serial Processing )
• Máquinas simples, sem qualquer tipo de
sistema operativo
• Os programas eram introduzidos pelo
utilizador e depois executados pela
máquina
• Hardware baseado em tubos de vácuo
• Input através de cartões perfurados
• Output através de lâmpadas
Tratamento em Série (serial Processing )
Tratamento em Série (serial Processing )

• Baixa produtividade
– era sempre necessário introduzir tudo à mão

• Todas as operações tinham que ser


definidas pelos programas
Evolução

• Primeira aproximação a um SO foi um


programa utilitário
– Monitor de Controlo Programa

Leitor de Cartões

Unidade Dados
Central de
Processamento Programa
Monitor
Memória
Impressora
O Monitor de Controlo
• Atribuição a cada utilizador de quotas de tempo de
utilização da máquina, dispondo da máquina como
um todo
• Permitia ao utilizador carregar os seus programas
em memória, editá-los e verificar a sua execução
• Execução das operações necessárias através de
comandos do monitor
• No final da sessão guardavam os programas e
resultados sob a forma de listagens, fitas de papel
perfuradas ou, nos sistemas mais evoluídos, em fita
magnética
• Rotinas de I/O reutilizáveis
O Monitor de Controlo - Composição
• Um monitor típico era composto por um conjunto de
rotinas utilitárias que facilitavam a interacção
(operação) com máquina:
• Interpretadores de uma linguagem de comando que
permite fazer executar os restantes módulos
– Tradutor de linguagem simbólica (Assembler )
–  Editor de ligações (Linker )
–  Carregador de programas em memória (Loader )
• Rotinas utilitárias para o controlo de periféricos:
consola; leitor de cartões; leitor/perfurador de fita de
papel; bandas magnéticas
Monitor de Controlo – Ineficiência

• Durante a maior parte do tempo o


processador está inactivo, à espera de um
comando ou a efectuar uma operação de I/
O

• O tempo de execução de um programa é


gasto essencialmente nas operações de I/O
Processamento em Lotes (Batch )
Automatizavam a sequência de operações que envolvem a
execução de um programa:
 O programa é enviado ao operador do computador

 O operador junta o programa ao conjunto de programas


existentes, criando um lote

 Cada lote de programas é executado sequencialmente


pelo computador

 Os resultados são fornecidos ao operador à medida que


os programas vão acabando
Processamento em Lotes (Batch )

A memória está dividida em duas


partes:
Sistema Operativo do computador
 Lote de programas que está a correr
Processamento em Lotes (Batch ) - Problemas
• Não é possível a interacção entre um programa a
correr e o utilizador
• A capacidade de processamento da CPU evolui
exponencialmente
• No entanto, os dispositivos de I/O são muito lentos:
– Um leitor de cartões lê 20 cartões/s
– Os primeiros discos rígidos também são muito lentos
• O tempo de execução de um programa é
predominantemente determinado pelas operações
de I/O
Processamento em Lotes (Batch ) - Solução
• Para optimizar a utilização da UCP passou a
fazer-se a recolha dos dados num computador
auxiliar onde eram lidos, para uma banda, os
cartões dos diversos trabalhos

• A banda era colocada no computador central e


executados os programas, produzindo igualmente
os ficheiros de saída para outra banda que, por
sua vez, era tratada pelo computador mais
pequeno para optimizar o tempo de impressão
Evolução:
 Periféricos passaram a poder executar operações
autónomas, avisando o processador do fim da sua execução
através do mecanismo de interrupções.
 Possibilidade de notificar assincronamente o processador de
que uma dada operação terminou.
 As operações de I/O podem prosseguir em paralelo com a
execução de um programa que apenas é interrompido para
iniciá-las e para tratar a sua terminação
 Paralelamente, os periféricos de armazenamento de dados
sofreram uma evolução significativa, deixando de ser meros
dispositivos sequenciais (bandas) para se tornarem
  verdadeiras memórias secundárias com possibilidade de
endereçamento aleatório (tambores e discos)
Multiprogramação
Multiprogramação:
 Vários programas (jobs ) são carregados para memória
central, e o tempo da UCP é repartido por eles:
A execução concorrente de vários programas permite
optimizar a utilização da UCP

 Sempre que um programa/processo não necessita da


UCP, a sua execução fica bloqueada até que os sectores
com os dados sejam lidos e transferidos para a memória,
passando a execução para um outro programa/processo

 Esta solução torna os sistemas multiprogramados,


permitindo que diversos programas estejam
simultaneamente activos
Multiprogramação

• Funções controladas pelo SO:


– I/O através de rotinas fornecidas pelo
SO
– Gestão da memória
• Alocar memória para os vários pogramas/
processos
– Escalonamento da UCP
• Decidir que programa/processo vai entrar
em funcionamento
Multiprogramação

• Problemas:
• Os primeiros sistemas de
Multiprogramação não permitiam a
interacção com o utilizador
Sistemas de partilha de tempo - Computação Interactiva

Solução

 A comutação entre processos passa a ser feita periodicamente ou


quando os processos necessitam realizar tarefas de I/O
 Extensão dos sistemas multiprogramados de modo a permitir a partilha
do sistema entre vários utilizadores, assim como, a interacção entre o
utilizador e o programa

Os sistemas interactivos conferem grande importancia a:


 Sistema de Ficheiros
 Protecção de Dados
 Acesso a informação partilhada
 Linguagem de interacção com o sistema
Timesharing (Tempo partilhado )
 Usa a Multiprogramação para permitir múltiplos programas
de aplicação do utilizadorVários
( utilizadores e programas
em simultâneo )
 O tempo do Processador é partilhado entre os vários
utilizadores
 Múltiplos utilizadores acedem simultaneamente ao sistema
através de terminais
 Divisão do tempo disponível do processador
 Sensação de dispor de um computador apenas para si
 Implica considerar novos aspectos: sistemas de ficheiros,
protecção de dados
Sistemas de Secretária (Desktop )

• Objectivos
– Permitir a um utilizador isolado o acesso a um
sistema de computação
– Maximizar a conveniência de utilização
• Primeira geração
– Mono-utilizador
– Sem multitarefa
– Ex: MS-DOS
Sistemas de Secretária (Desktop )

• Geração 1.5
– Mono-utilizador
– Algumas capacidades de multitarefa, mas o
mecanismo de escalonamento ainda não
permite a execução concorrente
– Sem multitarefa
– Ex: Windows 3.0 e 3.1
Sistemas de Secretária (Desktop )
• Segunda Geração
– Multi-utilizador
– Sistema de ficheiros multi-utilizador
– Multi-tarefa
– Conexão à rede
– Exemplos
• Windows 95/NT/XP
• Linux
• MAC
• OS/2
Sistemas Multi-Processador

• O computador pode utilizar dois ou mais


CPUs, partilhando:
– o barramento
– o relógio
– a memória
– os periféricos
– o disco
– etc.
Sistemas Multi-Processador
• Symmetric multiprocessing (SMP):
– Cada processador corre uma cópia idêntica do sistema
operativo
– Podem correr em simultâneo vários processos sem
existir degradação no desempenho
– A maior parte dos sistemas operativos modernos
suportam SMP
Sistemas Multi-Processador
• Asymmetric multiprocessing (AMP):

• Processador-mestre corre o sistema operativo,


escalona o trabalho dos processadores-escravos

• Processadores-escravos correm aplicações,


sendo atribuída uma tarefa a cada um, é comum
em sistemas extremamente grandes
Asymmetric multiprocessing (AMP):
Sistemas Distribuídos - 4ª Geração (meados de 1970 ..
.)
• Sistema em que a comunicação entre
máquinas (UCPs) cooperantes é feita
através de uma rede de comunicação
Sistemas Distribuídos - 4ª Geração (meados de 1970 ..
.)
 Redes de computadores e Processamento on-line

 Desenvolvimento de PCs

 Ninguém mais está interessado num sistema de tempo

partilhado!

 O conceito de Máquina Virtual tornou-se vulgar

 O user não mais está preocupado com detalhes de hardware

 O user vê a chamada máquina virtual criada pelo sistema


Sistemas Distribuídos - 4ª Geração (meados de 1970 ..
.)
• Sistemas Cliente-Servidor
– O servidor fornece funcionalidades a outras
máquinas (clientes)
• Exemplos:
– Servidor de ficheiros
– Web Server
• SistemasPeer-to-Peer
– Cada máquina tem responsabilidades equivalentes
Clusters
• As máquinas estão ligadas entre si
utilizando uma rede local de alto débito
• Umcluster de máquinas poderá ser visto
pelo utilizador como uma máquina “grande”
• Utilizações:
– Cálculos intensivos
– Simulações
– Servidores Web de alto desempenho, com
tolerância a falhas
Sistemas de Tempo-Real

• Cada tarefa do sistema têm associadas


restrições temporais deadlines
( )
• Normalmente utilizados em sistemas
dedicados
• Podem ser classificados em sistemas:
–Hard-real time :
• Onde o não cumprimento de umdeadline leva à falha
do sistema
–Soft-real time :
• Onde o não cumprimento de umdeadline leva apenas
a uma degradação da saída do sistema
Sistemas de Tempo-Real

• Hard-real time :
– Controlo industrial
– Sistemas automóveis
–Avionics

• Soft-real time :
– Sistemas multimédia
– Dispositivos de rede (router )
Sistemas de Bolso

• Características:
– Memória pequena
– Processador lento
– Ecrã pequeno
– Sistemas de I/O limitados
• Exemplos:
– PDAs
– Telemóveis
Tipos de Sistemas Operativos - Resumo
1. Sistemas de Tratamento em Lotes Rudimentares (Simple Batch
Operating Systems )
 2. Sistemas Multiprogramados (Multiprogrammed Batch Operating
Systems )
 
3. Sistemas de tempo Partilhado (Timesharing Operating Systems )
 
4. Sistemas de Tempo Real (Real Time Operating Systems )
 
5. Sistemas Distribuídos (Distributed Operating Systems )
 
6. Sistemas Paralelos (Parallel Systems )
2
Sistemas Operativos: Processos & Threads
Estrutura de um Sistema Operativo
Componentes do Sistema

 Gestão de Processos
 Gestão da memória
 Comunicação e Gestão do sistema I/O
 Gestão de Ficheiros
 Protecção do sistema
 Controlo da distribuição
 Sistema do Interpretador de comandos
 Componentes do Sistema
 Conceito básico ...
– Dividir para reinar(divide-and-conque r) - Modularização

Dividir as tarefas em grupos claramente distintas


para serem tratadas como uma entidade
independente e com uma relação claramente
definida em relação às outras entidades!

Cada módulo constitui um nível de abstracção que


implementa uma máquina virtual com uma
interface bem definida
1. Gestão de Processos
Conceitos de base:
 Processador
 elemento físico que executa uma acção definida numa instrução
máquina
 Processo
 Entidade “activa” no sistema operativo no âmbito da qual é
executada uma sequência de acções determinada por um
programa.
 Um Processo é uma instância de um programa em execução

“Abstração de um Programa em execução”


Um Processo define:
 Um conjunto de operações

• Operações elementares, normalmente um subconjunto das instruções do


processador
• Operações de interacção com outros processos
 Um espaço de endereçamento
• Um processo executa-se dentro de um espaço de endereçamento bem
delimitado, evitando que possa interactuar de forma indevida com os outros
processos ou com o próprio Sistema Operativo
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
Gestão de Processos
Processador
 elemento físico que executa uma acção definida numa instrução
máquina
Um sistema operativo será responsável pela execução das seguintes
actividades para fazer a gestão de processos:

·        A criação e a destruição dos processos de utilizadores e do


sistema
·        A suspensão e reactivação de processos
·        Disponibilização de mecanismos de sincronização de processos
·        Disponibilização de mecanismos de comunicação entre
processos
·        Tratamento de deadlock.
Um processo é a unidade de trabalho de um sistema !

Um Processo que tem em sua posse o Processador, está em execução

Um Processo que está à espera de usar o Processador, quando este se


tornar livre e disponível, está em estadoPronto (Ready)

Um Processo à espera da ocorrência de algum evento estáBloqueado .

Um Processo em execução torna-se Pronto quando o seuQuanta termina


antes de voluntariamente abandonar o Processador

Um Bloco de Controlo de Processo BCP é uma estrutura de dados


contendo uma informação que permite ao sistema operativo localizar
toda a informação chave acerca do processo incluindo o seu estado
corrente, identificação, prioridade, memória, recursos, valores dos
registers , etc
Estados dum Processo (modelo de 5 estados)

Admit Dispatch Release


New Ready Running Exit
Timeout

Event
Occurs
Event
Wait

Blocked
Estados importantes:
1. Estado de execução (running)
• O Processo está nesse momento a ser executado pelo
CPU
2. Estado de pronto a executar (ready)
• Qualquer processo que possa retomar a sua execução
imediatamente

3. Estado de bloqueado (blocked)

• Qualquer processo que esteja à espera que um dado


evento aconteça (p. ex. que uma operação de E/S,
previamente solicitada, se complete)
Outros estados:

1. Estado novo (new)

• O SO executou as acções necessárias para criar o processo


• Criou um identificador para o processo (pid)
• Criou as tabelas necessárias para manter a informação de
estado do processo
• Ainda não se comprometeu a executar o processo (este
ainda não foi admitido )
• Pode haver escassez de recursos no momento
2. Estado de saída (exit)

• A terminação coloca o processo neste estado


• Já não pode ser executado
• As tabelas do processo e outra informação associada ainda
existempor. Exemplo, à espera de um programa de
contabilidade que recolha estatísticas sobre o processo
• Quando os dados associados ao processo já não forem
necessários, este é removido do sistema.
Transições entre estados
◊ Ready Running

No seu tempo próprio o dispatcher selecciona um processo


pronto para execução

◊ Running Ready

• O processo que está a executar esgotou a sua fatia de tempo


• Chegou ao estado de Ready um processo com maior
prioridade do que aquele que está a executar
◊ Running Blocked

• Quando o processo que está a executar solicita qualquer


coisa que determina uma espera
• Um serviço que o SO não está pronto a executar
• Acesso a um recurso que está nesse momento ocupado (p.
ex. um ficheiro)
• Inicia uma operação de E/S e tem de esperar que ela se
complete
• Necessita de dados a fornecer por outro processo (IPC)
◊ Blocked Ready

• Quando ocorre o evento para o qual o processo estava à


espera

◊ Ready Exit

• O processo que está a executar termina este (geralmente


de pai para filho)
...recordar que !
Um sistema operativo será responsável pela execução das
seguintes actividades para fazer a gestão de processos:
· A criação e a destruição dos processos de utilizadores e do
sistema

·  A suspensão e reactivação de processos

·  Disponibilização de mecanismos de sincronização de


processos

·  Disponibilização de mecanismos de comunicação entre


processos

·  Tratamento de deadlock.

Criar Processos

O que faz o SO para criar processos?


Constrói estruturas de dados
Aloca espaço de endereçamento

Terminar Processos
Algumas razões para terminar um processo:
Tempo excedido
Falta de memória
Uso de instrução privilegiada
...
 Programa
Sequência de acções, descritas numa determinada linguagem, sem actividade
própria
 Aplicação
Conjunto de actividades cooperantes a decorrer em um ou mais processos
segundo as directivas de um ou mais programas

 Executável (ficheiro)
Bloco de instruções máquina e dados resultantes da tradução (compilação) de um
programa
 Espaço de endereçamento:
• Conjunto de posições de memória a que um programa executado num
processo pode aceder
• Região de memória onde está o código, os dados e a pilha (stack ) do
processo
 Contexto de execução:
Valor dos registos do processador e de outras unidades de controlo
(memória, etc.) em cada instante
Arquitecturas dos sistemas operativos

1. Arquitectura monolítica
Todas as funções num único programa ou bloco de código
Ocupa muito espaço residente na memória (mais, à medida que o número de
funções aumenta)
Desenho antigo; pouco usado actualmente

2. Arquitectura em camadas (layered )


Uma sequência de máquinas virtuais com funcionalidade crescente e construídas
com base nas camadas mais internas

Exemplo:
Layer 0: Alocação do processador e multiprogramação
Layer 1: Gestão de memória
Layer 2: Comunicação entre processos
Layer 3: Entrada/Saída
3. Arquitectura cliente-servidor

• Colecção de processos em que uns fornecem serviços a outros


• O kernel serve de canal de comunicação

4. Características dos S. O. modernos

Arquitectura demicrokernel
A parte central do sistema operativo contém apenas as funções essenciais
Gestão do espaço de endereçamento dos processos
Comunicação entre processos (IPC)
Escalonamento

Multithreading
Possibilidade de divisão de um processo em vários fluxos de execução (threads )que
podem correr simultaneamente
Threads

• Unidade de trabalho escalonável para execução (dispatchable )


• Cada um executa sequencialmente e pode ser interrompido
• Um processo é um conjunto de um ou maisthreads

Multiprocessamento simétrico
• Podem existir vários processadores no sistema de computação
• Os processadores partilham a memória e os módulos de E/S
• Todos os processadores podem efectuar qualquer tarefa

5. Sistemas operativos distribuídos

• Agrupam vários sistemas de computação


• Dão a ilusão de uma única memória central comum
• Dão a ilusão de um único sistema de ficheiros comum

Você também pode gostar