Anda di halaman 1dari 22

Sistemas Operativos I

Componentes de um Sistema Operativo


Maria João Viamonte / Luis Lino Ferreira
Fevereiro de 2006

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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 2

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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 3

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.
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 4

2
Processador, Programa e Processo
„ O processador é o órgão material onde é
executada toda a actividade do sistema

„ Um Programa é um conjunto de instruções


armazenadas num ficheiro

„ Um Processo é uma instância de um


programa em execução. No entanto, um
programa pode ser constituído por vários
processos
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 5

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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 6

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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 7

Gestão da Memória Principal


„ Controla a utilização da memória física
„ Cada posição de memória, byte ou word é
endereçada individualmente
„ A memória é utilizada para armazenar:
‰ Código referente a processos
‰ Dados e a stack referente a cada processo
‰ Comunicação com os dispositivos de I/O

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 8

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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 9

Gestão da Memória Principal


„ Funções do Sistema de Gestão da
Memória Principal:
‰ Registo actualizado das zonas de memória
sob utilização e por quem
‰ Decisão sobre os processos a carregar em
memória face ao espaço ainda disponível em
memória
‰ Reservar e libertar espaço de memória

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 13

Gestão da Memória Secundária


„ Visto que a memória principal é volátil e
pequena para armazenar todos os dados e
programas de uma forma permanente
„ A memória secundária permite o
armazenamento permanente de dados e
programas
„ A maioria dos computadores modernos
usam discos rígidos como forma de
memória secundária

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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.
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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)

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 19

Interpretador de Comandos (Shell)


„ Fornece uma Interface entre o utilizador e o
Sistema Operativo, permitindo que o utilizador
possa correr comandos do SO
„ Exemplos:
‰ No MS-DOS a shell está incorporada no núcleo do SO
‰ Em Linux a shell é um programa à parte que interage
com o SO através de chamadas ao sistema
‰ A shell também pode ser vista como uma interface
gráfica:
„ Windows/explorer
„ Linux/Gnome/KDE/Xwindows

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 21

Serviços de um SO

„ User-oriented
‰ Serviços disponibilizados directamente ao
utilizador do SO

„ System-oriented
‰ Serviços utilizados pelo SO

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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.

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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.

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 28

14
Chamadas ao Sistema

„ Fornecem uma interface entre o utilizador e o SO


„ Podem ser acedidas através de instruções em
assembly (MS-DOS) ou através de linguagens de
alto nível (UNIX e Windows)
„ Passagem de parâmetros
‰ Através dos registos do CPU
‰ Armazenamento em memória
‰ Através do stack das funções

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 29

Chamadas ao Sistema

„ Em linguagens de alto-nível (C, C++, Visual Basic)


as chamadas ao sistemas encontram-se nas
funções existentes nas livrarias
„ Raramente utilizadas por um programador comum

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 30

15
Chamadas ao Sistema

Endereço da
tabela

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 35

Manipulação de ficheiros

„ create/delete file
„ open, close
„ read, write, reposition
„ get/set file attributes
‰ Nome, tipo, permissões...

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 37

Gestão de Informação

„ get/set time or date


„ get/set system data
‰ Permite escrever ou ler dados internos ao SO
„ get/set process, file or device attributes
‰ Permite escrever ou ler os atributos

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 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

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 39

Comunicações
„ Modelos de comunicações:
‰ Passagem de mensagens

‰ Memória partilhada

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 40

20
Estrutura de um SO
MS-DOS

Características:
•Baixa modularidade
•Por camadas
•Necessita de muito
poucos recursos

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 41

Estrutura de um SO

UNIX
Características:
• Modular
• Por camadas
• Necessita de
elevados recursos

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 42

21
Estrutura por Camadas

„ O SO é dividido em várias camadas, cada


uma delas fornece serviços apenas à
camada imediatamente por cima
Kernel do SO

Device Drivers

Hardware

Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 43

Sistemas Operativos I

Componentes de um Sistema Operativo


Maria João Viamonte / Luis Lino Ferreira
Fevereiro de 2006

22