chamadas de sistema (syscall) - eduardo sanestrutura dos sistemas operacionais estrutura básica...
TRANSCRIPT
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
-