Chamadas de Sistema (SYSCALL) · Estrutura dos Sistemas Operacionais Estrutura básica [Tanenbaum...

26

Transcript of Chamadas de Sistema (SYSCALL) · Estrutura dos Sistemas Operacionais Estrutura básica [Tanenbaum...

Chamadas de Sistema (SYSCALL)

Eduardo Ferreira dos Santos

Engenharia de Computaccedilatildeo

Centro Universitaacuterio de Brasiacutelia UniCEUB

Abril 2016

1 26

Sumaacuterio

1 Estrutura dos Sistemas Operacionais

2 System Calls

2 26

Estrutura dos Sistemas Operacionais

1 Estrutura dos Sistemas Operacionais

2 System Calls

3 26

Estrutura dos Sistemas Operacionais

Histoacuteria

Quase todos os sistemas operacionais vecircm da mesma raiz

Evoluccedilatildeo dos Sistemas Operacionais

4 26

Estrutura dos Sistemas Operacionais

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

5 26

Estrutura dos Sistemas Operacionais

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 11 Modelo de estruturaccedilatildeo para um kernel monoliacutetico

6 26

Estrutura dos Sistemas Operacionais

Sistemas Operacionais Unix

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

7 26

Estrutura dos Sistemas Operacionais

MS-DOS

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

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

8 26

Estrutura dos Sistemas Operacionais

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

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

9 26

Estrutura dos Sistemas Operacionais

Organizaccedilatildeo em camadas do SO

Figura 15 Organizaccedilatildeo das camadas [Galvin et al 2013]

10 26

Estrutura dos Sistemas Operacionais

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

11 26

Estrutura dos Sistemas Operacionais

Estrutura do microkernel

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

12 26

Estrutura dos Sistemas Operacionais

Linus x Tanenbaum

Figura 17 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

13 26

System Calls

1 Estrutura dos Sistemas Operacionais

2 System Calls

14 26

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

Absraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

15 26

System Calls

Exemplo de uma SYSCALL

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

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

16 26

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

17 26

System Calls

Exemplo de API Padratildeo

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

18 26

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

19 26

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

20 26

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • System Calls

Sumaacuterio

1 Estrutura dos Sistemas Operacionais

2 System Calls

2 26

Estrutura dos Sistemas Operacionais

1 Estrutura dos Sistemas Operacionais

2 System Calls

3 26

Estrutura dos Sistemas Operacionais

Histoacuteria

Quase todos os sistemas operacionais vecircm da mesma raiz

Evoluccedilatildeo dos Sistemas Operacionais

4 26

Estrutura dos Sistemas Operacionais

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

5 26

Estrutura dos Sistemas Operacionais

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 11 Modelo de estruturaccedilatildeo para um kernel monoliacutetico

6 26

Estrutura dos Sistemas Operacionais

Sistemas Operacionais Unix

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

7 26

Estrutura dos Sistemas Operacionais

MS-DOS

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

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

8 26

Estrutura dos Sistemas Operacionais

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

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

9 26

Estrutura dos Sistemas Operacionais

Organizaccedilatildeo em camadas do SO

Figura 15 Organizaccedilatildeo das camadas [Galvin et al 2013]

10 26

Estrutura dos Sistemas Operacionais

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

11 26

Estrutura dos Sistemas Operacionais

Estrutura do microkernel

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

12 26

Estrutura dos Sistemas Operacionais

Linus x Tanenbaum

Figura 17 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

13 26

System Calls

1 Estrutura dos Sistemas Operacionais

2 System Calls

14 26

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

Absraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

15 26

System Calls

Exemplo de uma SYSCALL

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

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

16 26

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

17 26

System Calls

Exemplo de API Padratildeo

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

18 26

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

19 26

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

20 26

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • System Calls

Estrutura dos Sistemas Operacionais

1 Estrutura dos Sistemas Operacionais

2 System Calls

3 26

Estrutura dos Sistemas Operacionais

Histoacuteria

Quase todos os sistemas operacionais vecircm da mesma raiz

Evoluccedilatildeo dos Sistemas Operacionais

4 26

Estrutura dos Sistemas Operacionais

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

5 26

Estrutura dos Sistemas Operacionais

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 11 Modelo de estruturaccedilatildeo para um kernel monoliacutetico

6 26

Estrutura dos Sistemas Operacionais

Sistemas Operacionais Unix

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

7 26

Estrutura dos Sistemas Operacionais

MS-DOS

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

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

8 26

Estrutura dos Sistemas Operacionais

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

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

9 26

Estrutura dos Sistemas Operacionais

Organizaccedilatildeo em camadas do SO

Figura 15 Organizaccedilatildeo das camadas [Galvin et al 2013]

10 26

Estrutura dos Sistemas Operacionais

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

11 26

Estrutura dos Sistemas Operacionais

Estrutura do microkernel

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

12 26

Estrutura dos Sistemas Operacionais

Linus x Tanenbaum

Figura 17 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

13 26

System Calls

1 Estrutura dos Sistemas Operacionais

2 System Calls

14 26

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

Absraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

15 26

System Calls

Exemplo de uma SYSCALL

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

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

16 26

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

17 26

System Calls

Exemplo de API Padratildeo

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

18 26

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

19 26

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

20 26

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • System Calls

Estrutura dos Sistemas Operacionais

Histoacuteria

Quase todos os sistemas operacionais vecircm da mesma raiz

Evoluccedilatildeo dos Sistemas Operacionais

4 26

Estrutura dos Sistemas Operacionais

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

5 26

Estrutura dos Sistemas Operacionais

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 11 Modelo de estruturaccedilatildeo para um kernel monoliacutetico

6 26

Estrutura dos Sistemas Operacionais

Sistemas Operacionais Unix

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

7 26

Estrutura dos Sistemas Operacionais

MS-DOS

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

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

8 26

Estrutura dos Sistemas Operacionais

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

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

9 26

Estrutura dos Sistemas Operacionais

Organizaccedilatildeo em camadas do SO

Figura 15 Organizaccedilatildeo das camadas [Galvin et al 2013]

10 26

Estrutura dos Sistemas Operacionais

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

11 26

Estrutura dos Sistemas Operacionais

Estrutura do microkernel

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

12 26

Estrutura dos Sistemas Operacionais

Linus x Tanenbaum

Figura 17 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

13 26

System Calls

1 Estrutura dos Sistemas Operacionais

2 System Calls

14 26

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

Absraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

15 26

System Calls

Exemplo de uma SYSCALL

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

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

16 26

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

17 26

System Calls

Exemplo de API Padratildeo

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

18 26

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

19 26

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

20 26

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • System Calls

Estrutura dos Sistemas Operacionais

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

5 26

Estrutura dos Sistemas Operacionais

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 11 Modelo de estruturaccedilatildeo para um kernel monoliacutetico

6 26

Estrutura dos Sistemas Operacionais

Sistemas Operacionais Unix

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

7 26

Estrutura dos Sistemas Operacionais

MS-DOS

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

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

8 26

Estrutura dos Sistemas Operacionais

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

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

9 26

Estrutura dos Sistemas Operacionais

Organizaccedilatildeo em camadas do SO

Figura 15 Organizaccedilatildeo das camadas [Galvin et al 2013]

10 26

Estrutura dos Sistemas Operacionais

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

11 26

Estrutura dos Sistemas Operacionais

Estrutura do microkernel

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

12 26

Estrutura dos Sistemas Operacionais

Linus x Tanenbaum

Figura 17 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

13 26

System Calls

1 Estrutura dos Sistemas Operacionais

2 System Calls

14 26

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

Absraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

15 26

System Calls

Exemplo de uma SYSCALL

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

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

16 26

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

17 26

System Calls

Exemplo de API Padratildeo

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

18 26

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

19 26

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

20 26

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • System Calls

Estrutura dos Sistemas Operacionais

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 11 Modelo de estruturaccedilatildeo para um kernel monoliacutetico

6 26

Estrutura dos Sistemas Operacionais

Sistemas Operacionais Unix

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

7 26

Estrutura dos Sistemas Operacionais

MS-DOS

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

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

8 26

Estrutura dos Sistemas Operacionais

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

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

9 26

Estrutura dos Sistemas Operacionais

Organizaccedilatildeo em camadas do SO

Figura 15 Organizaccedilatildeo das camadas [Galvin et al 2013]

10 26

Estrutura dos Sistemas Operacionais

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

11 26

Estrutura dos Sistemas Operacionais

Estrutura do microkernel

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

12 26

Estrutura dos Sistemas Operacionais

Linus x Tanenbaum

Figura 17 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

13 26

System Calls

1 Estrutura dos Sistemas Operacionais

2 System Calls

14 26

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

Absraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

15 26

System Calls

Exemplo de uma SYSCALL

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

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

16 26

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

17 26

System Calls

Exemplo de API Padratildeo

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

18 26

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

19 26

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

20 26

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • System Calls

Estrutura dos Sistemas Operacionais

Sistemas Operacionais Unix

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

7 26

Estrutura dos Sistemas Operacionais

MS-DOS

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

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

8 26

Estrutura dos Sistemas Operacionais

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

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

9 26

Estrutura dos Sistemas Operacionais

Organizaccedilatildeo em camadas do SO

Figura 15 Organizaccedilatildeo das camadas [Galvin et al 2013]

10 26

Estrutura dos Sistemas Operacionais

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

11 26

Estrutura dos Sistemas Operacionais

Estrutura do microkernel

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

12 26

Estrutura dos Sistemas Operacionais

Linus x Tanenbaum

Figura 17 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

13 26

System Calls

1 Estrutura dos Sistemas Operacionais

2 System Calls

14 26

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

Absraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

15 26

System Calls

Exemplo de uma SYSCALL

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

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

16 26

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

17 26

System Calls

Exemplo de API Padratildeo

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

18 26

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

19 26

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

20 26

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • System Calls

Estrutura dos Sistemas Operacionais

MS-DOS

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

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

8 26

Estrutura dos Sistemas Operacionais

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

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

9 26

Estrutura dos Sistemas Operacionais

Organizaccedilatildeo em camadas do SO

Figura 15 Organizaccedilatildeo das camadas [Galvin et al 2013]

10 26

Estrutura dos Sistemas Operacionais

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

11 26

Estrutura dos Sistemas Operacionais

Estrutura do microkernel

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

12 26

Estrutura dos Sistemas Operacionais

Linus x Tanenbaum

Figura 17 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

13 26

System Calls

1 Estrutura dos Sistemas Operacionais

2 System Calls

14 26

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

Absraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

15 26

System Calls

Exemplo de uma SYSCALL

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

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

16 26

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

17 26

System Calls

Exemplo de API Padratildeo

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

18 26

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

19 26

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

20 26

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • System Calls

Estrutura dos Sistemas Operacionais

Sistemas em Camadas

Hierarquia entre as camadas

Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade

Camadas do sistema satildeo dependentes

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

9 26

Estrutura dos Sistemas Operacionais

Organizaccedilatildeo em camadas do SO

Figura 15 Organizaccedilatildeo das camadas [Galvin et al 2013]

10 26

Estrutura dos Sistemas Operacionais

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

11 26

Estrutura dos Sistemas Operacionais

Estrutura do microkernel

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

12 26

Estrutura dos Sistemas Operacionais

Linus x Tanenbaum

Figura 17 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

13 26

System Calls

1 Estrutura dos Sistemas Operacionais

2 System Calls

14 26

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

Absraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

15 26

System Calls

Exemplo de uma SYSCALL

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

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

16 26

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

17 26

System Calls

Exemplo de API Padratildeo

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

18 26

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

19 26

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

20 26

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • System Calls

Estrutura dos Sistemas Operacionais

Organizaccedilatildeo em camadas do SO

Figura 15 Organizaccedilatildeo das camadas [Galvin et al 2013]

10 26

Estrutura dos Sistemas Operacionais

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

11 26

Estrutura dos Sistemas Operacionais

Estrutura do microkernel

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

12 26

Estrutura dos Sistemas Operacionais

Linus x Tanenbaum

Figura 17 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

13 26

System Calls

1 Estrutura dos Sistemas Operacionais

2 System Calls

14 26

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

Absraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

15 26

System Calls

Exemplo de uma SYSCALL

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

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

16 26

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

17 26

System Calls

Exemplo de API Padratildeo

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

18 26

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

19 26

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

20 26

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • System Calls

Estrutura dos Sistemas Operacionais

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

11 26

Estrutura dos Sistemas Operacionais

Estrutura do microkernel

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

12 26

Estrutura dos Sistemas Operacionais

Linus x Tanenbaum

Figura 17 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

13 26

System Calls

1 Estrutura dos Sistemas Operacionais

2 System Calls

14 26

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

Absraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

15 26

System Calls

Exemplo de uma SYSCALL

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

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

16 26

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

17 26

System Calls

Exemplo de API Padratildeo

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

18 26

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

19 26

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

20 26

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • System Calls

Estrutura dos Sistemas Operacionais

Estrutura do microkernel

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

12 26

Estrutura dos Sistemas Operacionais

Linus x Tanenbaum

Figura 17 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

13 26

System Calls

1 Estrutura dos Sistemas Operacionais

2 System Calls

14 26

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

Absraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

15 26

System Calls

Exemplo de uma SYSCALL

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

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

16 26

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

17 26

System Calls

Exemplo de API Padratildeo

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

18 26

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

19 26

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

20 26

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • System Calls

Estrutura dos Sistemas Operacionais

Linus x Tanenbaum

Figura 17 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]

13 26

System Calls

1 Estrutura dos Sistemas Operacionais

2 System Calls

14 26

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

Absraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

15 26

System Calls

Exemplo de uma SYSCALL

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

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

16 26

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

17 26

System Calls

Exemplo de API Padratildeo

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

18 26

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

19 26

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

20 26

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • System Calls

System Calls

1 Estrutura dos Sistemas Operacionais

2 System Calls

14 26

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

Absraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

15 26

System Calls

Exemplo de uma SYSCALL

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

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

16 26

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

17 26

System Calls

Exemplo de API Padratildeo

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

18 26

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

19 26

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

20 26

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • 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

Absraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos

POSIX (Unix Linux e Mac OS X)Java API

15 26

System Calls

Exemplo de uma SYSCALL

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

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

16 26

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

17 26

System Calls

Exemplo de API Padratildeo

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

18 26

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

19 26

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

20 26

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • System Calls

System Calls

Exemplo de uma SYSCALL

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

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

16 26

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

17 26

System Calls

Exemplo de API Padratildeo

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

18 26

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

19 26

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

20 26

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • 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

17 26

System Calls

Exemplo de API Padratildeo

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

18 26

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

19 26

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

20 26

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • System Calls

System Calls

Exemplo de API Padratildeo

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

18 26

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

19 26

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

20 26

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • 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

19 26

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

20 26

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • 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

20 26

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • System Calls

System Calls

Execuccedilatildeo da API

Figura 23 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 21 26

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • System Calls

System Calls

Utilizaccedilatildeo de tabelas

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

22 26

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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • 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 25 [Galvin et al 2013]

23 26

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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • 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 26[Galvin et al 2013]

24 26

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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • 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

25 26

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • System Calls

System Calls

OBRIGADO

PERGUNTAS

26 26

  • Estrutura dos Sistemas Operacionais
  • System Calls