sistemas operacionais - pucrsemoreno/undergraduate/cc/sisop/class_fil… · sistemas em camadas ......

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

Upload: others

Post on 15-Nov-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

Sistemas Operacionais

Conceitos

Edson [email protected]

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

Page 2: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

Sumário

Introdução

Arquitetura de Sistema Operacional

Chamadas de sistema.

Page 3: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

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

Page 4: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

Processos

4

Tabela de processos

Árvore de Processos

Comunicação entre processos

Identificação de processos (UID, GID)

Page 5: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

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

Page 6: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

Sumário

Introdução

Arquitetura de Sistema Operacional

Chamadas de sistema.

Page 7: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

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

Page 8: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

Arquitetura de SO

8

Sistemas monolíticos

Page 9: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

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)

Page 10: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

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

Page 11: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

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)

Page 12: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

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

Page 13: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

Arquitetura de SO

13

Micro Kernel

Page 14: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

Sumário

Introdução

Estrutura de um SO

Chamadas de sistema

Page 15: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

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.

Page 16: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

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

Page 17: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

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

Page 18: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

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)

Page 19: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

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

Page 20: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

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)

Page 21: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

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)

Page 22: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

Chamadas de sistema (system calls)

Sinalizações

Page 23: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

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)

Page 24: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

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

Page 25: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

Exemplo Chamadas de Sistema Linux

2

5

Page 26: Sistemas Operacionais - PUCRSemoreno/undergraduate/CC/sisop/class_fil… · Sistemas em camadas ... Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”. Capítulo

Referências

Silberschatz, G. “Operating System Concepts”. Capítulo 3

Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”.

Capítulo 1