Revisatildeo sobre Hardware
Eduardo Ferreira dos Santos
Ciecircncia da Computaccedilatildeo
Centro Universitaacuterio de Brasiacutelia UniCEUB
Marccedilo 2017
1 33
Sumaacuterio
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
2 33
Estrutura dos Computadores
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
3 33
Estrutura dos Computadores
Sistemas Operacionais
O que eacute um sistema operacional
Programa que realiza a interface entre o hardware e o softwareUm monte de dispositivos de hardware
Um ou mais processadoresMemoacuteria principalDiscosImpressorasVaacuterios dispositivos de entradasaiacuteda
Gerenciar todos os dispositivos eacute o papel do sistema operacional
4 33
Estrutura dos Computadores
Sistemas Operacionais
O que eacute um sistema operacional
Programa que realiza a interface entre o hardware e o softwareUm monte de dispositivos de hardware
Um ou mais processadoresMemoacuteria principalDiscosImpressorasVaacuterios dispositivos de entradasaiacuteda
Gerenciar todos os dispositivos eacute o papel do sistema operacional
5 33
Estrutura dos Computadores
Revisatildeo dos componentes
Figura 11 Componentes de um computador pessoal[Tanenbaum and Machado Filho 1995]
6 33
Estrutura dos Computadores
Histoacuteria
Quase todos os sistemas operacionais vecircm da mesma raiz
Evoluccedilatildeo dos Sistemas Operacionais
7 33
Estrutura dos Computadores
Sistemas Operacionais
Sistema Operacional programa que age como um intermediaacuterio entreo usuaacuterio do computador e o hardwareObjetivos do sistema operacional [Galvin et al 2013]
Executar os programas e facilitar a soluccedilatildeo dos problemas do ponto doponto de vista do usuaacuterioFazer o computador mais faacutecil de utilizarUtilizar o hardware de maneira eciente
O Sistema Operacional realiza a interface entre o hardware e osoftware do ponto de vista do usuaacuterio
Eacute possiacutevel existir sistema operacional sem usuaacuterio
8 33
Estrutura dos Computadores
Estrutura dos Computadores
Os sistemas computacionais podem ser divididos nos seguintescomponentes
Hardware Fornece os recursos computacionais baacutesicos
Gerecircncia de processosGerecircncia de memoacuteriaGerecircncia de arquivos (EntradaSaiacuteda)
Sistema Operacional Controla e coordena a utilizaccedilatildeo do hardware entre asaplicaccedilotildees e usuaacuterios
Programas Dene a maneira com a qual os recursos do sistema satildeoutilizados para resolver os problemas dos usuaacuterios
Usuaacuterios Pessoas maacutequinas outros computadores
9 33
Estrutura dos Computadores
Deniccedilatildeo
O SO eacute um alocador de recursos [Galvin et al 2013]Gerencia todos os recursosResolve os conitos entre performance e prioridade de uso
O SO eacute um programa de controleControla a execuccedilatildeo dos programas para evitar erros e uso indevido
Programa que estaacute sempre em execuccedilatildeo no SO kernel
10 33
O Kernel
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
11 33
O Kernel
Sistemas Monoliacuteticos
Satildeo os mais comuns
O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo
Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados
Elas podem chamar umas as outras
Principal vantagem tempo de resposta das tarefas
Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo
12 33
O Kernel
Estrutura baacutesica [Tanenbaum and Machado Filho 1995]
1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo
Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico
13 33
O Kernel
Sistemas Operacionais Unix
Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]
14 33
O Kernel
MS-DOS
Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade
Figura 23 Estrutura do MS-DOS [Galvin et al 2013]
15 33
O Kernel
Sistemas em Camadas
Hierarquia entre as camadas
Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade
Camadas do sistema satildeo dependentes
Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]
16 33
O Kernel
Organizaccedilatildeo em camadas do SO
Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]
17 33
O Kernel
Microkernel
Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio
Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo
Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]
Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro
DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel
18 33
O Kernel
Estrutura do microkernel
Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]
19 33
O Kernel
Linus x Tanenbaum
Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]
20 33
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
Sumaacuterio
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
2 33
Estrutura dos Computadores
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
3 33
Estrutura dos Computadores
Sistemas Operacionais
O que eacute um sistema operacional
Programa que realiza a interface entre o hardware e o softwareUm monte de dispositivos de hardware
Um ou mais processadoresMemoacuteria principalDiscosImpressorasVaacuterios dispositivos de entradasaiacuteda
Gerenciar todos os dispositivos eacute o papel do sistema operacional
4 33
Estrutura dos Computadores
Sistemas Operacionais
O que eacute um sistema operacional
Programa que realiza a interface entre o hardware e o softwareUm monte de dispositivos de hardware
Um ou mais processadoresMemoacuteria principalDiscosImpressorasVaacuterios dispositivos de entradasaiacuteda
Gerenciar todos os dispositivos eacute o papel do sistema operacional
5 33
Estrutura dos Computadores
Revisatildeo dos componentes
Figura 11 Componentes de um computador pessoal[Tanenbaum and Machado Filho 1995]
6 33
Estrutura dos Computadores
Histoacuteria
Quase todos os sistemas operacionais vecircm da mesma raiz
Evoluccedilatildeo dos Sistemas Operacionais
7 33
Estrutura dos Computadores
Sistemas Operacionais
Sistema Operacional programa que age como um intermediaacuterio entreo usuaacuterio do computador e o hardwareObjetivos do sistema operacional [Galvin et al 2013]
Executar os programas e facilitar a soluccedilatildeo dos problemas do ponto doponto de vista do usuaacuterioFazer o computador mais faacutecil de utilizarUtilizar o hardware de maneira eciente
O Sistema Operacional realiza a interface entre o hardware e osoftware do ponto de vista do usuaacuterio
Eacute possiacutevel existir sistema operacional sem usuaacuterio
8 33
Estrutura dos Computadores
Estrutura dos Computadores
Os sistemas computacionais podem ser divididos nos seguintescomponentes
Hardware Fornece os recursos computacionais baacutesicos
Gerecircncia de processosGerecircncia de memoacuteriaGerecircncia de arquivos (EntradaSaiacuteda)
Sistema Operacional Controla e coordena a utilizaccedilatildeo do hardware entre asaplicaccedilotildees e usuaacuterios
Programas Dene a maneira com a qual os recursos do sistema satildeoutilizados para resolver os problemas dos usuaacuterios
Usuaacuterios Pessoas maacutequinas outros computadores
9 33
Estrutura dos Computadores
Deniccedilatildeo
O SO eacute um alocador de recursos [Galvin et al 2013]Gerencia todos os recursosResolve os conitos entre performance e prioridade de uso
O SO eacute um programa de controleControla a execuccedilatildeo dos programas para evitar erros e uso indevido
Programa que estaacute sempre em execuccedilatildeo no SO kernel
10 33
O Kernel
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
11 33
O Kernel
Sistemas Monoliacuteticos
Satildeo os mais comuns
O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo
Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados
Elas podem chamar umas as outras
Principal vantagem tempo de resposta das tarefas
Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo
12 33
O Kernel
Estrutura baacutesica [Tanenbaum and Machado Filho 1995]
1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo
Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico
13 33
O Kernel
Sistemas Operacionais Unix
Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]
14 33
O Kernel
MS-DOS
Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade
Figura 23 Estrutura do MS-DOS [Galvin et al 2013]
15 33
O Kernel
Sistemas em Camadas
Hierarquia entre as camadas
Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade
Camadas do sistema satildeo dependentes
Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]
16 33
O Kernel
Organizaccedilatildeo em camadas do SO
Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]
17 33
O Kernel
Microkernel
Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio
Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo
Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]
Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro
DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel
18 33
O Kernel
Estrutura do microkernel
Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]
19 33
O Kernel
Linus x Tanenbaum
Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]
20 33
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
Estrutura dos Computadores
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
3 33
Estrutura dos Computadores
Sistemas Operacionais
O que eacute um sistema operacional
Programa que realiza a interface entre o hardware e o softwareUm monte de dispositivos de hardware
Um ou mais processadoresMemoacuteria principalDiscosImpressorasVaacuterios dispositivos de entradasaiacuteda
Gerenciar todos os dispositivos eacute o papel do sistema operacional
4 33
Estrutura dos Computadores
Sistemas Operacionais
O que eacute um sistema operacional
Programa que realiza a interface entre o hardware e o softwareUm monte de dispositivos de hardware
Um ou mais processadoresMemoacuteria principalDiscosImpressorasVaacuterios dispositivos de entradasaiacuteda
Gerenciar todos os dispositivos eacute o papel do sistema operacional
5 33
Estrutura dos Computadores
Revisatildeo dos componentes
Figura 11 Componentes de um computador pessoal[Tanenbaum and Machado Filho 1995]
6 33
Estrutura dos Computadores
Histoacuteria
Quase todos os sistemas operacionais vecircm da mesma raiz
Evoluccedilatildeo dos Sistemas Operacionais
7 33
Estrutura dos Computadores
Sistemas Operacionais
Sistema Operacional programa que age como um intermediaacuterio entreo usuaacuterio do computador e o hardwareObjetivos do sistema operacional [Galvin et al 2013]
Executar os programas e facilitar a soluccedilatildeo dos problemas do ponto doponto de vista do usuaacuterioFazer o computador mais faacutecil de utilizarUtilizar o hardware de maneira eciente
O Sistema Operacional realiza a interface entre o hardware e osoftware do ponto de vista do usuaacuterio
Eacute possiacutevel existir sistema operacional sem usuaacuterio
8 33
Estrutura dos Computadores
Estrutura dos Computadores
Os sistemas computacionais podem ser divididos nos seguintescomponentes
Hardware Fornece os recursos computacionais baacutesicos
Gerecircncia de processosGerecircncia de memoacuteriaGerecircncia de arquivos (EntradaSaiacuteda)
Sistema Operacional Controla e coordena a utilizaccedilatildeo do hardware entre asaplicaccedilotildees e usuaacuterios
Programas Dene a maneira com a qual os recursos do sistema satildeoutilizados para resolver os problemas dos usuaacuterios
Usuaacuterios Pessoas maacutequinas outros computadores
9 33
Estrutura dos Computadores
Deniccedilatildeo
O SO eacute um alocador de recursos [Galvin et al 2013]Gerencia todos os recursosResolve os conitos entre performance e prioridade de uso
O SO eacute um programa de controleControla a execuccedilatildeo dos programas para evitar erros e uso indevido
Programa que estaacute sempre em execuccedilatildeo no SO kernel
10 33
O Kernel
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
11 33
O Kernel
Sistemas Monoliacuteticos
Satildeo os mais comuns
O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo
Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados
Elas podem chamar umas as outras
Principal vantagem tempo de resposta das tarefas
Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo
12 33
O Kernel
Estrutura baacutesica [Tanenbaum and Machado Filho 1995]
1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo
Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico
13 33
O Kernel
Sistemas Operacionais Unix
Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]
14 33
O Kernel
MS-DOS
Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade
Figura 23 Estrutura do MS-DOS [Galvin et al 2013]
15 33
O Kernel
Sistemas em Camadas
Hierarquia entre as camadas
Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade
Camadas do sistema satildeo dependentes
Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]
16 33
O Kernel
Organizaccedilatildeo em camadas do SO
Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]
17 33
O Kernel
Microkernel
Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio
Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo
Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]
Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro
DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel
18 33
O Kernel
Estrutura do microkernel
Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]
19 33
O Kernel
Linus x Tanenbaum
Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]
20 33
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
Estrutura dos Computadores
Sistemas Operacionais
O que eacute um sistema operacional
Programa que realiza a interface entre o hardware e o softwareUm monte de dispositivos de hardware
Um ou mais processadoresMemoacuteria principalDiscosImpressorasVaacuterios dispositivos de entradasaiacuteda
Gerenciar todos os dispositivos eacute o papel do sistema operacional
4 33
Estrutura dos Computadores
Sistemas Operacionais
O que eacute um sistema operacional
Programa que realiza a interface entre o hardware e o softwareUm monte de dispositivos de hardware
Um ou mais processadoresMemoacuteria principalDiscosImpressorasVaacuterios dispositivos de entradasaiacuteda
Gerenciar todos os dispositivos eacute o papel do sistema operacional
5 33
Estrutura dos Computadores
Revisatildeo dos componentes
Figura 11 Componentes de um computador pessoal[Tanenbaum and Machado Filho 1995]
6 33
Estrutura dos Computadores
Histoacuteria
Quase todos os sistemas operacionais vecircm da mesma raiz
Evoluccedilatildeo dos Sistemas Operacionais
7 33
Estrutura dos Computadores
Sistemas Operacionais
Sistema Operacional programa que age como um intermediaacuterio entreo usuaacuterio do computador e o hardwareObjetivos do sistema operacional [Galvin et al 2013]
Executar os programas e facilitar a soluccedilatildeo dos problemas do ponto doponto de vista do usuaacuterioFazer o computador mais faacutecil de utilizarUtilizar o hardware de maneira eciente
O Sistema Operacional realiza a interface entre o hardware e osoftware do ponto de vista do usuaacuterio
Eacute possiacutevel existir sistema operacional sem usuaacuterio
8 33
Estrutura dos Computadores
Estrutura dos Computadores
Os sistemas computacionais podem ser divididos nos seguintescomponentes
Hardware Fornece os recursos computacionais baacutesicos
Gerecircncia de processosGerecircncia de memoacuteriaGerecircncia de arquivos (EntradaSaiacuteda)
Sistema Operacional Controla e coordena a utilizaccedilatildeo do hardware entre asaplicaccedilotildees e usuaacuterios
Programas Dene a maneira com a qual os recursos do sistema satildeoutilizados para resolver os problemas dos usuaacuterios
Usuaacuterios Pessoas maacutequinas outros computadores
9 33
Estrutura dos Computadores
Deniccedilatildeo
O SO eacute um alocador de recursos [Galvin et al 2013]Gerencia todos os recursosResolve os conitos entre performance e prioridade de uso
O SO eacute um programa de controleControla a execuccedilatildeo dos programas para evitar erros e uso indevido
Programa que estaacute sempre em execuccedilatildeo no SO kernel
10 33
O Kernel
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
11 33
O Kernel
Sistemas Monoliacuteticos
Satildeo os mais comuns
O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo
Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados
Elas podem chamar umas as outras
Principal vantagem tempo de resposta das tarefas
Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo
12 33
O Kernel
Estrutura baacutesica [Tanenbaum and Machado Filho 1995]
1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo
Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico
13 33
O Kernel
Sistemas Operacionais Unix
Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]
14 33
O Kernel
MS-DOS
Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade
Figura 23 Estrutura do MS-DOS [Galvin et al 2013]
15 33
O Kernel
Sistemas em Camadas
Hierarquia entre as camadas
Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade
Camadas do sistema satildeo dependentes
Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]
16 33
O Kernel
Organizaccedilatildeo em camadas do SO
Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]
17 33
O Kernel
Microkernel
Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio
Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo
Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]
Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro
DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel
18 33
O Kernel
Estrutura do microkernel
Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]
19 33
O Kernel
Linus x Tanenbaum
Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]
20 33
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
Estrutura dos Computadores
Sistemas Operacionais
O que eacute um sistema operacional
Programa que realiza a interface entre o hardware e o softwareUm monte de dispositivos de hardware
Um ou mais processadoresMemoacuteria principalDiscosImpressorasVaacuterios dispositivos de entradasaiacuteda
Gerenciar todos os dispositivos eacute o papel do sistema operacional
5 33
Estrutura dos Computadores
Revisatildeo dos componentes
Figura 11 Componentes de um computador pessoal[Tanenbaum and Machado Filho 1995]
6 33
Estrutura dos Computadores
Histoacuteria
Quase todos os sistemas operacionais vecircm da mesma raiz
Evoluccedilatildeo dos Sistemas Operacionais
7 33
Estrutura dos Computadores
Sistemas Operacionais
Sistema Operacional programa que age como um intermediaacuterio entreo usuaacuterio do computador e o hardwareObjetivos do sistema operacional [Galvin et al 2013]
Executar os programas e facilitar a soluccedilatildeo dos problemas do ponto doponto de vista do usuaacuterioFazer o computador mais faacutecil de utilizarUtilizar o hardware de maneira eciente
O Sistema Operacional realiza a interface entre o hardware e osoftware do ponto de vista do usuaacuterio
Eacute possiacutevel existir sistema operacional sem usuaacuterio
8 33
Estrutura dos Computadores
Estrutura dos Computadores
Os sistemas computacionais podem ser divididos nos seguintescomponentes
Hardware Fornece os recursos computacionais baacutesicos
Gerecircncia de processosGerecircncia de memoacuteriaGerecircncia de arquivos (EntradaSaiacuteda)
Sistema Operacional Controla e coordena a utilizaccedilatildeo do hardware entre asaplicaccedilotildees e usuaacuterios
Programas Dene a maneira com a qual os recursos do sistema satildeoutilizados para resolver os problemas dos usuaacuterios
Usuaacuterios Pessoas maacutequinas outros computadores
9 33
Estrutura dos Computadores
Deniccedilatildeo
O SO eacute um alocador de recursos [Galvin et al 2013]Gerencia todos os recursosResolve os conitos entre performance e prioridade de uso
O SO eacute um programa de controleControla a execuccedilatildeo dos programas para evitar erros e uso indevido
Programa que estaacute sempre em execuccedilatildeo no SO kernel
10 33
O Kernel
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
11 33
O Kernel
Sistemas Monoliacuteticos
Satildeo os mais comuns
O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo
Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados
Elas podem chamar umas as outras
Principal vantagem tempo de resposta das tarefas
Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo
12 33
O Kernel
Estrutura baacutesica [Tanenbaum and Machado Filho 1995]
1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo
Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico
13 33
O Kernel
Sistemas Operacionais Unix
Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]
14 33
O Kernel
MS-DOS
Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade
Figura 23 Estrutura do MS-DOS [Galvin et al 2013]
15 33
O Kernel
Sistemas em Camadas
Hierarquia entre as camadas
Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade
Camadas do sistema satildeo dependentes
Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]
16 33
O Kernel
Organizaccedilatildeo em camadas do SO
Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]
17 33
O Kernel
Microkernel
Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio
Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo
Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]
Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro
DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel
18 33
O Kernel
Estrutura do microkernel
Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]
19 33
O Kernel
Linus x Tanenbaum
Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]
20 33
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
Estrutura dos Computadores
Revisatildeo dos componentes
Figura 11 Componentes de um computador pessoal[Tanenbaum and Machado Filho 1995]
6 33
Estrutura dos Computadores
Histoacuteria
Quase todos os sistemas operacionais vecircm da mesma raiz
Evoluccedilatildeo dos Sistemas Operacionais
7 33
Estrutura dos Computadores
Sistemas Operacionais
Sistema Operacional programa que age como um intermediaacuterio entreo usuaacuterio do computador e o hardwareObjetivos do sistema operacional [Galvin et al 2013]
Executar os programas e facilitar a soluccedilatildeo dos problemas do ponto doponto de vista do usuaacuterioFazer o computador mais faacutecil de utilizarUtilizar o hardware de maneira eciente
O Sistema Operacional realiza a interface entre o hardware e osoftware do ponto de vista do usuaacuterio
Eacute possiacutevel existir sistema operacional sem usuaacuterio
8 33
Estrutura dos Computadores
Estrutura dos Computadores
Os sistemas computacionais podem ser divididos nos seguintescomponentes
Hardware Fornece os recursos computacionais baacutesicos
Gerecircncia de processosGerecircncia de memoacuteriaGerecircncia de arquivos (EntradaSaiacuteda)
Sistema Operacional Controla e coordena a utilizaccedilatildeo do hardware entre asaplicaccedilotildees e usuaacuterios
Programas Dene a maneira com a qual os recursos do sistema satildeoutilizados para resolver os problemas dos usuaacuterios
Usuaacuterios Pessoas maacutequinas outros computadores
9 33
Estrutura dos Computadores
Deniccedilatildeo
O SO eacute um alocador de recursos [Galvin et al 2013]Gerencia todos os recursosResolve os conitos entre performance e prioridade de uso
O SO eacute um programa de controleControla a execuccedilatildeo dos programas para evitar erros e uso indevido
Programa que estaacute sempre em execuccedilatildeo no SO kernel
10 33
O Kernel
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
11 33
O Kernel
Sistemas Monoliacuteticos
Satildeo os mais comuns
O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo
Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados
Elas podem chamar umas as outras
Principal vantagem tempo de resposta das tarefas
Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo
12 33
O Kernel
Estrutura baacutesica [Tanenbaum and Machado Filho 1995]
1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo
Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico
13 33
O Kernel
Sistemas Operacionais Unix
Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]
14 33
O Kernel
MS-DOS
Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade
Figura 23 Estrutura do MS-DOS [Galvin et al 2013]
15 33
O Kernel
Sistemas em Camadas
Hierarquia entre as camadas
Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade
Camadas do sistema satildeo dependentes
Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]
16 33
O Kernel
Organizaccedilatildeo em camadas do SO
Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]
17 33
O Kernel
Microkernel
Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio
Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo
Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]
Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro
DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel
18 33
O Kernel
Estrutura do microkernel
Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]
19 33
O Kernel
Linus x Tanenbaum
Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]
20 33
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
Estrutura dos Computadores
Histoacuteria
Quase todos os sistemas operacionais vecircm da mesma raiz
Evoluccedilatildeo dos Sistemas Operacionais
7 33
Estrutura dos Computadores
Sistemas Operacionais
Sistema Operacional programa que age como um intermediaacuterio entreo usuaacuterio do computador e o hardwareObjetivos do sistema operacional [Galvin et al 2013]
Executar os programas e facilitar a soluccedilatildeo dos problemas do ponto doponto de vista do usuaacuterioFazer o computador mais faacutecil de utilizarUtilizar o hardware de maneira eciente
O Sistema Operacional realiza a interface entre o hardware e osoftware do ponto de vista do usuaacuterio
Eacute possiacutevel existir sistema operacional sem usuaacuterio
8 33
Estrutura dos Computadores
Estrutura dos Computadores
Os sistemas computacionais podem ser divididos nos seguintescomponentes
Hardware Fornece os recursos computacionais baacutesicos
Gerecircncia de processosGerecircncia de memoacuteriaGerecircncia de arquivos (EntradaSaiacuteda)
Sistema Operacional Controla e coordena a utilizaccedilatildeo do hardware entre asaplicaccedilotildees e usuaacuterios
Programas Dene a maneira com a qual os recursos do sistema satildeoutilizados para resolver os problemas dos usuaacuterios
Usuaacuterios Pessoas maacutequinas outros computadores
9 33
Estrutura dos Computadores
Deniccedilatildeo
O SO eacute um alocador de recursos [Galvin et al 2013]Gerencia todos os recursosResolve os conitos entre performance e prioridade de uso
O SO eacute um programa de controleControla a execuccedilatildeo dos programas para evitar erros e uso indevido
Programa que estaacute sempre em execuccedilatildeo no SO kernel
10 33
O Kernel
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
11 33
O Kernel
Sistemas Monoliacuteticos
Satildeo os mais comuns
O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo
Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados
Elas podem chamar umas as outras
Principal vantagem tempo de resposta das tarefas
Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo
12 33
O Kernel
Estrutura baacutesica [Tanenbaum and Machado Filho 1995]
1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo
Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico
13 33
O Kernel
Sistemas Operacionais Unix
Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]
14 33
O Kernel
MS-DOS
Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade
Figura 23 Estrutura do MS-DOS [Galvin et al 2013]
15 33
O Kernel
Sistemas em Camadas
Hierarquia entre as camadas
Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade
Camadas do sistema satildeo dependentes
Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]
16 33
O Kernel
Organizaccedilatildeo em camadas do SO
Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]
17 33
O Kernel
Microkernel
Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio
Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo
Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]
Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro
DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel
18 33
O Kernel
Estrutura do microkernel
Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]
19 33
O Kernel
Linus x Tanenbaum
Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]
20 33
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
Estrutura dos Computadores
Sistemas Operacionais
Sistema Operacional programa que age como um intermediaacuterio entreo usuaacuterio do computador e o hardwareObjetivos do sistema operacional [Galvin et al 2013]
Executar os programas e facilitar a soluccedilatildeo dos problemas do ponto doponto de vista do usuaacuterioFazer o computador mais faacutecil de utilizarUtilizar o hardware de maneira eciente
O Sistema Operacional realiza a interface entre o hardware e osoftware do ponto de vista do usuaacuterio
Eacute possiacutevel existir sistema operacional sem usuaacuterio
8 33
Estrutura dos Computadores
Estrutura dos Computadores
Os sistemas computacionais podem ser divididos nos seguintescomponentes
Hardware Fornece os recursos computacionais baacutesicos
Gerecircncia de processosGerecircncia de memoacuteriaGerecircncia de arquivos (EntradaSaiacuteda)
Sistema Operacional Controla e coordena a utilizaccedilatildeo do hardware entre asaplicaccedilotildees e usuaacuterios
Programas Dene a maneira com a qual os recursos do sistema satildeoutilizados para resolver os problemas dos usuaacuterios
Usuaacuterios Pessoas maacutequinas outros computadores
9 33
Estrutura dos Computadores
Deniccedilatildeo
O SO eacute um alocador de recursos [Galvin et al 2013]Gerencia todos os recursosResolve os conitos entre performance e prioridade de uso
O SO eacute um programa de controleControla a execuccedilatildeo dos programas para evitar erros e uso indevido
Programa que estaacute sempre em execuccedilatildeo no SO kernel
10 33
O Kernel
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
11 33
O Kernel
Sistemas Monoliacuteticos
Satildeo os mais comuns
O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo
Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados
Elas podem chamar umas as outras
Principal vantagem tempo de resposta das tarefas
Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo
12 33
O Kernel
Estrutura baacutesica [Tanenbaum and Machado Filho 1995]
1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo
Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico
13 33
O Kernel
Sistemas Operacionais Unix
Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]
14 33
O Kernel
MS-DOS
Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade
Figura 23 Estrutura do MS-DOS [Galvin et al 2013]
15 33
O Kernel
Sistemas em Camadas
Hierarquia entre as camadas
Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade
Camadas do sistema satildeo dependentes
Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]
16 33
O Kernel
Organizaccedilatildeo em camadas do SO
Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]
17 33
O Kernel
Microkernel
Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio
Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo
Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]
Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro
DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel
18 33
O Kernel
Estrutura do microkernel
Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]
19 33
O Kernel
Linus x Tanenbaum
Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]
20 33
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
Estrutura dos Computadores
Estrutura dos Computadores
Os sistemas computacionais podem ser divididos nos seguintescomponentes
Hardware Fornece os recursos computacionais baacutesicos
Gerecircncia de processosGerecircncia de memoacuteriaGerecircncia de arquivos (EntradaSaiacuteda)
Sistema Operacional Controla e coordena a utilizaccedilatildeo do hardware entre asaplicaccedilotildees e usuaacuterios
Programas Dene a maneira com a qual os recursos do sistema satildeoutilizados para resolver os problemas dos usuaacuterios
Usuaacuterios Pessoas maacutequinas outros computadores
9 33
Estrutura dos Computadores
Deniccedilatildeo
O SO eacute um alocador de recursos [Galvin et al 2013]Gerencia todos os recursosResolve os conitos entre performance e prioridade de uso
O SO eacute um programa de controleControla a execuccedilatildeo dos programas para evitar erros e uso indevido
Programa que estaacute sempre em execuccedilatildeo no SO kernel
10 33
O Kernel
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
11 33
O Kernel
Sistemas Monoliacuteticos
Satildeo os mais comuns
O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo
Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados
Elas podem chamar umas as outras
Principal vantagem tempo de resposta das tarefas
Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo
12 33
O Kernel
Estrutura baacutesica [Tanenbaum and Machado Filho 1995]
1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo
Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico
13 33
O Kernel
Sistemas Operacionais Unix
Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]
14 33
O Kernel
MS-DOS
Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade
Figura 23 Estrutura do MS-DOS [Galvin et al 2013]
15 33
O Kernel
Sistemas em Camadas
Hierarquia entre as camadas
Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade
Camadas do sistema satildeo dependentes
Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]
16 33
O Kernel
Organizaccedilatildeo em camadas do SO
Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]
17 33
O Kernel
Microkernel
Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio
Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo
Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]
Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro
DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel
18 33
O Kernel
Estrutura do microkernel
Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]
19 33
O Kernel
Linus x Tanenbaum
Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]
20 33
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
Estrutura dos Computadores
Deniccedilatildeo
O SO eacute um alocador de recursos [Galvin et al 2013]Gerencia todos os recursosResolve os conitos entre performance e prioridade de uso
O SO eacute um programa de controleControla a execuccedilatildeo dos programas para evitar erros e uso indevido
Programa que estaacute sempre em execuccedilatildeo no SO kernel
10 33
O Kernel
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
11 33
O Kernel
Sistemas Monoliacuteticos
Satildeo os mais comuns
O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo
Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados
Elas podem chamar umas as outras
Principal vantagem tempo de resposta das tarefas
Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo
12 33
O Kernel
Estrutura baacutesica [Tanenbaum and Machado Filho 1995]
1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo
Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico
13 33
O Kernel
Sistemas Operacionais Unix
Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]
14 33
O Kernel
MS-DOS
Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade
Figura 23 Estrutura do MS-DOS [Galvin et al 2013]
15 33
O Kernel
Sistemas em Camadas
Hierarquia entre as camadas
Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade
Camadas do sistema satildeo dependentes
Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]
16 33
O Kernel
Organizaccedilatildeo em camadas do SO
Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]
17 33
O Kernel
Microkernel
Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio
Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo
Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]
Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro
DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel
18 33
O Kernel
Estrutura do microkernel
Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]
19 33
O Kernel
Linus x Tanenbaum
Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]
20 33
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
O Kernel
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
11 33
O Kernel
Sistemas Monoliacuteticos
Satildeo os mais comuns
O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo
Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados
Elas podem chamar umas as outras
Principal vantagem tempo de resposta das tarefas
Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo
12 33
O Kernel
Estrutura baacutesica [Tanenbaum and Machado Filho 1995]
1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo
Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico
13 33
O Kernel
Sistemas Operacionais Unix
Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]
14 33
O Kernel
MS-DOS
Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade
Figura 23 Estrutura do MS-DOS [Galvin et al 2013]
15 33
O Kernel
Sistemas em Camadas
Hierarquia entre as camadas
Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade
Camadas do sistema satildeo dependentes
Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]
16 33
O Kernel
Organizaccedilatildeo em camadas do SO
Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]
17 33
O Kernel
Microkernel
Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio
Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo
Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]
Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro
DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel
18 33
O Kernel
Estrutura do microkernel
Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]
19 33
O Kernel
Linus x Tanenbaum
Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]
20 33
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
O Kernel
Sistemas Monoliacuteticos
Satildeo os mais comuns
O SO inteiro eacute executado como um uacutenico programa no modo nuacutecleo
Escrito como uma coleccedilatildeo de procedimentos com paracircmetros eresultados
Elas podem chamar umas as outras
Principal vantagem tempo de resposta das tarefas
Desvio de controle (trap) chaveamento entre modo usuaacuterio e modonuacutecleo
12 33
O Kernel
Estrutura baacutesica [Tanenbaum and Machado Filho 1995]
1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo
Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico
13 33
O Kernel
Sistemas Operacionais Unix
Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]
14 33
O Kernel
MS-DOS
Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade
Figura 23 Estrutura do MS-DOS [Galvin et al 2013]
15 33
O Kernel
Sistemas em Camadas
Hierarquia entre as camadas
Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade
Camadas do sistema satildeo dependentes
Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]
16 33
O Kernel
Organizaccedilatildeo em camadas do SO
Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]
17 33
O Kernel
Microkernel
Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio
Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo
Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]
Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro
DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel
18 33
O Kernel
Estrutura do microkernel
Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]
19 33
O Kernel
Linus x Tanenbaum
Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]
20 33
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
O Kernel
Estrutura baacutesica [Tanenbaum and Machado Filho 1995]
1 Um programa principal invoca a rotina do serviccedilo2 Um conjunto de rotinas de serviccedilo executam as chamadas de sistema3 Um conjunto de rotinas utilitaacuterias que auxiliam as rotinas de serviccedilo
Figura 21 Modelo de estruturaccedilatildeo para um kernel monoliacutetico
13 33
O Kernel
Sistemas Operacionais Unix
Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]
14 33
O Kernel
MS-DOS
Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade
Figura 23 Estrutura do MS-DOS [Galvin et al 2013]
15 33
O Kernel
Sistemas em Camadas
Hierarquia entre as camadas
Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade
Camadas do sistema satildeo dependentes
Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]
16 33
O Kernel
Organizaccedilatildeo em camadas do SO
Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]
17 33
O Kernel
Microkernel
Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio
Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo
Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]
Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro
DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel
18 33
O Kernel
Estrutura do microkernel
Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]
19 33
O Kernel
Linus x Tanenbaum
Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]
20 33
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
O Kernel
Sistemas Operacionais Unix
Figura 22 Organizaccedilatildeo dos sistemas Unix [Galvin et al 2013]
14 33
O Kernel
MS-DOS
Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade
Figura 23 Estrutura do MS-DOS [Galvin et al 2013]
15 33
O Kernel
Sistemas em Camadas
Hierarquia entre as camadas
Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade
Camadas do sistema satildeo dependentes
Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]
16 33
O Kernel
Organizaccedilatildeo em camadas do SO
Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]
17 33
O Kernel
Microkernel
Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio
Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo
Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]
Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro
DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel
18 33
O Kernel
Estrutura do microkernel
Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]
19 33
O Kernel
Linus x Tanenbaum
Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]
20 33
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
O Kernel
MS-DOS
Natildeo eacute dividido em moacutedulosNatildeo tem uma separaccedilatildeo muito clara entre as interfaces e afuncionalidade
Figura 23 Estrutura do MS-DOS [Galvin et al 2013]
15 33
O Kernel
Sistemas em Camadas
Hierarquia entre as camadas
Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade
Camadas do sistema satildeo dependentes
Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]
16 33
O Kernel
Organizaccedilatildeo em camadas do SO
Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]
17 33
O Kernel
Microkernel
Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio
Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo
Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]
Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro
DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel
18 33
O Kernel
Estrutura do microkernel
Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]
19 33
O Kernel
Linus x Tanenbaum
Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]
20 33
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
O Kernel
Sistemas em Camadas
Hierarquia entre as camadas
Os niacuteveis superiores prestam serviccedilo aos inferiores odecendo a niacuteveisde complexidade
Camadas do sistema satildeo dependentes
Figura 24 Funccedilotildees das camadas [Tanenbaum and Machado Filho 1995]
16 33
O Kernel
Organizaccedilatildeo em camadas do SO
Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]
17 33
O Kernel
Microkernel
Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio
Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo
Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]
Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro
DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel
18 33
O Kernel
Estrutura do microkernel
Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]
19 33
O Kernel
Linus x Tanenbaum
Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]
20 33
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
O Kernel
Organizaccedilatildeo em camadas do SO
Figura 25 Organizaccedilatildeo das camadas [Galvin et al 2013]
17 33
O Kernel
Microkernel
Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio
Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo
Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]
Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro
DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel
18 33
O Kernel
Estrutura do microkernel
Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]
19 33
O Kernel
Linus x Tanenbaum
Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]
20 33
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
O Kernel
Microkernel
Ideia mover parte dos serviccedilos do kernel para o espaccedilo do usuaacuterio
Implementaccedilatildeo separar o sistema operacional em partes sendo cadauma responsaacutevel por um tipo de serviccedilo
Comunicaccedilatildeo acontece por meio de troca de mensagem entre osprogramas e os serviccedilosVantagens [Galvin et al 2013]
Mais faacutecil de estenderMais conaacutevel pois possui menos programas rodando em modo kernelMais seguro
DesvantagensPerde performance na comunicaccedilatildeo constante entre os programas emmdo usuaacuterio e modo kernel
18 33
O Kernel
Estrutura do microkernel
Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]
19 33
O Kernel
Linus x Tanenbaum
Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]
20 33
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
O Kernel
Estrutura do microkernel
Figura 26 Estrutura de um sistema operacional com microkernel[Galvin et al 2013]
19 33
O Kernel
Linus x Tanenbaum
Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]
20 33
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
O Kernel
Linus x Tanenbaum
Figura 27 Fonte httpsgroupsgooglecomforumtopiccomposminixwlhw16QWltI[1-25]
20 33
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
System Calls
1 Estrutura dos Computadores
2 O Kernel
3 System Calls
21 33
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
System Calls
Deniccedilatildeo
Interface de programaccedilatildeo para os serviccedilos do Sistema OperacionalUm SO tem duas funccedilotildees principais
1 Fornecer abstraccedilotildees para os programas de usuaacuterio2 Administrar os recursos do computador
O usuaacuterio natildeo precisa administrar manualmente todos os recursos docomputador
Abstraccedilatildeo de alto niacutevel API - Application Programmable InterfaceExemplos
POSIX (Unix Linux e Mac OS X)Java API
22 33
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
System Calls
Exemplo de uma SYSCALL
Lembre-se o processador soacute pode rodar um programa de cada vez
Figura 31 Copiando o conteuacutedo para um arquivo [Galvin et al 2013]
23 33
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
System Calls
Implementaccedilatildeo de SYSCALL
Iacutendice de nuacutemeros de chamadas armazenados numa interface dechamadas de sistema implementada no Sistema Operacional
A interface executa a chamada e retorna os valores de resultado
O programa natildeo precisa saber como a SYSCALL eacute implementada
Contudo eacute necessaacuterio entender o que faz o SO e o que a chamadaretorna
Normalmente os detalhes das chamadas satildeo suportados pelasbibliotecas eou compiladores
24 33
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
System Calls
Exemplo de API Padratildeo
Figura 32 Exemplo de uma chamada de API padratildeo POSIX [Galvin et al 2013]
25 33
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
System Calls
Envio de paracircmetros
Normalmente eacute necessaacuterio fornecer mais informaccedilotildees do que o nomeda chamada de sistemaExistem trecircs meacutetodos de enviar paracircmetros para uma SYSCALL[Galvin et al 2013]
1 Paracircmetros enviados atraveacutes dos registradores (mais simples)2 Os paracircmetros satildeo armazenados em tabelas ou blocos e seu endereccedilo
enviado como um paracircmetro ao registrador (Linux e Solaris)3 Utilizaccedilatildeo de pilha (stack) os paracircmetros satildeo empilhados pelo
programa (push) e removidos pelo SO (pop)
Os meacutetodos 2 e 3 natildeo possuem limite em relaccedilatildeo agrave quantidade deparacircmetros que satildeo enviados agrave chamada
26 33
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
System Calls
Utilizaccedilatildeo de pilhas (read)
1 Armazena os bytes2 Carrega no buer3 Gera o descritor de arquivo (fd)4 Chama a rotina da biblioteca (call)5 Executa a instruccedilatildeo TRAP Nesse momento a chamada eacute promovida
ao modo kernel6 Passa a instruccedilatildeo para um endereccedilo especiacuteco do kernel7 Ativa o endereccedilo especiacuteco para a chamada (registradores)8 Rotina de tratamento das chamadas de sistema9 Retorna para a instruccedilatildeo TRAP Podem tambeacutem bloquear o programa
que a chamou10 Retorna ao programa do usuaacuterio11 Limpa a pilha
27 33
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
System Calls
Execuccedilatildeo da API
Figura 33 Fluxo de execuccedilatildeo da chamada read[Tanenbaum and Machado Filho 1995] 28 33
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
System Calls
Utilizaccedilatildeo de tabelas
Figura 34 Exemplo de envio de paracircmetros por utilizaccedilatildeo de tabelas[Galvin et al 2013]
29 33
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
System Calls
Programa no MS-DOS
Uma uacutenica tarefa(singletasking)
O shell eacute carregado junto como sistema
Espaccedilo de memoacuteria uacutenico
Saiacuteda do programa -gt shellrecarregado
Figura 35 [Galvin et al 2013]
30 33
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
System Calls
Programa no FreeBSD
Variante do Unix
Multitasking
Login carrega o shell do usuaacuterioO shell executa a chamada fork() paraexecutar um programa
exec() carrega um programa noprocessoshell espera o m e retorna oresultado
Resultados
code=0 Sem erroscodegt0 Algum erro
Figura 36[Galvin et al 2013]
31 33
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-
System Calls
Galvin P B Gagne G and Silberschatz A (2013)Operating system conceptsJohn Wiley amp Sons Inc
Tanenbaum A S and Machado Filho N (1995)Sistemas operacionais modernos volume 3Prentice-Hall
32 33
System Calls
OBRIGADO
PERGUNTAS
33 33
- Estrutura dos Computadores
- O Kernel
- System Calls
-