Revisão sobre Hardware - eduardosan.com · Vários dispositivos de entrada/saída. Gerenciar todos...

33

Transcript of Revisão sobre Hardware - eduardosan.com · Vários dispositivos de entrada/saída. Gerenciar todos...

Revisatildeo sobre Hardware

Eduardo Ferreira dos Santos

Ciecircncia da Computaccedilatildeo

Centro Universitaacuterio de Brasiacutelia UniCEUB

Marccedilo 2017

1 33

Sumaacuterio

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

2 33

Estrutura dos Computadores

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

3 33

Estrutura dos Computadores

Sistemas Operacionais

O que eacute um sistema operacional

Programa que realiza a interface entre o hardware e o softwareUm monte de dispositivos de hardware

Um ou mais processadoresMemoacuteria principalDiscosImpressorasVaacuterios dispositivos de entradasaiacuteda

Gerenciar todos os dispositivos eacute o papel do sistema operacional

4 33

Estrutura dos Computadores

Sistemas Operacionais

O que eacute um sistema operacional

Programa que realiza a interface entre o hardware e o softwareUm monte de dispositivos de hardware

Um ou mais processadoresMemoacuteria principalDiscosImpressorasVaacuterios dispositivos de entradasaiacuteda

Gerenciar todos os dispositivos eacute o papel do sistema operacional

5 33

Estrutura dos Computadores

Revisatildeo dos componentes

Figura 11 Componentes de um computador pessoal[Tanenbaum and Machado Filho 1995]

6 33

Estrutura dos Computadores

Histoacuteria

Quase todos os sistemas operacionais vecircm da mesma raiz

Evoluccedilatildeo dos Sistemas Operacionais

7 33

Estrutura dos Computadores

Sistemas Operacionais

Sistema Operacional programa que age como um intermediaacuterio entreo usuaacuterio do computador e o hardwareObjetivos do sistema operacional [Galvin et al 2013]

Executar os programas e facilitar a soluccedilatildeo dos problemas do ponto doponto de vista do usuaacuterioFazer o computador mais faacutecil de utilizarUtilizar o hardware de maneira eciente

O Sistema Operacional realiza a interface entre o hardware e osoftware do ponto de vista do usuaacuterio

Eacute possiacutevel existir sistema operacional sem usuaacuterio

8 33

Estrutura dos Computadores

Estrutura dos Computadores

Os sistemas computacionais podem ser divididos nos seguintescomponentes

Hardware Fornece os recursos computacionais baacutesicos

Gerecircncia de processosGerecircncia de memoacuteriaGerecircncia de arquivos (EntradaSaiacuteda)

Sistema Operacional Controla e coordena a utilizaccedilatildeo do hardware entre asaplicaccedilotildees e usuaacuterios

Programas Dene a maneira com a qual os recursos do sistema satildeoutilizados para resolver os problemas dos usuaacuterios

Usuaacuterios Pessoas maacutequinas outros computadores

9 33

Estrutura dos Computadores

Deniccedilatildeo

O SO eacute um alocador de recursos [Galvin et al 2013]Gerencia todos os recursosResolve os conitos entre performance e prioridade de uso

O SO eacute um programa de controleControla a execuccedilatildeo dos programas para evitar erros e uso indevido

Programa que estaacute sempre em execuccedilatildeo no SO kernel

10 33

O Kernel

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

11 33

O Kernel

Sistemas Monoliacuteticos

Satildeo os mais comuns

O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo

Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados

Elas podem chamar umas as outras

Principal vantagem tempo de resposta das tarefas

Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo

12 33

O Kernel

Estrutura baacutesica [Tanenbaum and Machado Filho 1995]

1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo

Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico

13 33

O Kernel

Sistemas Operacionais Unix

Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]

14 33

O Kernel

MS-DOS

Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade

Figura 23 Estrutura do MS-DOS [Galvin et al 2013]

15 33

O Kernel

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]

16 33

O Kernel

Organizaccedilatildeo em camadas do SO

Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]

17 33

O Kernel

Microkernel

Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio

Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo

Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]

Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro

DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel

18 33

O Kernel

Estrutura do microkernel

Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]

19 33

O Kernel

Linus x Tanenbaum

Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

20 33

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

Sumaacuterio

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

2 33

Estrutura dos Computadores

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

3 33

Estrutura dos Computadores

Sistemas Operacionais

O que eacute um sistema operacional

Programa que realiza a interface entre o hardware e o softwareUm monte de dispositivos de hardware

Um ou mais processadoresMemoacuteria principalDiscosImpressorasVaacuterios dispositivos de entradasaiacuteda

Gerenciar todos os dispositivos eacute o papel do sistema operacional

4 33

Estrutura dos Computadores

Sistemas Operacionais

O que eacute um sistema operacional

Programa que realiza a interface entre o hardware e o softwareUm monte de dispositivos de hardware

Um ou mais processadoresMemoacuteria principalDiscosImpressorasVaacuterios dispositivos de entradasaiacuteda

Gerenciar todos os dispositivos eacute o papel do sistema operacional

5 33

Estrutura dos Computadores

Revisatildeo dos componentes

Figura 11 Componentes de um computador pessoal[Tanenbaum and Machado Filho 1995]

6 33

Estrutura dos Computadores

Histoacuteria

Quase todos os sistemas operacionais vecircm da mesma raiz

Evoluccedilatildeo dos Sistemas Operacionais

7 33

Estrutura dos Computadores

Sistemas Operacionais

Sistema Operacional programa que age como um intermediaacuterio entreo usuaacuterio do computador e o hardwareObjetivos do sistema operacional [Galvin et al 2013]

Executar os programas e facilitar a soluccedilatildeo dos problemas do ponto doponto de vista do usuaacuterioFazer o computador mais faacutecil de utilizarUtilizar o hardware de maneira eciente

O Sistema Operacional realiza a interface entre o hardware e osoftware do ponto de vista do usuaacuterio

Eacute possiacutevel existir sistema operacional sem usuaacuterio

8 33

Estrutura dos Computadores

Estrutura dos Computadores

Os sistemas computacionais podem ser divididos nos seguintescomponentes

Hardware Fornece os recursos computacionais baacutesicos

Gerecircncia de processosGerecircncia de memoacuteriaGerecircncia de arquivos (EntradaSaiacuteda)

Sistema Operacional Controla e coordena a utilizaccedilatildeo do hardware entre asaplicaccedilotildees e usuaacuterios

Programas Dene a maneira com a qual os recursos do sistema satildeoutilizados para resolver os problemas dos usuaacuterios

Usuaacuterios Pessoas maacutequinas outros computadores

9 33

Estrutura dos Computadores

Deniccedilatildeo

O SO eacute um alocador de recursos [Galvin et al 2013]Gerencia todos os recursosResolve os conitos entre performance e prioridade de uso

O SO eacute um programa de controleControla a execuccedilatildeo dos programas para evitar erros e uso indevido

Programa que estaacute sempre em execuccedilatildeo no SO kernel

10 33

O Kernel

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

11 33

O Kernel

Sistemas Monoliacuteticos

Satildeo os mais comuns

O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo

Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados

Elas podem chamar umas as outras

Principal vantagem tempo de resposta das tarefas

Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo

12 33

O Kernel

Estrutura baacutesica [Tanenbaum and Machado Filho 1995]

1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo

Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico

13 33

O Kernel

Sistemas Operacionais Unix

Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]

14 33

O Kernel

MS-DOS

Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade

Figura 23 Estrutura do MS-DOS [Galvin et al 2013]

15 33

O Kernel

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]

16 33

O Kernel

Organizaccedilatildeo em camadas do SO

Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]

17 33

O Kernel

Microkernel

Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio

Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo

Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]

Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro

DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel

18 33

O Kernel

Estrutura do microkernel

Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]

19 33

O Kernel

Linus x Tanenbaum

Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

20 33

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

Estrutura dos Computadores

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

3 33

Estrutura dos Computadores

Sistemas Operacionais

O que eacute um sistema operacional

Programa que realiza a interface entre o hardware e o softwareUm monte de dispositivos de hardware

Um ou mais processadoresMemoacuteria principalDiscosImpressorasVaacuterios dispositivos de entradasaiacuteda

Gerenciar todos os dispositivos eacute o papel do sistema operacional

4 33

Estrutura dos Computadores

Sistemas Operacionais

O que eacute um sistema operacional

Programa que realiza a interface entre o hardware e o softwareUm monte de dispositivos de hardware

Um ou mais processadoresMemoacuteria principalDiscosImpressorasVaacuterios dispositivos de entradasaiacuteda

Gerenciar todos os dispositivos eacute o papel do sistema operacional

5 33

Estrutura dos Computadores

Revisatildeo dos componentes

Figura 11 Componentes de um computador pessoal[Tanenbaum and Machado Filho 1995]

6 33

Estrutura dos Computadores

Histoacuteria

Quase todos os sistemas operacionais vecircm da mesma raiz

Evoluccedilatildeo dos Sistemas Operacionais

7 33

Estrutura dos Computadores

Sistemas Operacionais

Sistema Operacional programa que age como um intermediaacuterio entreo usuaacuterio do computador e o hardwareObjetivos do sistema operacional [Galvin et al 2013]

Executar os programas e facilitar a soluccedilatildeo dos problemas do ponto doponto de vista do usuaacuterioFazer o computador mais faacutecil de utilizarUtilizar o hardware de maneira eciente

O Sistema Operacional realiza a interface entre o hardware e osoftware do ponto de vista do usuaacuterio

Eacute possiacutevel existir sistema operacional sem usuaacuterio

8 33

Estrutura dos Computadores

Estrutura dos Computadores

Os sistemas computacionais podem ser divididos nos seguintescomponentes

Hardware Fornece os recursos computacionais baacutesicos

Gerecircncia de processosGerecircncia de memoacuteriaGerecircncia de arquivos (EntradaSaiacuteda)

Sistema Operacional Controla e coordena a utilizaccedilatildeo do hardware entre asaplicaccedilotildees e usuaacuterios

Programas Dene a maneira com a qual os recursos do sistema satildeoutilizados para resolver os problemas dos usuaacuterios

Usuaacuterios Pessoas maacutequinas outros computadores

9 33

Estrutura dos Computadores

Deniccedilatildeo

O SO eacute um alocador de recursos [Galvin et al 2013]Gerencia todos os recursosResolve os conitos entre performance e prioridade de uso

O SO eacute um programa de controleControla a execuccedilatildeo dos programas para evitar erros e uso indevido

Programa que estaacute sempre em execuccedilatildeo no SO kernel

10 33

O Kernel

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

11 33

O Kernel

Sistemas Monoliacuteticos

Satildeo os mais comuns

O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo

Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados

Elas podem chamar umas as outras

Principal vantagem tempo de resposta das tarefas

Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo

12 33

O Kernel

Estrutura baacutesica [Tanenbaum and Machado Filho 1995]

1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo

Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico

13 33

O Kernel

Sistemas Operacionais Unix

Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]

14 33

O Kernel

MS-DOS

Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade

Figura 23 Estrutura do MS-DOS [Galvin et al 2013]

15 33

O Kernel

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]

16 33

O Kernel

Organizaccedilatildeo em camadas do SO

Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]

17 33

O Kernel

Microkernel

Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio

Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo

Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]

Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro

DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel

18 33

O Kernel

Estrutura do microkernel

Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]

19 33

O Kernel

Linus x Tanenbaum

Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

20 33

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

Estrutura dos Computadores

Sistemas Operacionais

O que eacute um sistema operacional

Programa que realiza a interface entre o hardware e o softwareUm monte de dispositivos de hardware

Um ou mais processadoresMemoacuteria principalDiscosImpressorasVaacuterios dispositivos de entradasaiacuteda

Gerenciar todos os dispositivos eacute o papel do sistema operacional

4 33

Estrutura dos Computadores

Sistemas Operacionais

O que eacute um sistema operacional

Programa que realiza a interface entre o hardware e o softwareUm monte de dispositivos de hardware

Um ou mais processadoresMemoacuteria principalDiscosImpressorasVaacuterios dispositivos de entradasaiacuteda

Gerenciar todos os dispositivos eacute o papel do sistema operacional

5 33

Estrutura dos Computadores

Revisatildeo dos componentes

Figura 11 Componentes de um computador pessoal[Tanenbaum and Machado Filho 1995]

6 33

Estrutura dos Computadores

Histoacuteria

Quase todos os sistemas operacionais vecircm da mesma raiz

Evoluccedilatildeo dos Sistemas Operacionais

7 33

Estrutura dos Computadores

Sistemas Operacionais

Sistema Operacional programa que age como um intermediaacuterio entreo usuaacuterio do computador e o hardwareObjetivos do sistema operacional [Galvin et al 2013]

Executar os programas e facilitar a soluccedilatildeo dos problemas do ponto doponto de vista do usuaacuterioFazer o computador mais faacutecil de utilizarUtilizar o hardware de maneira eciente

O Sistema Operacional realiza a interface entre o hardware e osoftware do ponto de vista do usuaacuterio

Eacute possiacutevel existir sistema operacional sem usuaacuterio

8 33

Estrutura dos Computadores

Estrutura dos Computadores

Os sistemas computacionais podem ser divididos nos seguintescomponentes

Hardware Fornece os recursos computacionais baacutesicos

Gerecircncia de processosGerecircncia de memoacuteriaGerecircncia de arquivos (EntradaSaiacuteda)

Sistema Operacional Controla e coordena a utilizaccedilatildeo do hardware entre asaplicaccedilotildees e usuaacuterios

Programas Dene a maneira com a qual os recursos do sistema satildeoutilizados para resolver os problemas dos usuaacuterios

Usuaacuterios Pessoas maacutequinas outros computadores

9 33

Estrutura dos Computadores

Deniccedilatildeo

O SO eacute um alocador de recursos [Galvin et al 2013]Gerencia todos os recursosResolve os conitos entre performance e prioridade de uso

O SO eacute um programa de controleControla a execuccedilatildeo dos programas para evitar erros e uso indevido

Programa que estaacute sempre em execuccedilatildeo no SO kernel

10 33

O Kernel

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

11 33

O Kernel

Sistemas Monoliacuteticos

Satildeo os mais comuns

O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo

Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados

Elas podem chamar umas as outras

Principal vantagem tempo de resposta das tarefas

Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo

12 33

O Kernel

Estrutura baacutesica [Tanenbaum and Machado Filho 1995]

1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo

Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico

13 33

O Kernel

Sistemas Operacionais Unix

Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]

14 33

O Kernel

MS-DOS

Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade

Figura 23 Estrutura do MS-DOS [Galvin et al 2013]

15 33

O Kernel

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]

16 33

O Kernel

Organizaccedilatildeo em camadas do SO

Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]

17 33

O Kernel

Microkernel

Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio

Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo

Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]

Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro

DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel

18 33

O Kernel

Estrutura do microkernel

Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]

19 33

O Kernel

Linus x Tanenbaum

Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

20 33

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

Estrutura dos Computadores

Sistemas Operacionais

O que eacute um sistema operacional

Programa que realiza a interface entre o hardware e o softwareUm monte de dispositivos de hardware

Um ou mais processadoresMemoacuteria principalDiscosImpressorasVaacuterios dispositivos de entradasaiacuteda

Gerenciar todos os dispositivos eacute o papel do sistema operacional

5 33

Estrutura dos Computadores

Revisatildeo dos componentes

Figura 11 Componentes de um computador pessoal[Tanenbaum and Machado Filho 1995]

6 33

Estrutura dos Computadores

Histoacuteria

Quase todos os sistemas operacionais vecircm da mesma raiz

Evoluccedilatildeo dos Sistemas Operacionais

7 33

Estrutura dos Computadores

Sistemas Operacionais

Sistema Operacional programa que age como um intermediaacuterio entreo usuaacuterio do computador e o hardwareObjetivos do sistema operacional [Galvin et al 2013]

Executar os programas e facilitar a soluccedilatildeo dos problemas do ponto doponto de vista do usuaacuterioFazer o computador mais faacutecil de utilizarUtilizar o hardware de maneira eciente

O Sistema Operacional realiza a interface entre o hardware e osoftware do ponto de vista do usuaacuterio

Eacute possiacutevel existir sistema operacional sem usuaacuterio

8 33

Estrutura dos Computadores

Estrutura dos Computadores

Os sistemas computacionais podem ser divididos nos seguintescomponentes

Hardware Fornece os recursos computacionais baacutesicos

Gerecircncia de processosGerecircncia de memoacuteriaGerecircncia de arquivos (EntradaSaiacuteda)

Sistema Operacional Controla e coordena a utilizaccedilatildeo do hardware entre asaplicaccedilotildees e usuaacuterios

Programas Dene a maneira com a qual os recursos do sistema satildeoutilizados para resolver os problemas dos usuaacuterios

Usuaacuterios Pessoas maacutequinas outros computadores

9 33

Estrutura dos Computadores

Deniccedilatildeo

O SO eacute um alocador de recursos [Galvin et al 2013]Gerencia todos os recursosResolve os conitos entre performance e prioridade de uso

O SO eacute um programa de controleControla a execuccedilatildeo dos programas para evitar erros e uso indevido

Programa que estaacute sempre em execuccedilatildeo no SO kernel

10 33

O Kernel

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

11 33

O Kernel

Sistemas Monoliacuteticos

Satildeo os mais comuns

O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo

Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados

Elas podem chamar umas as outras

Principal vantagem tempo de resposta das tarefas

Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo

12 33

O Kernel

Estrutura baacutesica [Tanenbaum and Machado Filho 1995]

1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo

Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico

13 33

O Kernel

Sistemas Operacionais Unix

Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]

14 33

O Kernel

MS-DOS

Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade

Figura 23 Estrutura do MS-DOS [Galvin et al 2013]

15 33

O Kernel

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]

16 33

O Kernel

Organizaccedilatildeo em camadas do SO

Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]

17 33

O Kernel

Microkernel

Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio

Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo

Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]

Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro

DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel

18 33

O Kernel

Estrutura do microkernel

Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]

19 33

O Kernel

Linus x Tanenbaum

Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

20 33

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

Estrutura dos Computadores

Revisatildeo dos componentes

Figura 11 Componentes de um computador pessoal[Tanenbaum and Machado Filho 1995]

6 33

Estrutura dos Computadores

Histoacuteria

Quase todos os sistemas operacionais vecircm da mesma raiz

Evoluccedilatildeo dos Sistemas Operacionais

7 33

Estrutura dos Computadores

Sistemas Operacionais

Sistema Operacional programa que age como um intermediaacuterio entreo usuaacuterio do computador e o hardwareObjetivos do sistema operacional [Galvin et al 2013]

Executar os programas e facilitar a soluccedilatildeo dos problemas do ponto doponto de vista do usuaacuterioFazer o computador mais faacutecil de utilizarUtilizar o hardware de maneira eciente

O Sistema Operacional realiza a interface entre o hardware e osoftware do ponto de vista do usuaacuterio

Eacute possiacutevel existir sistema operacional sem usuaacuterio

8 33

Estrutura dos Computadores

Estrutura dos Computadores

Os sistemas computacionais podem ser divididos nos seguintescomponentes

Hardware Fornece os recursos computacionais baacutesicos

Gerecircncia de processosGerecircncia de memoacuteriaGerecircncia de arquivos (EntradaSaiacuteda)

Sistema Operacional Controla e coordena a utilizaccedilatildeo do hardware entre asaplicaccedilotildees e usuaacuterios

Programas Dene a maneira com a qual os recursos do sistema satildeoutilizados para resolver os problemas dos usuaacuterios

Usuaacuterios Pessoas maacutequinas outros computadores

9 33

Estrutura dos Computadores

Deniccedilatildeo

O SO eacute um alocador de recursos [Galvin et al 2013]Gerencia todos os recursosResolve os conitos entre performance e prioridade de uso

O SO eacute um programa de controleControla a execuccedilatildeo dos programas para evitar erros e uso indevido

Programa que estaacute sempre em execuccedilatildeo no SO kernel

10 33

O Kernel

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

11 33

O Kernel

Sistemas Monoliacuteticos

Satildeo os mais comuns

O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo

Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados

Elas podem chamar umas as outras

Principal vantagem tempo de resposta das tarefas

Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo

12 33

O Kernel

Estrutura baacutesica [Tanenbaum and Machado Filho 1995]

1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo

Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico

13 33

O Kernel

Sistemas Operacionais Unix

Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]

14 33

O Kernel

MS-DOS

Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade

Figura 23 Estrutura do MS-DOS [Galvin et al 2013]

15 33

O Kernel

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]

16 33

O Kernel

Organizaccedilatildeo em camadas do SO

Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]

17 33

O Kernel

Microkernel

Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio

Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo

Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]

Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro

DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel

18 33

O Kernel

Estrutura do microkernel

Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]

19 33

O Kernel

Linus x Tanenbaum

Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

20 33

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

Estrutura dos Computadores

Histoacuteria

Quase todos os sistemas operacionais vecircm da mesma raiz

Evoluccedilatildeo dos Sistemas Operacionais

7 33

Estrutura dos Computadores

Sistemas Operacionais

Sistema Operacional programa que age como um intermediaacuterio entreo usuaacuterio do computador e o hardwareObjetivos do sistema operacional [Galvin et al 2013]

Executar os programas e facilitar a soluccedilatildeo dos problemas do ponto doponto de vista do usuaacuterioFazer o computador mais faacutecil de utilizarUtilizar o hardware de maneira eciente

O Sistema Operacional realiza a interface entre o hardware e osoftware do ponto de vista do usuaacuterio

Eacute possiacutevel existir sistema operacional sem usuaacuterio

8 33

Estrutura dos Computadores

Estrutura dos Computadores

Os sistemas computacionais podem ser divididos nos seguintescomponentes

Hardware Fornece os recursos computacionais baacutesicos

Gerecircncia de processosGerecircncia de memoacuteriaGerecircncia de arquivos (EntradaSaiacuteda)

Sistema Operacional Controla e coordena a utilizaccedilatildeo do hardware entre asaplicaccedilotildees e usuaacuterios

Programas Dene a maneira com a qual os recursos do sistema satildeoutilizados para resolver os problemas dos usuaacuterios

Usuaacuterios Pessoas maacutequinas outros computadores

9 33

Estrutura dos Computadores

Deniccedilatildeo

O SO eacute um alocador de recursos [Galvin et al 2013]Gerencia todos os recursosResolve os conitos entre performance e prioridade de uso

O SO eacute um programa de controleControla a execuccedilatildeo dos programas para evitar erros e uso indevido

Programa que estaacute sempre em execuccedilatildeo no SO kernel

10 33

O Kernel

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

11 33

O Kernel

Sistemas Monoliacuteticos

Satildeo os mais comuns

O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo

Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados

Elas podem chamar umas as outras

Principal vantagem tempo de resposta das tarefas

Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo

12 33

O Kernel

Estrutura baacutesica [Tanenbaum and Machado Filho 1995]

1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo

Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico

13 33

O Kernel

Sistemas Operacionais Unix

Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]

14 33

O Kernel

MS-DOS

Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade

Figura 23 Estrutura do MS-DOS [Galvin et al 2013]

15 33

O Kernel

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]

16 33

O Kernel

Organizaccedilatildeo em camadas do SO

Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]

17 33

O Kernel

Microkernel

Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio

Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo

Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]

Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro

DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel

18 33

O Kernel

Estrutura do microkernel

Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]

19 33

O Kernel

Linus x Tanenbaum

Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

20 33

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

Estrutura dos Computadores

Sistemas Operacionais

Sistema Operacional programa que age como um intermediaacuterio entreo usuaacuterio do computador e o hardwareObjetivos do sistema operacional [Galvin et al 2013]

Executar os programas e facilitar a soluccedilatildeo dos problemas do ponto doponto de vista do usuaacuterioFazer o computador mais faacutecil de utilizarUtilizar o hardware de maneira eciente

O Sistema Operacional realiza a interface entre o hardware e osoftware do ponto de vista do usuaacuterio

Eacute possiacutevel existir sistema operacional sem usuaacuterio

8 33

Estrutura dos Computadores

Estrutura dos Computadores

Os sistemas computacionais podem ser divididos nos seguintescomponentes

Hardware Fornece os recursos computacionais baacutesicos

Gerecircncia de processosGerecircncia de memoacuteriaGerecircncia de arquivos (EntradaSaiacuteda)

Sistema Operacional Controla e coordena a utilizaccedilatildeo do hardware entre asaplicaccedilotildees e usuaacuterios

Programas Dene a maneira com a qual os recursos do sistema satildeoutilizados para resolver os problemas dos usuaacuterios

Usuaacuterios Pessoas maacutequinas outros computadores

9 33

Estrutura dos Computadores

Deniccedilatildeo

O SO eacute um alocador de recursos [Galvin et al 2013]Gerencia todos os recursosResolve os conitos entre performance e prioridade de uso

O SO eacute um programa de controleControla a execuccedilatildeo dos programas para evitar erros e uso indevido

Programa que estaacute sempre em execuccedilatildeo no SO kernel

10 33

O Kernel

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

11 33

O Kernel

Sistemas Monoliacuteticos

Satildeo os mais comuns

O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo

Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados

Elas podem chamar umas as outras

Principal vantagem tempo de resposta das tarefas

Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo

12 33

O Kernel

Estrutura baacutesica [Tanenbaum and Machado Filho 1995]

1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo

Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico

13 33

O Kernel

Sistemas Operacionais Unix

Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]

14 33

O Kernel

MS-DOS

Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade

Figura 23 Estrutura do MS-DOS [Galvin et al 2013]

15 33

O Kernel

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]

16 33

O Kernel

Organizaccedilatildeo em camadas do SO

Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]

17 33

O Kernel

Microkernel

Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio

Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo

Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]

Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro

DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel

18 33

O Kernel

Estrutura do microkernel

Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]

19 33

O Kernel

Linus x Tanenbaum

Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

20 33

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

Estrutura dos Computadores

Estrutura dos Computadores

Os sistemas computacionais podem ser divididos nos seguintescomponentes

Hardware Fornece os recursos computacionais baacutesicos

Gerecircncia de processosGerecircncia de memoacuteriaGerecircncia de arquivos (EntradaSaiacuteda)

Sistema Operacional Controla e coordena a utilizaccedilatildeo do hardware entre asaplicaccedilotildees e usuaacuterios

Programas Dene a maneira com a qual os recursos do sistema satildeoutilizados para resolver os problemas dos usuaacuterios

Usuaacuterios Pessoas maacutequinas outros computadores

9 33

Estrutura dos Computadores

Deniccedilatildeo

O SO eacute um alocador de recursos [Galvin et al 2013]Gerencia todos os recursosResolve os conitos entre performance e prioridade de uso

O SO eacute um programa de controleControla a execuccedilatildeo dos programas para evitar erros e uso indevido

Programa que estaacute sempre em execuccedilatildeo no SO kernel

10 33

O Kernel

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

11 33

O Kernel

Sistemas Monoliacuteticos

Satildeo os mais comuns

O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo

Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados

Elas podem chamar umas as outras

Principal vantagem tempo de resposta das tarefas

Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo

12 33

O Kernel

Estrutura baacutesica [Tanenbaum and Machado Filho 1995]

1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo

Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico

13 33

O Kernel

Sistemas Operacionais Unix

Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]

14 33

O Kernel

MS-DOS

Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade

Figura 23 Estrutura do MS-DOS [Galvin et al 2013]

15 33

O Kernel

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]

16 33

O Kernel

Organizaccedilatildeo em camadas do SO

Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]

17 33

O Kernel

Microkernel

Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio

Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo

Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]

Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro

DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel

18 33

O Kernel

Estrutura do microkernel

Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]

19 33

O Kernel

Linus x Tanenbaum

Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

20 33

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

Estrutura dos Computadores

Deniccedilatildeo

O SO eacute um alocador de recursos [Galvin et al 2013]Gerencia todos os recursosResolve os conitos entre performance e prioridade de uso

O SO eacute um programa de controleControla a execuccedilatildeo dos programas para evitar erros e uso indevido

Programa que estaacute sempre em execuccedilatildeo no SO kernel

10 33

O Kernel

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

11 33

O Kernel

Sistemas Monoliacuteticos

Satildeo os mais comuns

O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo

Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados

Elas podem chamar umas as outras

Principal vantagem tempo de resposta das tarefas

Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo

12 33

O Kernel

Estrutura baacutesica [Tanenbaum and Machado Filho 1995]

1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo

Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico

13 33

O Kernel

Sistemas Operacionais Unix

Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]

14 33

O Kernel

MS-DOS

Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade

Figura 23 Estrutura do MS-DOS [Galvin et al 2013]

15 33

O Kernel

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]

16 33

O Kernel

Organizaccedilatildeo em camadas do SO

Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]

17 33

O Kernel

Microkernel

Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio

Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo

Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]

Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro

DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel

18 33

O Kernel

Estrutura do microkernel

Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]

19 33

O Kernel

Linus x Tanenbaum

Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

20 33

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

O Kernel

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

11 33

O Kernel

Sistemas Monoliacuteticos

Satildeo os mais comuns

O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo

Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados

Elas podem chamar umas as outras

Principal vantagem tempo de resposta das tarefas

Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo

12 33

O Kernel

Estrutura baacutesica [Tanenbaum and Machado Filho 1995]

1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo

Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico

13 33

O Kernel

Sistemas Operacionais Unix

Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]

14 33

O Kernel

MS-DOS

Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade

Figura 23 Estrutura do MS-DOS [Galvin et al 2013]

15 33

O Kernel

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]

16 33

O Kernel

Organizaccedilatildeo em camadas do SO

Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]

17 33

O Kernel

Microkernel

Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio

Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo

Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]

Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro

DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel

18 33

O Kernel

Estrutura do microkernel

Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]

19 33

O Kernel

Linus x Tanenbaum

Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

20 33

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

O Kernel

Sistemas Monoliacuteticos

Satildeo os mais comuns

O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo

Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados

Elas podem chamar umas as outras

Principal vantagem tempo de resposta das tarefas

Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo

12 33

O Kernel

Estrutura baacutesica [Tanenbaum and Machado Filho 1995]

1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo

Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico

13 33

O Kernel

Sistemas Operacionais Unix

Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]

14 33

O Kernel

MS-DOS

Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade

Figura 23 Estrutura do MS-DOS [Galvin et al 2013]

15 33

O Kernel

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]

16 33

O Kernel

Organizaccedilatildeo em camadas do SO

Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]

17 33

O Kernel

Microkernel

Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio

Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo

Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]

Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro

DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel

18 33

O Kernel

Estrutura do microkernel

Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]

19 33

O Kernel

Linus x Tanenbaum

Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

20 33

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

O Kernel

Estrutura baacutesica [Tanenbaum and Machado Filho 1995]

1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo

Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico

13 33

O Kernel

Sistemas Operacionais Unix

Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]

14 33

O Kernel

MS-DOS

Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade

Figura 23 Estrutura do MS-DOS [Galvin et al 2013]

15 33

O Kernel

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]

16 33

O Kernel

Organizaccedilatildeo em camadas do SO

Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]

17 33

O Kernel

Microkernel

Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio

Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo

Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]

Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro

DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel

18 33

O Kernel

Estrutura do microkernel

Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]

19 33

O Kernel

Linus x Tanenbaum

Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

20 33

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

O Kernel

Sistemas Operacionais Unix

Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]

14 33

O Kernel

MS-DOS

Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade

Figura 23 Estrutura do MS-DOS [Galvin et al 2013]

15 33

O Kernel

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]

16 33

O Kernel

Organizaccedilatildeo em camadas do SO

Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]

17 33

O Kernel

Microkernel

Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio

Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo

Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]

Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro

DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel

18 33

O Kernel

Estrutura do microkernel

Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]

19 33

O Kernel

Linus x Tanenbaum

Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

20 33

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

O Kernel

MS-DOS

Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade

Figura 23 Estrutura do MS-DOS [Galvin et al 2013]

15 33

O Kernel

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]

16 33

O Kernel

Organizaccedilatildeo em camadas do SO

Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]

17 33

O Kernel

Microkernel

Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio

Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo

Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]

Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro

DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel

18 33

O Kernel

Estrutura do microkernel

Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]

19 33

O Kernel

Linus x Tanenbaum

Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

20 33

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

O Kernel

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]

16 33

O Kernel

Organizaccedilatildeo em camadas do SO

Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]

17 33

O Kernel

Microkernel

Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio

Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo

Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]

Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro

DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel

18 33

O Kernel

Estrutura do microkernel

Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]

19 33

O Kernel

Linus x Tanenbaum

Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

20 33

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

O Kernel

Organizaccedilatildeo em camadas do SO

Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]

17 33

O Kernel

Microkernel

Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio

Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo

Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]

Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro

DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel

18 33

O Kernel

Estrutura do microkernel

Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]

19 33

O Kernel

Linus x Tanenbaum

Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

20 33

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

O Kernel

Microkernel

Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio

Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo

Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]

Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro

DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel

18 33

O Kernel

Estrutura do microkernel

Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]

19 33

O Kernel

Linus x Tanenbaum

Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

20 33

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

O Kernel

Estrutura do microkernel

Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]

19 33

O Kernel

Linus x Tanenbaum

Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

20 33

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

O Kernel

Linus x Tanenbaum

Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

20 33

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

System Calls

1 Estrutura dos Computadores

2 O Kernel

3 System Calls

21 33

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

System Calls

Deniccedilatildeo

Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais

1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador

O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador

Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

22 33

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

System Calls

Exemplo de uma SYSCALL

Lembre-se o processador soacute pode rodar um programa de cada vez

Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]

23 33

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

System Calls

Implementaccedilatildeo de SYSCALL

Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional

A interface executa a chamada e retorna os valores de resultado

O programa natildeo precisa saber como a SYSCALL eacute implementada

Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna

Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores

24 33

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

System Calls

Exemplo de API Padratildeo

Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]

25 33

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

System Calls

Envio de paracircmetros

Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]

1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo

enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo

programa (push) e removidos pelo SO (pop)

Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada

26 33

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

System Calls

Utilizaccedilatildeo de pilhas (read)

1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida

ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa

que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha

27 33

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

System Calls

Execuccedilatildeo da API

Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

System Calls

Utilizaccedilatildeo de tabelas

Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]

29 33

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

System Calls

Programa no MS-DOS

Uma uacutenica tarefa(singletasking)

O shell eacute carregado junto como sistema

Espaccedilo de memoacuteria uacutenico

Saiacuteda do programa -gt shellrecarregado

Figura 35 [Galvin et al 2013]

30 33

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

System Calls

Programa no FreeBSD

Variante do Unix

Multitasking

Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa

exec() carrega um programa noprocessoshell espera o m e retorna oresultado

Resultados

code=0 Sem erroscodegt0 Algum erro

Figura 36[Galvin et al 2013]

31 33

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

System Calls

Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc

Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall

32 33

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls

System Calls

OBRIGADO

PERGUNTAS

33 33

  • Estrutura dos Computadores
  • O Kernel
  • System Calls