Sistemas Operacionais

Propaganda
Sistemas Operacionais
Conceitos
Edson Moreno
[email protected]
http://www.inf.pucrs.br/~emoreno
Sumário
 Introdução
 Arquitetura de Sistema Operacional
 Chamadas de sistema.
Processos
 Basicamente, um programa em execução
 Requer
 CPU, memória, I/O
 Possui espaço de endereçamento
 Programa executável, dados do programa e sua pilha
 Pode manipular determinados registradores
 Contador de programa e ponteiro pra pilha
 Multiprogramação
 Vários processos sendo executados
 Escalonamento
 Salvamento de contexto
3
Processos
 Tabela de processos
 Árvore de Processos
 Comunicação entre processos
 Identificação de processos (UID, GID)
4
Espaços de Endereçamento
 SOs simples
 Apenas um programa por vez está na memória
 SOs mais sofisticados
 Multiprogramação
 Um processo não pode interferir na execução de outro
 Endereços são de 32 ou 64 bits (maioria)
 232 ou 264 bytes
 Se precisar mais espaço do que pode endereçar?
 Memória virtual
5
Sumário
 Introdução
 Arquitetura de Sistema Operacional
 Chamadas de sistema.
Arquitetura de SO
 Sistemas monolíticos
 Coleção de processos sequenciais cooperantes
 Chamadas de sistemas
 Fluxo de operação
 Recebe solicitações dos programas de usuário
 Executa em modo de núcleo
 Retorna um resultado
7
Arquitetura de SO
 Sistemas monolíticos
8
Arquitetura de SO
 Sistemas em camadas
 Conjunto de processos sequenciais cooperantes
 Cada processo com uma função bem definida
 Gerência de memória, driver de periférico, etc
 ex: THE (Dijkstra 1968)
5: operador
4: programas usuário
3: gerência de entrada/saída
2: comunicação console do operador-processo
1: gerência de memória
0: alocação do processador e multiprogramação (tratamento de interrupções)
9
Arquitetura de SO
 Máquinas virtuais
 Permite a execução de múltiplos SOs virtuais em um único SO real
 Trata o hardware e o núcleo do SO como se tudo fosse hw.
 Recursos do computador físico são compartilhados para criar a
máquina virtual.
 Prove uma interface idêntica para o hardware.
 O SO cria a ilusão de múltiplos processos, cada qual em sua própria
memória e processador
 Escalonamento da CPU dá sensação que os usuários tem seu próprio
processador
Arquitetura de SO
 Máquinas virtuais
 Recursos virtuais são mapeados para recursos reais
 Cada usuário possui uma máquina virtual mapeada sobre a
máquina real (ex. VM da IBM)
11
Arquitetura de SO
 Micro Kernel
 Baseada no modelo cliente/servidor
 Serviços do sistema são implementados por servidores especializados
 Microkernel implementa somente tratamento de interrupções,
gerência de memória (básico), funções básicas de
escalonamento
 clientes (programas de usuários) solicitam serviços ao SO
(microkernel) que reencaminha para os serviços especializados
 modularidade e extensibilidade
 Benefícios
 Código de fácil extensão
 Fácil adaptação do SO para novas arquiteturas
 Mais confiável, visto que menos código está rodando no SO
12
Arquitetura de SO
 Micro Kernel
13
Sumário
 Introdução
 Estrutura de um SO
 Chamadas de sistema
Chamada de sistema
 Forma na qual o SO disponibiliza seus serviços
 System calls prove interface entre um processo e o SO.
 Geralmente disponibilizado como instrução em assembly
 Três métodos usados para passagem de parâmetro entre
processo do usuário e SO.
 Passagem de parâmetros por registrador.
 Armazenamento de parâmetros em tabela na memória, sendo o
endereço da tabela passado como parâmetro por registrador.
 Empilhamento (Push) de parâmetros na pilha pelo processo e o
consequente desempilhamento pelo SO.
Chamadas de sistema (system calls)
 Executam em modo núcleo
 Realiza troca de contexto: usuário -> núcleo (kernel)
 Processo que faz chamada de sistema fica bloqueado
 Implementação depende do HW existente
 ex:
 INTEL/Linux -> INT 80H (número da rotina é passado no registrador
EAX)
 MIPS ???
16
Chamadas de sistema (system calls)
 Podem ser divididas em grupos
 Gerência de processos
 Gerência de arquivos/diretórios
 Sinalizações
 Proteção
 Gerência de tempo
17
Chamadas de sistema (system calls)
 Gerência de processos
 Criação de processos (fork, exec)
 Espera a finalização de processo (wait, waitpid)
 Termina a execução do processo (exit)
 Informação sobre processos (getpid)
 Aumenta segmento de dados (brk, sbrk)
18
Chamadas de sistema (system calls)
 Gerência de arquivos
 Criação/abertura de arquivos (creat, mknod, open)
 Fechamento de arquivos (close)
 Leitura/escrita de arquivos (read, write)
 Movimentação do ponteiro do arquivo (lseek)
 Informações (stat, fstat, access)
 Execução de operações especiais em arquivos especais (ioctl,
fcntl)
 controlar dispositivos de bloco / configurar terminal
19
Chamadas de sistema (system calls)
 Gerência de diretórios
 Criação/remoção de diretórios (mkdir, rmdir)
 Manipulação de links (link, unlink)
 (Des)Montagem no sistema de arquivos (mount, umount)
 Mudar diretório atual (chdir)
 Mudar diretório root / (chroot)
20
Chamadas de sistema (system calls)
 Sinalização
 Rotinas para execução de operações que preemptam a execução
de um processo corrente (sigaction, sigreturn, kill)
 Informar exceções detectadas pelo hardware (sigaction,
sigreturn)
 Definição de limites de tempo (timeouts) (alarm)
 Suspender um processo por tempo indeterminado (pause)
 Habilitar/desabilitar a recepção de sinais em um processo
(sigprocmask, sigpending)
21
Chamadas de sistema (system calls)
 Sinalizações
Chamadas de sistema (system calls)
 Proteção
 Modificar permissões de acesso em arquivos (chmod)
 Informações de usuário (getuid, setuid, getgid, setgid)
 Mudar o proprietário de um arquivo (chown)
23
Chamadas de sistema (system calls)
 Gerência de tempo
 Verificar hora atual (time)
 segundos desde 1 de janeiro de 1970
 Modificar hora (stime)
 Modifica os horários de acesso de um arquivo (utime)
 Informações sobre uso de CPU pelo usuário (times)
 tempo gasto pelo usuário nos modos de usuário e sistema
24
Exemplo Chamadas de Sistema Linux
2
5
Referências
 Silberschatz, G. “Operating System Concepts”. Capítulo 3
 Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”.
Capítulo 1
Download