Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas Operacionais
Conceitos Básicos
Chamadas de Sistema
◼ A interface entre o S.O. e os programas de usuário é
definida pelo conjunto de instruções estendidas que o
sistema operacional proporciona.
◼ Essas instruções são conhecidas como chamadas de
sistema (system calls) → manipulam diversos objetos
gerenciados pelo S.O.
UFPA - PPGEE – LPRAD - LINC
Conceitos Básicos
Chamadas de Sistema
◼ Pode-se dizer que são métodos utilizados para que os
programas de usuários solicitem serviços providos
pelo sistema operacional.
◼ Algumas peculiaridades:
⚫ Cada chamada corresponde a um procedimento de uma
biblioteca contida no sistema operacional.
⚫ As chamadas de sistema executam em modo protegido,
sem a interferência do usuário.
UFPA - PPGEE – LPRAD - LINC
Conceitos Básicos
Processo de Execução de uma Chamada de
Sistema:
◼ Os serviços são requisitados através da colocação de
parâmetros em lugares muito bem determinados (por
exemplo, em registradores).
◼ Segue-se a execução de uma instrução especial de trap
(Chamada ao Supervisor ou Chamada ao Kernel).
◼ A execução deste tipo de instrução chaveia a máquina do
Modo Usuário para o Modo Kernel, e transfere o controle
para o S.O.
UFPA - PPGEE – LPRAD - LINC
Conceitos Básicos
Processo de Execução de uma Chamada de
Sistema (Continuação):
◼ O S.O. examina os parâmetros para determinar qual
das chamadas de sistema deve ser executada.
◼ A seguir, o S.O. verifica em uma tabela indexada, o
endereço do procedimento que executa a chamada ao
sistema.
◼ Após a conclusão da chamada de sistema, o controle
retorna ao programa do usuário.
UFPA - PPGEE – LPRAD - LINC
Conceitos Básicos
Exemplo de Chamada de Sistema:
Conceitos Básicos
Chamadas de Sistema para manipular arquivos no
UNIX
◼ open(): Specifies file name to be used;
◼ close(): Release file descriptor;
◼ read(): Input a block of information;
◼ write(): Output a block of information;
#include <stdio.h>
#include <fcntl.h>
int main() {
UFPA - PPGEE – LPRAD - LINC
Conceitos Básicos
Interpretador de Comandos (Shell)
◼ É a interface entre os usuários e o sistema
operacional.
Conceitos Básicos
Bourne shell (sh) -- Written by Steve Bourne, while at Bell Labs. First distributed
with Version 7 Unix, circa 1978, and enhanced over the years.
Almquist shell (ash) -- Written as a BSD-licensed replacement for the Bourne Shell;
often used in resource-constrained environments. The sh of FreeBSD, NetBSD (and
their derivatives) are based on ash that has been enhanced to be POSIX conformant
for the occasion.
Bourne-Again shell (bash) -- Written as part of the GNU Project to provide a superset
of Bourne Shell functionality.
Debian Almquist shell (dash) -- Dash is a modern replacement for ash in Debian.
Korn shell (ksh) -- Written by David Korn, while at Bell Labs.
mksh -- Descendant of the OpenBSD /bin/ksh and pdksh, developed as part of MirOS
BSD.
Z shell (zsh) -- considered as the most complete (read: the one with the most
features) shell: it is the closest thing that exists to a superset of sh, ash, bash, csh, ksh,
and tcsh.[citation needed]
Busybox -- Tiny utilities for small and embedded systems, include a shell.
UFPA - PPGEE – LPRAD - LINC
Concorrência
O que é concorrência?
Concorrência
A possibilidade de o processador executar instruções
ao mesmo tempo que outras operações, como, por
exemplo, operações de E/S, permite que diversas
tarefas sejam executadas concorrentemente pelo
sistema.
Existem diversos mecanismos de concorrência, como:
◼ Interrupções e Exceções;
◼ Buffering;
◼ Spooling;
◼ Reentrância;
UFPA - PPGEE – LPRAD - LINC
Concorrência
Pergunta...
Concorrência
Os Sistemas Multiprogramáveis surgiram da limitação dos sistemas
monoprogramáveis
UFPA - PPGEE – LPRAD - LINC
Concorrência
Exemplo de Utilização de um sistema Mono.
Programa que executa em média 100 instruções por registro lido.
Interrupções e Exceções
Os periféricos do computador (discos, teclado, monitor, etc) são
acessados através de circuitos específicos genericamente
denominados controladores: a placa de vídeo, por exemplo
permite o acesso ao monitor;
MP • O processador
UCP
não se comunica
mais diretamente
com os
Controlador periféricos, mas
sim através de
cada controlador.
Dispositivos de E/S
UFPA - PPGEE – LPRAD - LINC
Interrupções e Exceções
UFPA - PPGEE – LPRAD - LINC
Interrupções e Exceções
Durante a execução de um programa podem ocorrer
alguns eventos inesperados, ocasionando um desvio
forçado do fluxo de execução → Interrupção;
Quando um controlador de periférico possui uma
informação importante a fornecer ao processador, ele
tem duas alternativas de comunicação;
◼ Aguarda até que o processador o consulte →
Demorado;
◼ Notifica o processador através do barramento de
Conceitos Básicos
Interrupção:
◼ Gerada pelo S.O. ou por algum dispositivo,
independente do programa que está sendo
executado.
⚫ Exemplo de Interrupção: periférico avisa à CPU
que está pronto para transmitir algum dado.
⚫ No momento em que a UC detecta a interrupção, o
programa em execução é interrompido, e o controle
é desviado para uma rotina responsável pelo
tratamento da interrupção.
UFPA - PPGEE – LPRAD - LINC
Mecanismo de Interrupção
Salvar os
Programa Registradores
Rotina de
tratamento
Identifica a
origem da
interrupção
Interrupção
Obtém
endereço da
rotina
Restaura os
Registradores
UFPA - PPGEE – LPRAD - LINC
Mecanismo de Interrupção
UFPA - PPGEE – LPRAD - LINC
Conceitos Básicos
◼ No momento da interrupção, um conjunto de
informações sobre a execução do programa deve ser
preservado.
◼ Essas informações consistem no conteúdo de alguns
registradores, que deverão ser restaurados
posteriormente para a continuação do programa.
◼ Existem diferentes tipos de interrupções → cada uma
tratada por uma rotina de tratamento.
UFPA - PPGEE – LPRAD - LINC
Conceitos Básicos
◼ No momento em que uma interrupção acontece, a
CPU deve saber para qual rotina de tratamento deverá
ser desviado o fluxo de instrução.
◼ Essa informação deve estar em uma estrutura
chamada Vetor de Interrupção, que contém todas as
rotinas de tratamento existentes, associadas a cada
tipo de interrupção.
UFPA - PPGEE – LPRAD - LINC
Conceitos Básicos
◼ As interrupções podem ser classificadas como:
⚫ Mascaráveis: podem ser desabilitadas pelo processador
(Todos os dispositivos de E/S utilizam interrupções
mascaráveis)
⚫ Não Mascaráveis: não podem ser desabilitadas (usadas
para sinalizar “quase catástrofes”, como um erro de
paridade de memória)
◼ No caso da ocorrência de múltiplas interrupções, o
processador deve saber qual interrupção terá de
atender primeiro.
UFPA - PPGEE – LPRAD - LINC
Conceitos Básicos
◼ O controlador de pedidos de interrupção é um
dispositivo responsável por avaliar as interrupções
geradas e suas prioridades de atendimento.
◼ A interrupção tornou possível a implementação da
concorrência nos computadores, sendo o fundamento
básico dos sistemas multiprogramáveis.
UFPA - PPGEE – LPRAD - LINC
Conceitos Básicos
◼ Interrupção de Hardware: pelo dispositivos periféricos
ou pelo relógio (timer).
◼ Interrupção de Software: são system calls (chamadas
ao sistema) ou trap (armadilha).
Conceitos Básicos
Exceção:
◼ Resultado direto da execução de uma instrução do
próprio programa.
⚫ Exemplo: Situações como a divisão por zero ou a
ocorrência de um overflow.
Buffering
A técnica de buffering consiste na utilização de um buffer, para a
transferência de dados entre os dispositivos de E/S e a memória,
liberando imediatamente o dispositivo de entrada para realizar uma
nova leitura.
Nesse caso, enquanto o processador manipula o dado no buffer o
dispositivo realiza outra operação.
Permitindo minimizar o problema da disparidade da velocidade de
processamento existente entre o processador e os dispositivos de E/S.
UFPA - PPGEE – LPRAD - LINC
Buffering
Qual seria o objetivo da técnica do BUFFERING?
Spooling
É uma técnica semelhante à técnica de buffering, sendo que esta
técnica utiliza uma área em disco como se fosse um grande
buffer;
◼ Ex.: No momento em que um comando de impressão é
Spooling
Pergunta...
Qual a vantagem da técnica do spooling?
Reentrância
É comum vários usuários utilizarem os mesmos aplicativos
simultaneamente, então para evitar que vários códigos
executáveis fossem carregados na memória, e evitar o
desperdício de espaço → Reentrância;
Reentrância
Usuário A
Usuário C
Código
Sistemas em Camadas
◼ O S.O. é organizado em hierarquia de níveis.
◼ O sistema é dividido em níveis de complexidade,
sendo que os níveis inferiores prestam serviços
para os superiores.
◼ Implementam apenas a funcionalidade básica de
um sistema operacional, isto é, as Gerências de
processos/processador, de memória, de dispositivos
de entrada/saída e do sistema de arquivos.
UFPA - PPGEE – LPRAD - LINC
4 Programas de Usuário
2 Comunicação processo-usuário
1 Gerência de Memória
0 Multiprogramação
UFPA - PPGEE – LPRAD - LINC
⚫ Memória.
⚫ Entre outros.
UFPA - PPGEE – LPRAD - LINC
Exercício
Exercício 01:
1) Defina SO.
2) Como seria utilizar um computador sem um SO?
3) Qual o objetivo de um SO?
4) Quais elementos compõe um SO?
5) Qual a diferença entre Multiprogramação e monoprogramação e porque dizemos que
existe subutilização de recursos em sistemas monoprogramáveis?
6) O que são sistemas com múltiplos processadores e quais as suas vantagens?
7) O que são sistemas fortemente acoplado e fracamente acoplado?
8) Qual a grande diferença entre Sistemas operacionais de rede e sistemas distribuído?
9) O que é concorrência e como este conceito está presente nos sistemas
multiprogramáveis?
10) Explique o mecanismo de funcionamento das interrupções.
11) Explique o funcionamento das técnicas de Buffering, Spooling e Reentrância.
UFPA - PPGEE – LPRAD - LINC
Lembrando
Trabalho 1
Trabalho 2
(um por grupo) - criar aplicativos na linguagem C para
rodar no Linux utilizando as chamadas do sistema
operacional.
Entregar
Relatório com:
Objetivo
programa explicado
Sistemas Operacionais