Manual Mod V
Manual Mod V
Manual Mod V
Sistema Operativo
Um Sistema Operativo pode ser visto como
um programa de grande complexidade,
responsável pela gestão eficiente de todos
os recursos da máquina
Composto por um conjunto de camadas
funcionais (módulos)
Cada módulo constitui um nível de
abstracção que implementa uma máquina
virtual com uma interface bem definida
1
Módulos de um Sistema Operativo
Gestão de Processos
Gestão da Memória Principal
Gestão de Ficheiros
Gestão de I/O
Gestão da Memória Secundária
Gestão de Rede
Protecção do Sistema
Interpretador de Comandos
Gestão de Processos
Processos:
Cada processo pode ser considerado como
um programa em execução
Abstracção do SO que contém dados
referentes ao código a executar, às variáveis,
à pilha (stack), às áreas de memória, aos
parâmetros, etc.
Exemplos:
Comandos ou programas em execução
Shell
Processos do sistema: syslog, rpciod, etc.
2
Processador, Programa e Processo
O processador é o órgão material onde é
executada toda a actividade do sistema
Processos
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
3
Gestão de Processos
SO fornece serviços para:
Criação e eliminação de processos
Escalonamento de processos
(multiprogramação)
Tratamento das interrupções
Mecanismos para sincronização de processos
Mecanismos para a comunicação de
processos
4
Gestão da Memória Principal
Os algoritmos de alocação de memória devem
ter como objectivo reduzir a fragmentação da
memória
First Fit
Aloca o primeiro pedaço de memória livre que tenha
espaço suficiente
Best Fit
Aloca o pedaço de memória livre mais pequeno mas
com espaço suficiente para conter os dados
Worst Fit
Aloca o maior pedaço de memória livre
10
5
Gestão de Ficheiros
O Sistema Operativo fornece uma visão
uniforme do sistema de ficheiros,
independentemente da tecnologia usada
Ficheiro:
Colecção de informação relacionada entre si
Programas
Dados
Organizados por directórios
11
Gestão de Ficheiros
Funções do Sistema de Gestão de
Ficheiros:
Criar/Apagar ficheiros e directórios
Operações de leitura e escrita em ficheiros
Mapeamento dos ficheiros no disco
Escalonamento do acesso ao disco
Protecção de acesso aos ficheiros
12
6
Gestão de I/O
A implementação das operações de I/O é
complexa, uma vez que interactuam com o
hardware dos dispositivos.
Uma das principais funções do SO é esconder as
especificidades do hardware ao utilizador
Implementado através de Device Drivers
Componentes de I/O
Sistema de buferização, caching e spooling
Interface genérica para device drivers
Device Drivers específicos
13
14
7
Gestão da Memória Secundária
O Sistema Operativo disponibiliza serviços
para:
Gestão do espaço livre em memória
Reserva de espaço em memória
Escalonamento dos acessos à memória
15
Gestão da Rede
O Sistema Operativo disponibiliza serviços para:
A comunicação com outras máquinas, constituindo um
sistema distribuído
Um Sistema Distribuído é definido como um
conjunto de computadores que comunicam
através de uma rede partilhando os seus recursos
e funcionalidades, com objectivos comuns
Partilha de ficheiros
Aplicações de bases de dados
Servidores web
16
8
Gestão da Rede
Funções do Sistema de Gestão da Rede:
Oferece uma interface e protocolos de
comunicação normalizados que permitem a
comunicação entre diferentes máquinas
Gerir a configuração e os parâmetros de rede
Exemplos:
TCP/IP
SMB
FTP
NFS
etc.
17
Protecção do Sistema
O Sistema Operativo permite controlar o
acesso pelos programas e processos aos
recursos do sistema, autorizando ou não o
acesso, assim como, o tipo de permissões
atribuídas
18
9
Protecção do Sistema
Exemplos:
Sistema de ficheiros
Acesso a dispositivos de I/O
Restrição do aceso a áreas de memória de
outros processos
Detecção de erros (evitando a propagação do
erro aos restantes processo em execução)
19
20
10
Serviços de um SO
O objectivo principal de um SO é o de
fornecer um ambiente adaptado à execução
de programas, facilitando o seu
desenvolvimento
O SO Disponibiliza serviços para:
Execução de programas
Operações de I/O
Manipulação de ficheiros
Comunicação
Detecção de erros
21
Serviços de um SO
User-oriented
Serviços disponibilizados directamente ao
utilizador do SO
System-oriented
Serviços utilizados pelo SO
22
11
Serviços de um SO
User-oriented
Execução de programas
Carregar um programa para memória, alocando os
recursos necessários e executa-lo
Operações de I/O
Fornece aos utilizadores um interface para os
dispositivos
Manipulação de ficheiros
Permite a operações sobre um sistema de ficheiros
23
Serviços de um SO
User-oriented
Comunicações
Fornece os serviços para a comunicação entre processos
residentes na mesma máquina
Memória partilhada
Semáforos
Filas de mensagens
Etc.
Fornece os serviços para a comunicação entre processos
residentes em máquinas diferentes
TCP/IP
HTTP
CORBA
Etc.
24
12
Serviços de um SO
User-oriented
Detecção de erros
Permite a detecção de erros:
na UCP
na memória
nos dispositivos de I/O
erro de paridade
avaria
falta de papel numa impressora
nos programas do utilizador
divisão por zero
acesso a zonas de memória ilegais
25
Serviços de um SO
System-oriented
Alocação de recursos
Permite a alocação de recursos para vários
processos em execução simultânea
Escalonador da UCP
Alocação de memória
Impressoras
Etc.
26
13
Serviços de um SO
System-oriented
Monitorização do sistema
Permite recolher informação sobre a utilização do
sistema
Para monitorização do funcionamento do sistema:
Informação sobre eventos do sistema (por ex: o Event
Viewer do XP)
Dados estatísticos de utilização dos recursos
Etc.
Para posterior “pagamento” pelo utilizador
27
Serviços de um SO
System-oriented
Protecção
Previne que processos de utilizadores diferentes
interfiram uns com os outros, ou com o SO
Fornecendo mecanismos de controlo do acesso aos
recursos
Segurança
Autenticação de utilizadores
Protecção de acessos indevidos
28
14
Chamadas ao Sistema
29
Chamadas ao Sistema
30
15
Chamadas ao Sistema
Endereço da
tabela
31
Chamadas ao Sistema
Tipos de chamadas
Controlo de processos
Gestão de ficheiros
Gestão de dispositivos
Gestão de informação
Comunicações
32
16
Controlo de Processos
end
Finalização ordenada de um processo
abort
Finalização de um processo devido a um erro
load
Permite carregar um programa em memória
execute
Executa de forma controlada um outro programa, o
processo Pai pode executar o outro processo de forma
concorrente ou pode substituir um processo pelo outro
33
Controlo de Processos
create process
Permite a criação de um novo processo
terminate process
Força a finalização de outro processo filho do processo
evocados
get process atributes, set process atributes
Permite operar sobre os atributos do processo criado: alterar
prioridade, máximo tempo de execução, etc.
wait for time (sleep)
Suspende a execução do processo durante um determinado
tempo
34
17
Controlo de Processos
wait event
Bloqueia um programa até que um determinado evento
aconteça, por ex:
Um outro processo filho termine
Receba um sinal
signal event
Permite sinalizar a ocorrência de um evento ao SO
allocate, free memory
Alocar e libertar memória
35
Manipulação de ficheiros
create/delete file
open, close
read, write, reposition
get/set file attributes
Nome, tipo, permissões...
36
18
Gestão de Dispositivos
request
Solicita ao SO o acesso exclusivo a um dispositivo
release device
Sinaliza ao SO que já não necessita de um determinado
recurso
read, write, reposition
Em Linux estas operações são muito semelhantes à leitura
e escrita em ficheiros
get/set device attributes
attach/detach device
37
Gestão de Informação
38
19
Comunicações
create
Estabelece um canal de comunicações entre 2
processos
delete communication connection
send, receive messages
transfer status information
attach, detach remote devices
39
Comunicações
Modelos de comunicações:
Passagem de mensagens
Memória partilhada
40
20
Estrutura de um SO
MS-DOS
Características:
•Baixa modularidade
•Por camadas
•Necessita de muito
poucos recursos
41
Estrutura de um SO
UNIX
Características:
• Modular
• Por camadas
• Necessita de
elevados recursos
42
21
Estrutura por Camadas
Device Drivers
Hardware
43
22