sistemas operacionais - faculdade de...

26
Sistemas Operacionais Conceitos Edson Moreno [email protected] http://www.inf.pucrs.br/~emoreno

Upload: doananh

Post on 09-Nov-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Sistemas Operacionais

Conceitos

Edson [email protected]

http://www.inf.pucrs.br/~emoreno

Sumário

Introdução

Arquitetura de Sistema Operacional

Chamadas de sistema.

Processos

3

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

Processos

4

Tabela de processos

Árvore de Processos

Comunicação entre processos

Identificação de processos (UID, GID)

Espaços de Endereçamento

5

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

Sumário

Introdução

Arquitetura de Sistema Operacional

Chamadas de sistema.

Arquitetura de SO

7

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

Arquitetura de SO

8

Sistemas monolíticos

Arquitetura de SO

9

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)

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ópriamemória e processador

Escalonamento da CPU dá sensação que os usuários tem seu próprioprocessador

Arquitetura de SO

11

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)

Arquitetura de SO

12

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

Arquitetura de SO

13

Micro Kernel

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)

16

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 ???

Chamadas de sistema (system calls)

17

Podem ser divididas em grupos

Gerência de processos

Gerência de arquivos/diretórios

Sinalizações

Proteção

Gerência de tempo

Chamadas de sistema (system calls)

18

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)

Chamadas de sistema (system calls)

19

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

Chamadas de sistema (system calls)

20

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)

Chamadas de sistema (system calls)

21

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)

Chamadas de sistema (system calls)

Sinalizações

Chamadas de sistema (system calls)

23

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)

Chamadas de sistema (system calls)

24

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

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