Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Sistemas Operacionais
Dunfrey Pires Aragão
Departamento de Computação
CCT – CENTRO DE CIÊNCIAS E TECNOLOGIA
dunfrey.aragao@servidor.uepb.edu.br
Agenda
● Estrutura de um SO
2
Estrutura de um SO
Não é um bloco único e 
fechado de software 
executando sobre o 
hardware
Alguns dos componentes mais 
relevantes de um sistema 
operacional típico
é o coração do SO, responsável pela 
gerência dos recursos do hardware usados 
pelas aplicações. Também implementa as 
principais abstrações utilizadas pelos 
aplicativos e programas utilitários.
a inicialização que requer uma série de tarefas 
como reconhecer os dispositivos instalados, 
testá-los e configurá-los adequadamente para 
uso, e carregar o núcleo do sistema operacional 
em memória para iniciar sua execução.
módulos de código específicos para acessar os 
dispositivos físicos. Existe um driver para cada 
tipo de dispositivo, como discos rígidos SATA, 
portas USB, placas gráfica, etc.
são programas que facilitam o uso do SO, 
fornecendo funcionalidades complementares 
ao núcleo, como formatação de discos e 
mídias, configuração de dispositivos, 
manipulação de arquivos (mover, copiar, 
apagar), interpretador de comandos, 
terminal, interface gráfica, gerência de 
janelas, etc
Neste tipo de camada, 
usualmente é executado em 
um modo especial de 
operação do processador, 
denominado modo privilegiado 
ou modo Sistema. Os demais 
programas e aplicaçÕes 
executam em modo usuário
Arquitetura do computador
A principal característica desse modelo é a ideia de “programa armazenado”, ou 
seja, o programa a ser executado reside na memória junto com os dados.
O centro do 
sistema de 
computação
ULA:
- Cálculos
- op. lógicas
- Reg. dados de 
trabalho
- Reg. func. 
especiais 
(contador, 
ponteiros, flags)
Posição de memória a ser acessadaTransporta a informação a ser transferida entre processador e memoriaIndica a operação a efetuar
Modelo de John 
von Neumann
Mediador de 
acesso entre 
processador e 
memória
Acessados por circuitos 
eletrônicos específicos, 
denominados controladores
Interrupções e exceções
A comunicação processador e dispositivos se dá 
através do acesso às portas de E/S.
Esse acesso é feito por iniciativa do processador, 
quando este precisa ler ou escrever dados.
Se, por acaso, ocorra o que ocorre muitas vezes, 
que é um dispositivo precisando informar o 
processador sobre um evento interno:
- chegada de um pacote de rede
- um clique de mouse 
- conclusão de uma operação de disco. 
Quais são as possíveis opções/ações 
do processador?
Rotina de tratamento de interrupção
Interrupt handler
1. O processador está executando um programa qualquer (em outras 
palavras, um f luxo de execução). Um pacote vindo da rede é recebido pela 
placa Ethernet. O que acontece agora?
2. O controlador Ethernet envia uma solicitação de interrupção (IRQ – 
Interrupt ReQuest) ao processador;
3. O processamento é desviado do programa em execução para a rotina de 
tratamento de interrupções, e a rotina de tratamento é executada para 
interagir com o controlador de rede (via barramentos de dados e de 
endereços) para transferir os dados do pacote de rede do controlador para a 
memória;4. A rotina de tratamento da interrupção é finalizada e o processador retorna 
à execução do programa que havia sido interrompido.
● Para distinguir interrupções 
geradas por dispositivos 
distintos, cada interrupção é 
identificada pelo hardware por 
um número inteiro.
○ Cada IRQ deve disparar sua 
própria rotina de tratamento de 
interrupção. A maioria das 
arquiteturas atuais define uma 
tabela de endereços de funções 
denominada Tabela de 
Interrupções (IVT- Interrupt Vector 
Table);
3C20h
Entrada 5 recebe 
valor 3c20h, então a 
rotina de tratamento 
da IRQ 5 iniciará na 
posição 3C20h da 
memória RAM
● O que seriam Exceções então?
São eventos gerados pelo próprio processador e que podem ocasionar 
desvios de execução.
• Então é o mesmo que interrupção?
• Instruções ilegais
• Operandos inválidos
• Tentativas de divisão por 0 (zero)
• E ainda existem o comando Trap.
Desvia a execução a pedido do software em execução
Níveis de Privilégio
● Nível núcleo: kernelspace – flag 00
● Nível usuário: userspace – flag 11
○ RESET (reiniciar o processador) e
○ IN/OUT (acessar portas de entrada/saída)
● Flags que definem nível de privilégio 
só podem ser modificados por código 
executando no nível núcleo
Os níveis me permitem criar uma estrutura segura no SO
Wifi - SSD
SYSTEM CALL
• Java não permite chamadas diretas ao sistema como em C, ele fornece 
abstrações de alto nível (como System.out) que encapsulam essas 
operações.
• A JVM gerencia as interações com o sistema operacional. 
import java.io.*;
public class CopiarArquivo {
 public static void main(String[] args) {
 // Caminhos dos arquivos de origem e destino
 String caminhoOrigem = "arquivo_origem.txt";
 String caminhoDestino = "arquivo_destino.txt";
 
 }
}
Olá, mundo! 
Este é um exemplo de manipulação de arquivos em Java. 
Java é uma linguagem poderosa e versátil. 
OLÁ, MUNDO! 
ESTE É UM EXEMPLO DE MANIPULAÇÃO DE ARQUIVOS EM JAVA. 
JAVA É UMA LINGUAGEM PODEROSA E VERSÁTIL. 
Onde estão as Syscalls?
● Leitura de Arquivo (BufferedReader):
○ Quando você usa BufferedReader para ler um arquivo, a JVM internamente faz chamadas ao sistema 
como open() (para abrir o arquivo) e read() (para ler o conteúdo do arquivo).
● Escrita de Arquivo (BufferedWriter):
○ Quando você usa BufferedWriter para escrever em um arquivo, a JVM internamente faz chamadas 
ao sistema como open() (para abrir ou criar o arquivo) e write() (para escrever o conteúdo no 
arquivo).
● Fechamento de Recursos:
○ Quando os recursos (BufferedReader e BufferedWriter) são fechados (automaticamente pelo 
try-with-resources), a JVM faz uma chamada ao sistema close() para liberar os descritores de 
arquivo.
Entender como funciona Linux e Windows
● LINUX
○ javac CopiarArquivo.java
○ java CopiarArquivo
○ strace -f -o syscalls.log java CopiarArquivo
■ Analise o arquivo syscalls.log:
■ Procure por chamadas como open(), read(), write() e close(), que estão relacionadas à 
manipulação de arquivos.
● WINDOWS
○ Clique em Filter > Add Filter e configure o filtro para mostrar apenas as atividades do 
processo Java.
sudo apt-get install 
strace 
Acesse o site da Microsoft e baixe o Process Monitor
Atividade (entrega até 24/02)
Escreva um código, que contém classe Processador. Neste, uma thread está em execução, que deve ser 
interrompido por um pacote da classe PacoteRede, que pede para ser processado. Ao final do processamento do 
pacote de rede, a thread retorna ao processo que parou e estava interrompida.
Processando... 
Processando... 1 segundo(s)
Processando... 2 segundo(s)
Pacote de rede chegou!
Interrompendo o processo atual.
Processando pacote de rede...
Retornando ao processamento inicial...
Processando... 3 segundo(s) após retorno.
Processando... 4 segundo(s) após retorno.
Processando... 5 segundo(s) após retorno.
Processamento concluído com sucesso.

Mais conteúdos dessa disciplina