SlideShare uma empresa Scribd logo
1 de 50
Baixar para ler offline
Aula 03 – Chamadas ao Sistema e
Processos
Norton Trevisan Roman
11 de setembro de 2017
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 1 / 42
Chamadas ao Sistema
Se uma aplica¸c˜ao precisa realizar alguma instru¸c˜ao
privilegiada, ela realiza uma chamada de sistema,
que altera do modo usu´ario para o modo kernel;
Ex: Ler um arquivo
Chamadas de sistemas s˜ao a porta de entrada para
o modo Kernel;
S˜ao a interface entre os programas do usu´ario no modo
usu´ario e o Sistema Operacional no modo kernel;
As chamadas diferem de SO para SO. No entanto, os
conceitos relacionados `as chamadas s˜ao similares
independentemente do SO;
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 2 / 42
Chamadas ao Sistema
S˜ao feitas por meio de instru¸c˜oes TRAP
Instru¸c˜ao de chamada ao sistema
Instru¸c˜ao que permite o acesso ao modo kernel;
Normalmente usada para E/S
Transferem o controle para o SO → Interrup¸c˜ao de software
ou Exce¸c˜ao
Podem sinalizar exce¸c˜oes (Divis˜ao por zero, Acesso inv´alido de
mem´oria), Overflows etc
Ap´os terminadas, o SO transfere o controle para a instru¸c˜ao
seguinte `a chamada
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 3 / 42
Chamadas ao Sistema
Chamada a uma rotina do sistema: TRAP
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 4 / 42
Chamadas ao Sistema
(a) Aplicativo faz chamada
ao sistema (TRAP)
(b) Atrav´es de uma tabela,
o SO determina o endere¸co
da rotina de servi¸co
(c) Rotina de Servi¸co ´e
acionada
(d) Servi¸co solicitado ´e
executado e o controle
retorna ao programa
aplicativo
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 5 / 42
Chamadas ao Sistema
A rotina de servi¸co salva somente os registradores
que ir´a modificar
Antes de usar algum registrador, ela guarda seu valor anterior
Ao final, devolve esse valor
Com isso, ganha tempo, sem precisar transferir todos `a
mem´oria
Onde salva?
Depende do hardware
J´a j´a veremos
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 6 / 42
Chamadas ao Sistema – Exemplo
read(fd,buffer,nbytes)
fd: especificador do
arquivo
buffer: endere¸co na
mem´oria do primeiro byte
da ´area onde deve ser
armazenado o conte´udo
lido
nbytes: n´umero de bytes a
serem lidos
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 7 / 42
Exemplo: read(fd,buffer,nbytes)
Chamando read...
(1-3) O programa
armazena os parˆametros
na pilha de execu¸c˜ao
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 8 / 42
Exemplo: read(fd,buffer,nbytes)
Chamando read...
(1-3) O programa
armazena os parˆametros
na pilha de execu¸c˜ao
(4) Chama o
procedimento read da
biblioteca
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 8 / 42
Exemplo: read(fd,buffer,nbytes)
Chamando read...
(1-3) O programa
armazena os parˆametros
na pilha de execu¸c˜ao
(4) Chama o
procedimento read da
biblioteca
Executando read...
(5) Read coloca o n´umero da chamada ao SO em um
registrador espec´ıfico
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 8 / 42
Exemplo: read(fd,buffer,nbytes)
Executando read...
(6) Read executa uma
instru¸c˜ao TRAP (passa do
modo Usu´ario para Kernel
e executa um determinado
endere¸co no kernel → o
S.O. tem o controle)
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 9 / 42
Exemplo: read(fd,buffer,nbytes)
Executando read...
(6) Read executa uma
instru¸c˜ao TRAP (passa do
modo Usu´ario para Kernel
e executa um determinado
endere¸co no kernel → o
S.O. tem o controle)
(7) O kernel busca os
parˆametros, verificando o n´umero da chamada ao SO e
chamando o procedimento para seu tratamento
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 9 / 42
Exemplo: read(fd,buffer,nbytes)
Executando read...
(6) Read executa uma
instru¸c˜ao TRAP (passa do
modo Usu´ario para Kernel
e executa um determinado
endere¸co no kernel → o
S.O. tem o controle)
(7) O kernel busca os
parˆametros, verificando o n´umero da chamada ao SO e
chamando o procedimento para seu tratamento
Faz isso indexando uma tabela que cont´em na linha k um ponteiro
para a rotina que executa a chamada de sistema k
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 9 / 42
Exemplo: read(fd,buffer,nbytes)
Executando read...
(8) Esse procedimento de
tratamento da chamada ´e
executado
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 10 / 42
Exemplo: read(fd,buffer,nbytes)
Executando read...
(8) Esse procedimento de
tratamento da chamada ´e
executado
(9) Terminado o
procedimento, o controle
pode retornar `a instru¸c˜ao
seguinte `a TRAP
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 10 / 42
Exemplo: read(fd,buffer,nbytes)
Executando read...
(8) Esse procedimento de
tratamento da chamada ´e
executado
(9) Terminado o
procedimento, o controle
pode retornar `a instru¸c˜ao
seguinte `a TRAP
(10) Read ent˜ao retorna
ao programa do usu´ario
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 10 / 42
Exemplo: read(fd,buffer,nbytes)
O programa limpa a
pilha ap´os a chamada
do procedimento (11)
Incrementa o ponteiro da
pilha o suficiente para
remover os parˆametros da
chamada a read (lembre
que a pilha est´a de cabe¸ca
para baixo)
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 11 / 42
Exemplo: read(fd,buffer,nbytes)
Voltemos ao passo 9
Em vez de retornar, a
chamada pode bloquear
quem a chamou
Ex: esperando do teclado
O S.O. nesse caso verifica
se algum outro processo
pode ser executado
Quando a entrada estiver dispon´ıvel, os passos 9 a 11 desse
processo podem ser executados
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 12 / 42
Chamadas ao Sistema – Invoca¸c˜ao direta
write() e exit() atrav´es da interrup¸c˜ao 0x80
Instru¸c˜ao em assembly – trap – no Linux para x86
section .data ;declara¸c~ao da se¸c~ao
msg db "Ola, mundo!",0xa ;declara localiza¸c~ao (declare byte): nosso string
len equ $ - msg ;define constante (equ): tamanho do nosso string
section .text ;declara¸c~ao de se¸c~ao
global start ;ponto de entrada para o linker (ld)
start: ;diz ao linker o ponto de entrada
;escreve o string na stdout
mov edx,len ;terceiro argumento: tamanho da mensagem
mov ecx,msg ;segundo argumento: ponteiro para a mensagem a ser escrita
mov ebx,1 ;primeiro argumento: descritor de arquivo (stdout)
mov eax,4 ;n´umero da chamada ao sistema (sys write)
int 0x80 ;chama o kernel
;e sai
mov ebx,0 ;primeiro argumento da chamada ao sistema: c´odigo de sa´ıda
mov eax,1 ;n´umero da chamada ao sistema (sys exit)
int 0x80 ;chama o kernel
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 13 / 42
Invoca¸c˜ao direta – P´e no Hardware
O que acontece que esquecemos de chamar exit() e
o programa ainda det´em tempo de CPU?
;e sai
mov ebx,0 ;primeiro argumento da chamada ao sistema: c´odigo de sa´ıda
mov eax,1 ;n´umero da chamada ao sistema (sys exit)
int 0x80 ;chama o kernel
Olhemos a pipeline (BEM simplificada):
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 14 / 42
Invoca¸c˜ao direta – P´e no Hardware
Primeiro ciclo de clock
A instru¸c˜ao ´e buscada na mem´oria
4 (bytes → 32b) s˜ao somados ao PC e armazenados nele.
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 15 / 42
Invoca¸c˜ao direta – P´e no Hardware
Segundo ciclo de clock
Nova instru¸c˜ao ´e buscada na mem´oria (enquanto a outra
est´a no est´agio 2)
4 (bytes → 32b) s˜ao somados ao PC e armazenados nele.
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 16 / 42
Invoca¸c˜ao direta – P´e no Hardware
Segundo ciclo de clock
Mas se o programa havia acabado, que instru¸c˜ao ´e essa?
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 17 / 42
Invoca¸c˜ao direta – P´e no Hardware
Segundo ciclo de clock
Mas se o programa havia acabado, que instru¸c˜ao ´e essa?
O que h´a na mem´oria naquela posi¸c˜ao
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 17 / 42
Invoca¸c˜ao direta – P´e no Hardware
Segundo ciclo de clock
A instru¸c˜ao pode ser algo que n˜ao dever´ıamos fazer
(pouco prov´avel)
Ou instru¸c˜ao desconhecida → instru¸c˜ao ilegal
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 18 / 42
Invoca¸c˜ao direta – exit()
Esquecer de cham´a-lo pode fazer com que:
Uma instru¸c˜ao ilegal seja rodada → o programa ´e
for¸cosamente parado
Uma instru¸c˜ao legal, por´em indesejada, seja rodada →
comportamento imprevis´ıvel
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 19 / 42
Invoca¸c˜ao direta – exit()
Esquecer de cham´a-lo pode fazer com que:
Uma instru¸c˜ao ilegal seja rodada → o programa ´e
for¸cosamente parado
Uma instru¸c˜ao legal, por´em indesejada, seja rodada →
comportamento imprevis´ıvel
Por conta disso compiladores sempre incluem um
exit() ao final do c´odigo compilado, se o
programador n˜ao o fizer explicitamente
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 19 / 42
Chamadas ao Sistema
Interface das Chamadas ao Sistema (Wrappers)
Chamadas a bibliotecas
Em Windows, desacopladas das chamadas reais ao sistema
Interface de programa¸c˜ao fornecida pelo SO
Geralmente escrita em linguagem de alto n´ıvel (C,
C++ ou Java)
Normalmente as aplica¸c˜oes utilizam uma
Application Program Interface (API)
Interface que encapsula o acesso direto `as chamadas ao
sistema
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 20 / 42
Chamadas ao Sistema
Portabilidade usando Wrappers
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 21 / 42
Chamadas ao Sistema
Interface das Chamadas de Sistema (Wrappers)
Mais utilizadas:
Win32 API para Windows
POSIX API para praticamente todas as vers˜oes de UNIX
Java API para a Java Virtual Machine (JVM).
Motivos para utilizar APIs em vez das chamadas ao
sistema diretamente
Portabilidade – independˆencia da plataforma
Esconder complexidade inerente `as chamadas ao sistema
Acr´escimo de funcionalidades que otimizam o desempenho
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 22 / 42
Chamadas ao Sistema
Programa em C que
invoca a fun¸c˜ao de
biblioteca printf(), que
por sua vez chama o
system call write()
write() e exit() atrav´es da
instru¸c˜ao int 0x80
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 23 / 42
Interrup¸c˜oes
Vimos que um software pode interromper seu
pr´oprio processo (ao fazer uma chamada ao
sistema)
Via traps (Interrup¸c˜oes de software ou Exce¸c˜oes)
Para isso, o software tem que estar rodando
Mas como pode o escalonador interromper um
determinado processo se ele mesmo n˜ao est´a
rodando?
Via interrup¸c˜oes de hardware
Sinal el´etrico no Hardware
Causa: dispositivos de E/S ou o clock
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 24 / 42
Interrup¸c˜oes – Tratamento
Feito pelo SO,
que determina a
natureza da
interrup¸c˜ao e
dispara a Rotina
de Servi¸co
adequada para
executar as a¸c˜oes
que forem
necess´arias.
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 25 / 42
Interrup¸c˜oes – Tratamento
Quando o SO inicia, ele instala um tratador de
interrup¸c˜oes em um endere¸co espec´ıfico da
mem´oria, definido pelo hardware
Ex: mips → 0x80000180
Cria tamb´em um Arranjo de Interrup¸c˜oes (tamb´em
chamado de arranjo de traps)
Ex: primeiras 256 palavras do segmento de c´odigo do SO
(x8000-x80FF)
Cada palavra ´e um jump (JMP) para uma determinada rotina
Ou para uma rotina especial, se o c´odigo da interrup¸c˜ao n˜ao estiver
nesses 256, caso em que essa rotina mata o processo
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 26 / 42
Interrup¸c˜oes – Tratamento
Arranjo de Interrup¸c˜oes
Loca¸c˜ao de mem´oria (geralmente pr´oxima da parte
mais baixa da mem´oria), associada a cada classe de
dispositivos de E/S (inclusive clock)
Cada classe (disco, clock etc) pode ter um arranjo diferente
´E um arranjo usado para gerenciar interrup¸c˜oes dos
programas
Cont´em os endere¸cos dos procedimentos dos servi¸cos de
interrup¸c˜ao
Junto com o BCP (mais adiante...), controla a execu¸c˜ao dos
processos
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 27 / 42
Interrup¸c˜oes × Traps
Interrup¸c˜oes:
Evento externo ao processador
Gerados por dispositivos que precisam da aten¸c˜ao do SO
Podem n˜ao estar relacionadas ao processo que est´a rodando
Traps:
Evento inesperado vindo de dentro do processador
Causadas pelo processo corrente no processador (seja por
chamada ao SO, seja por instru¸c˜ao ilegal)
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 28 / 42
Interrup¸c˜ao – P´e no Hardware
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 29 / 42
Interrup¸c˜ao – P´e no Hardware
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 30 / 42
Interrup¸c˜ao – P´e no Hardware
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 31 / 42
Interrup¸c˜ao – P´e no Hardware
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 32 / 42
Interrup¸c˜ao – P´e no Hardware
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 33 / 42
Interrup¸c˜ao – P´e no Hardware
Caso na mem´oria, haver´a um registrador da CPU (carregado pelo SO), que aponta para sua
origem
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 34 / 42
Interrup¸c˜ao – P´e no Hardware
Imediatamente ap´os come¸car a execu¸c˜ao, a rotina de tratamento confirma a interrup¸c˜ao,
escrevendo um certo valor em uma das portas de E/S do controlador. Isso diz ao controlador
que ele est´a livre para repassar outra interrup¸c˜ao.
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 35 / 42
Interrup¸c˜ao – P´e no Hardware
Assim, a CPU atrasa essa confirma¸c˜ao at´e estar livre para lidar com a pr´oxima interrup¸c˜ao,
evitando assim condi¸c˜oes de corrida geradas por m´ultiplas interrup¸c˜oes quase simultˆaneas.
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 36 / 42
Interrup¸c˜ao
Informa¸c˜ao salva (temporariamente) pelo hardware
antes de iniciar a rotina de servi¸co:
Pelo menos, o contador de programa
Em ´ultimo caso, todos os registradores gerais e alguns
internos
Se for feita troca total de contexto, usa-se o BCP →
veremos mais adiante
Onde salvar? N˜ao h´a solu¸c˜ao perfeita.
Registradores internos
Problema: N˜ao h´a como enviar a confirma¸c˜ao (passo 3) ao
controlador de interrup¸c˜oes at´e que toda a informa¸c˜ao neles tenha
sido usada (evitando sobrescrita) → toma tempo
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 37 / 42
Interrup¸c˜ao
Pilha (do processo do usu´ario)
O ponteiro da pilha pode n˜ao ser legal (por escalonamento, p´agina
n˜ao na mem´oria, por exemplo)
Poderia ser o final de uma p´agina, levando a um page fault durante
a interrup¸c˜ao (e onde salvar o estado para tratar a page fault?)
Pilha do kernel
Maior chance do ponteiro ser legal
O chaveamento para modo n´ucleo pode exigir mudan¸ca de contexto,
pela MMU, podendo mudar cache e TLB → toma tempo (veremos
mais adiante)
Ex: MIPS → em uma regi˜ao da mem´oria, cujo endere¸co ´e
armazenado em um registrador espec´ıfico
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 38 / 42
Interrup¸c˜ao
O sinal (linha) de interrup¸c˜ao ´e exibido dentro de
cada ciclo de instru¸c˜ao do processador
A cada ciclo de instru¸c˜ao, a CPU:
Verifica se existe interrup¸c˜ao. Se n˜ao, busca a pr´oxima
instru¸c˜ao
Se existir interrup¸c˜ao pendente:
Suspende a execu¸c˜ao do programa
Salva contexto
Atualiza PC (Program Counter) → PC aponta para a ISR (rotina de
atendimento de interrup¸c˜ao)
Executa a rotina de tratamento da interrup¸c˜ao
Recarrega contexto e continua processo interrompido
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 39 / 42
M´ultiplas Interrup¸c˜oes
Modelo seq¨uencial
O tratador de interrup¸c˜oes desabilita as interrup¸c˜oes
Uma nova interrup¸c˜ao s´o ´e tratada ap´os o retorno da anterior
A interrup¸c˜ao pode demorar a ser tratada, o que pode
eventualmente ocasionar uma perda de dados
Finalizado o tratador de
interrup¸c˜ao, o processador
checa por interrup¸c˜oes
adicionais
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 40 / 42
M´ultiplas Interrup¸c˜oes
Modelo cascata
Interrup¸c˜oes tˆem prioridade
Interrup¸c˜oes com alta prioridade interrompem rotinas de servi¸co de
interrup¸c˜oes de menor prioridade
Exemplos de prioridade:
impressora (menor)
disco
comunica¸c˜ao (maior)
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 41 / 42
Referˆencias Adicionais
Patterson, D.A.; Hennessy, J.L: Computer Organization and Design: The
Hardware Software interface. 3 ed. Elsevier:Nova Iorque, 2005.
http://www.codinghorror.com/blog/2008/01/
understanding-user-and-kernel-mode.html
http://www.cs.virginia.edu/~evans/cs216/guides/x86.html
http://www.c-jump.com/CIS77/ASM/Assembly/lecture.html
http://www.csee.umbc.edu/~chang/cs313.s02/stack.shtml
Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 42 / 42

Mais conteúdo relacionado

Mais procurados

Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1
Cristiano Pires Martins
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
Silvino Neto
 

Mais procurados (20)

(ACH2044) Sistemas Operacionais - Aula 10
(ACH2044) Sistemas Operacionais - Aula 10(ACH2044) Sistemas Operacionais - Aula 10
(ACH2044) Sistemas Operacionais - Aula 10
 
(ACH2044) Sistemas Operacionais - Aula 01
(ACH2044) Sistemas Operacionais - Aula 01(ACH2044) Sistemas Operacionais - Aula 01
(ACH2044) Sistemas Operacionais - Aula 01
 
(ACH2044) Sistemas Operacionais - Aula 06
(ACH2044) Sistemas Operacionais - Aula 06(ACH2044) Sistemas Operacionais - Aula 06
(ACH2044) Sistemas Operacionais - Aula 06
 
(ACH2044) Sistemas Operacionais - Aula 08
(ACH2044) Sistemas Operacionais - Aula 08(ACH2044) Sistemas Operacionais - Aula 08
(ACH2044) Sistemas Operacionais - Aula 08
 
(ACH2044) Sistemas Operacionais - Aula 20
(ACH2044) Sistemas Operacionais - Aula 20(ACH2044) Sistemas Operacionais - Aula 20
(ACH2044) Sistemas Operacionais - Aula 20
 
(ACH2044) Sistemas Operacionais - Aula 18
(ACH2044) Sistemas Operacionais - Aula 18(ACH2044) Sistemas Operacionais - Aula 18
(ACH2044) Sistemas Operacionais - Aula 18
 
(ACH2044) Sistemas Operacionais - Aula 13
(ACH2044) Sistemas Operacionais - Aula 13(ACH2044) Sistemas Operacionais - Aula 13
(ACH2044) Sistemas Operacionais - Aula 13
 
(ACH2044) Sistemas Operacionais - Aula 21
(ACH2044) Sistemas Operacionais - Aula 21(ACH2044) Sistemas Operacionais - Aula 21
(ACH2044) Sistemas Operacionais - Aula 21
 
(ACH2044) Sistemas Operacionais - Aula 17
(ACH2044) Sistemas Operacionais - Aula 17(ACH2044) Sistemas Operacionais - Aula 17
(ACH2044) Sistemas Operacionais - Aula 17
 
(ACH2044) Sistemas Operacionais - Aula 19
(ACH2044) Sistemas Operacionais - Aula 19(ACH2044) Sistemas Operacionais - Aula 19
(ACH2044) Sistemas Operacionais - Aula 19
 
Gerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUGerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPU
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e Threads
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
Redes prática - NFS
Redes prática - NFSRedes prática - NFS
Redes prática - NFS
 
Comandos básicos linux
Comandos básicos linuxComandos básicos linux
Comandos básicos linux
 
Apresentacao Aula03 So
Apresentacao Aula03 SoApresentacao Aula03 So
Apresentacao Aula03 So
 
3 escalonamento processos
3 escalonamento processos3 escalonamento processos
3 escalonamento processos
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 

Semelhante a (ACH2044) Sistemas Operacionais - Aula 03

Redirecionamento, pipes e processos linux
Redirecionamento, pipes e processos   linuxRedirecionamento, pipes e processos   linux
Redirecionamento, pipes e processos linux
Fábio dos Reis
 
1os passoscisco
1os passoscisco1os passoscisco
1os passoscisco
nogueira
 
Carlos Beiga - Aula06 - Postfix
Carlos Beiga - Aula06 - PostfixCarlos Beiga - Aula06 - Postfix
Carlos Beiga - Aula06 - Postfix
Heber Souza
 

Semelhante a (ACH2044) Sistemas Operacionais - Aula 03 (20)

Redirecionamento, pipes e processos linux
Redirecionamento, pipes e processos   linuxRedirecionamento, pipes e processos   linux
Redirecionamento, pipes e processos linux
 
Manual UFCD 0839.pptx
Manual UFCD 0839.pptxManual UFCD 0839.pptx
Manual UFCD 0839.pptx
 
(ACH2055) Arquitetura de Computadores - Aula 11
(ACH2055) Arquitetura de Computadores - Aula 11(ACH2055) Arquitetura de Computadores - Aula 11
(ACH2055) Arquitetura de Computadores - Aula 11
 
Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1
 
Comandos Linux Parte 1
Comandos Linux Parte 1Comandos Linux Parte 1
Comandos Linux Parte 1
 
Introdução ao SystemTap - João Avelino Bellomo Filho - Tchelinux Caxias 2018
Introdução ao SystemTap - João Avelino Bellomo Filho - Tchelinux Caxias 2018Introdução ao SystemTap - João Avelino Bellomo Filho - Tchelinux Caxias 2018
Introdução ao SystemTap - João Avelino Bellomo Filho - Tchelinux Caxias 2018
 
Cygwin
CygwinCygwin
Cygwin
 
Introduction to linux
Introduction to linuxIntroduction to linux
Introduction to linux
 
1os passoscisco
1os passoscisco1os passoscisco
1os passoscisco
 
Elementos do Sistema Operacionais
Elementos do Sistema OperacionaisElementos do Sistema Operacionais
Elementos do Sistema Operacionais
 
Redes prática - Inetd
Redes prática - InetdRedes prática - Inetd
Redes prática - Inetd
 
Aprendendo linux
Aprendendo linuxAprendendo linux
Aprendendo linux
 
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
 
Aula06 - postfix
Aula06 -  postfixAula06 -  postfix
Aula06 - postfix
 
Aula06 - postfix
Aula06 -  postfixAula06 -  postfix
Aula06 - postfix
 
Carlos Beiga - Aula06 - Postfix
Carlos Beiga - Aula06 - PostfixCarlos Beiga - Aula06 - Postfix
Carlos Beiga - Aula06 - Postfix
 
Forense memoria windows_sandro_suffert_2009_2010
Forense memoria windows_sandro_suffert_2009_2010Forense memoria windows_sandro_suffert_2009_2010
Forense memoria windows_sandro_suffert_2009_2010
 
Ntop
NtopNtop
Ntop
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
 
Comandos Linux
Comandos LinuxComandos Linux
Comandos Linux
 

Mais de Norton Trevisan Roman

Mais de Norton Trevisan Roman (20)

(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24
 
(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23
 
(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19
 
(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06
 
(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05
 

Último

Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
azulassessoria9
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
Expansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVExpansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XV
lenapinto
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 

Último (20)

aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa para
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
Novena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João EudesNovena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João Eudes
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
 
Expansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVExpansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XV
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 

(ACH2044) Sistemas Operacionais - Aula 03

  • 1. Aula 03 – Chamadas ao Sistema e Processos Norton Trevisan Roman 11 de setembro de 2017 Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 1 / 42
  • 2. Chamadas ao Sistema Se uma aplica¸c˜ao precisa realizar alguma instru¸c˜ao privilegiada, ela realiza uma chamada de sistema, que altera do modo usu´ario para o modo kernel; Ex: Ler um arquivo Chamadas de sistemas s˜ao a porta de entrada para o modo Kernel; S˜ao a interface entre os programas do usu´ario no modo usu´ario e o Sistema Operacional no modo kernel; As chamadas diferem de SO para SO. No entanto, os conceitos relacionados `as chamadas s˜ao similares independentemente do SO; Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 2 / 42
  • 3. Chamadas ao Sistema S˜ao feitas por meio de instru¸c˜oes TRAP Instru¸c˜ao de chamada ao sistema Instru¸c˜ao que permite o acesso ao modo kernel; Normalmente usada para E/S Transferem o controle para o SO → Interrup¸c˜ao de software ou Exce¸c˜ao Podem sinalizar exce¸c˜oes (Divis˜ao por zero, Acesso inv´alido de mem´oria), Overflows etc Ap´os terminadas, o SO transfere o controle para a instru¸c˜ao seguinte `a chamada Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 3 / 42
  • 4. Chamadas ao Sistema Chamada a uma rotina do sistema: TRAP Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 4 / 42
  • 5. Chamadas ao Sistema (a) Aplicativo faz chamada ao sistema (TRAP) (b) Atrav´es de uma tabela, o SO determina o endere¸co da rotina de servi¸co (c) Rotina de Servi¸co ´e acionada (d) Servi¸co solicitado ´e executado e o controle retorna ao programa aplicativo Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 5 / 42
  • 6. Chamadas ao Sistema A rotina de servi¸co salva somente os registradores que ir´a modificar Antes de usar algum registrador, ela guarda seu valor anterior Ao final, devolve esse valor Com isso, ganha tempo, sem precisar transferir todos `a mem´oria Onde salva? Depende do hardware J´a j´a veremos Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 6 / 42
  • 7. Chamadas ao Sistema – Exemplo read(fd,buffer,nbytes) fd: especificador do arquivo buffer: endere¸co na mem´oria do primeiro byte da ´area onde deve ser armazenado o conte´udo lido nbytes: n´umero de bytes a serem lidos Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 7 / 42
  • 8. Exemplo: read(fd,buffer,nbytes) Chamando read... (1-3) O programa armazena os parˆametros na pilha de execu¸c˜ao Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 8 / 42
  • 9. Exemplo: read(fd,buffer,nbytes) Chamando read... (1-3) O programa armazena os parˆametros na pilha de execu¸c˜ao (4) Chama o procedimento read da biblioteca Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 8 / 42
  • 10. Exemplo: read(fd,buffer,nbytes) Chamando read... (1-3) O programa armazena os parˆametros na pilha de execu¸c˜ao (4) Chama o procedimento read da biblioteca Executando read... (5) Read coloca o n´umero da chamada ao SO em um registrador espec´ıfico Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 8 / 42
  • 11. Exemplo: read(fd,buffer,nbytes) Executando read... (6) Read executa uma instru¸c˜ao TRAP (passa do modo Usu´ario para Kernel e executa um determinado endere¸co no kernel → o S.O. tem o controle) Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 9 / 42
  • 12. Exemplo: read(fd,buffer,nbytes) Executando read... (6) Read executa uma instru¸c˜ao TRAP (passa do modo Usu´ario para Kernel e executa um determinado endere¸co no kernel → o S.O. tem o controle) (7) O kernel busca os parˆametros, verificando o n´umero da chamada ao SO e chamando o procedimento para seu tratamento Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 9 / 42
  • 13. Exemplo: read(fd,buffer,nbytes) Executando read... (6) Read executa uma instru¸c˜ao TRAP (passa do modo Usu´ario para Kernel e executa um determinado endere¸co no kernel → o S.O. tem o controle) (7) O kernel busca os parˆametros, verificando o n´umero da chamada ao SO e chamando o procedimento para seu tratamento Faz isso indexando uma tabela que cont´em na linha k um ponteiro para a rotina que executa a chamada de sistema k Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 9 / 42
  • 14. Exemplo: read(fd,buffer,nbytes) Executando read... (8) Esse procedimento de tratamento da chamada ´e executado Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 10 / 42
  • 15. Exemplo: read(fd,buffer,nbytes) Executando read... (8) Esse procedimento de tratamento da chamada ´e executado (9) Terminado o procedimento, o controle pode retornar `a instru¸c˜ao seguinte `a TRAP Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 10 / 42
  • 16. Exemplo: read(fd,buffer,nbytes) Executando read... (8) Esse procedimento de tratamento da chamada ´e executado (9) Terminado o procedimento, o controle pode retornar `a instru¸c˜ao seguinte `a TRAP (10) Read ent˜ao retorna ao programa do usu´ario Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 10 / 42
  • 17. Exemplo: read(fd,buffer,nbytes) O programa limpa a pilha ap´os a chamada do procedimento (11) Incrementa o ponteiro da pilha o suficiente para remover os parˆametros da chamada a read (lembre que a pilha est´a de cabe¸ca para baixo) Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 11 / 42
  • 18. Exemplo: read(fd,buffer,nbytes) Voltemos ao passo 9 Em vez de retornar, a chamada pode bloquear quem a chamou Ex: esperando do teclado O S.O. nesse caso verifica se algum outro processo pode ser executado Quando a entrada estiver dispon´ıvel, os passos 9 a 11 desse processo podem ser executados Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 12 / 42
  • 19. Chamadas ao Sistema – Invoca¸c˜ao direta write() e exit() atrav´es da interrup¸c˜ao 0x80 Instru¸c˜ao em assembly – trap – no Linux para x86 section .data ;declara¸c~ao da se¸c~ao msg db "Ola, mundo!",0xa ;declara localiza¸c~ao (declare byte): nosso string len equ $ - msg ;define constante (equ): tamanho do nosso string section .text ;declara¸c~ao de se¸c~ao global start ;ponto de entrada para o linker (ld) start: ;diz ao linker o ponto de entrada ;escreve o string na stdout mov edx,len ;terceiro argumento: tamanho da mensagem mov ecx,msg ;segundo argumento: ponteiro para a mensagem a ser escrita mov ebx,1 ;primeiro argumento: descritor de arquivo (stdout) mov eax,4 ;n´umero da chamada ao sistema (sys write) int 0x80 ;chama o kernel ;e sai mov ebx,0 ;primeiro argumento da chamada ao sistema: c´odigo de sa´ıda mov eax,1 ;n´umero da chamada ao sistema (sys exit) int 0x80 ;chama o kernel Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 13 / 42
  • 20. Invoca¸c˜ao direta – P´e no Hardware O que acontece que esquecemos de chamar exit() e o programa ainda det´em tempo de CPU? ;e sai mov ebx,0 ;primeiro argumento da chamada ao sistema: c´odigo de sa´ıda mov eax,1 ;n´umero da chamada ao sistema (sys exit) int 0x80 ;chama o kernel Olhemos a pipeline (BEM simplificada): Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 14 / 42
  • 21. Invoca¸c˜ao direta – P´e no Hardware Primeiro ciclo de clock A instru¸c˜ao ´e buscada na mem´oria 4 (bytes → 32b) s˜ao somados ao PC e armazenados nele. Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 15 / 42
  • 22. Invoca¸c˜ao direta – P´e no Hardware Segundo ciclo de clock Nova instru¸c˜ao ´e buscada na mem´oria (enquanto a outra est´a no est´agio 2) 4 (bytes → 32b) s˜ao somados ao PC e armazenados nele. Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 16 / 42
  • 23. Invoca¸c˜ao direta – P´e no Hardware Segundo ciclo de clock Mas se o programa havia acabado, que instru¸c˜ao ´e essa? Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 17 / 42
  • 24. Invoca¸c˜ao direta – P´e no Hardware Segundo ciclo de clock Mas se o programa havia acabado, que instru¸c˜ao ´e essa? O que h´a na mem´oria naquela posi¸c˜ao Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 17 / 42
  • 25. Invoca¸c˜ao direta – P´e no Hardware Segundo ciclo de clock A instru¸c˜ao pode ser algo que n˜ao dever´ıamos fazer (pouco prov´avel) Ou instru¸c˜ao desconhecida → instru¸c˜ao ilegal Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 18 / 42
  • 26. Invoca¸c˜ao direta – exit() Esquecer de cham´a-lo pode fazer com que: Uma instru¸c˜ao ilegal seja rodada → o programa ´e for¸cosamente parado Uma instru¸c˜ao legal, por´em indesejada, seja rodada → comportamento imprevis´ıvel Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 19 / 42
  • 27. Invoca¸c˜ao direta – exit() Esquecer de cham´a-lo pode fazer com que: Uma instru¸c˜ao ilegal seja rodada → o programa ´e for¸cosamente parado Uma instru¸c˜ao legal, por´em indesejada, seja rodada → comportamento imprevis´ıvel Por conta disso compiladores sempre incluem um exit() ao final do c´odigo compilado, se o programador n˜ao o fizer explicitamente Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 19 / 42
  • 28. Chamadas ao Sistema Interface das Chamadas ao Sistema (Wrappers) Chamadas a bibliotecas Em Windows, desacopladas das chamadas reais ao sistema Interface de programa¸c˜ao fornecida pelo SO Geralmente escrita em linguagem de alto n´ıvel (C, C++ ou Java) Normalmente as aplica¸c˜oes utilizam uma Application Program Interface (API) Interface que encapsula o acesso direto `as chamadas ao sistema Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 20 / 42
  • 29. Chamadas ao Sistema Portabilidade usando Wrappers Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 21 / 42
  • 30. Chamadas ao Sistema Interface das Chamadas de Sistema (Wrappers) Mais utilizadas: Win32 API para Windows POSIX API para praticamente todas as vers˜oes de UNIX Java API para a Java Virtual Machine (JVM). Motivos para utilizar APIs em vez das chamadas ao sistema diretamente Portabilidade – independˆencia da plataforma Esconder complexidade inerente `as chamadas ao sistema Acr´escimo de funcionalidades que otimizam o desempenho Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 22 / 42
  • 31. Chamadas ao Sistema Programa em C que invoca a fun¸c˜ao de biblioteca printf(), que por sua vez chama o system call write() write() e exit() atrav´es da instru¸c˜ao int 0x80 Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 23 / 42
  • 32. Interrup¸c˜oes Vimos que um software pode interromper seu pr´oprio processo (ao fazer uma chamada ao sistema) Via traps (Interrup¸c˜oes de software ou Exce¸c˜oes) Para isso, o software tem que estar rodando Mas como pode o escalonador interromper um determinado processo se ele mesmo n˜ao est´a rodando? Via interrup¸c˜oes de hardware Sinal el´etrico no Hardware Causa: dispositivos de E/S ou o clock Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 24 / 42
  • 33. Interrup¸c˜oes – Tratamento Feito pelo SO, que determina a natureza da interrup¸c˜ao e dispara a Rotina de Servi¸co adequada para executar as a¸c˜oes que forem necess´arias. Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 25 / 42
  • 34. Interrup¸c˜oes – Tratamento Quando o SO inicia, ele instala um tratador de interrup¸c˜oes em um endere¸co espec´ıfico da mem´oria, definido pelo hardware Ex: mips → 0x80000180 Cria tamb´em um Arranjo de Interrup¸c˜oes (tamb´em chamado de arranjo de traps) Ex: primeiras 256 palavras do segmento de c´odigo do SO (x8000-x80FF) Cada palavra ´e um jump (JMP) para uma determinada rotina Ou para uma rotina especial, se o c´odigo da interrup¸c˜ao n˜ao estiver nesses 256, caso em que essa rotina mata o processo Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 26 / 42
  • 35. Interrup¸c˜oes – Tratamento Arranjo de Interrup¸c˜oes Loca¸c˜ao de mem´oria (geralmente pr´oxima da parte mais baixa da mem´oria), associada a cada classe de dispositivos de E/S (inclusive clock) Cada classe (disco, clock etc) pode ter um arranjo diferente ´E um arranjo usado para gerenciar interrup¸c˜oes dos programas Cont´em os endere¸cos dos procedimentos dos servi¸cos de interrup¸c˜ao Junto com o BCP (mais adiante...), controla a execu¸c˜ao dos processos Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 27 / 42
  • 36. Interrup¸c˜oes × Traps Interrup¸c˜oes: Evento externo ao processador Gerados por dispositivos que precisam da aten¸c˜ao do SO Podem n˜ao estar relacionadas ao processo que est´a rodando Traps: Evento inesperado vindo de dentro do processador Causadas pelo processo corrente no processador (seja por chamada ao SO, seja por instru¸c˜ao ilegal) Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 28 / 42
  • 37. Interrup¸c˜ao – P´e no Hardware Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 29 / 42
  • 38. Interrup¸c˜ao – P´e no Hardware Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 30 / 42
  • 39. Interrup¸c˜ao – P´e no Hardware Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 31 / 42
  • 40. Interrup¸c˜ao – P´e no Hardware Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 32 / 42
  • 41. Interrup¸c˜ao – P´e no Hardware Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 33 / 42
  • 42. Interrup¸c˜ao – P´e no Hardware Caso na mem´oria, haver´a um registrador da CPU (carregado pelo SO), que aponta para sua origem Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 34 / 42
  • 43. Interrup¸c˜ao – P´e no Hardware Imediatamente ap´os come¸car a execu¸c˜ao, a rotina de tratamento confirma a interrup¸c˜ao, escrevendo um certo valor em uma das portas de E/S do controlador. Isso diz ao controlador que ele est´a livre para repassar outra interrup¸c˜ao. Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 35 / 42
  • 44. Interrup¸c˜ao – P´e no Hardware Assim, a CPU atrasa essa confirma¸c˜ao at´e estar livre para lidar com a pr´oxima interrup¸c˜ao, evitando assim condi¸c˜oes de corrida geradas por m´ultiplas interrup¸c˜oes quase simultˆaneas. Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 36 / 42
  • 45. Interrup¸c˜ao Informa¸c˜ao salva (temporariamente) pelo hardware antes de iniciar a rotina de servi¸co: Pelo menos, o contador de programa Em ´ultimo caso, todos os registradores gerais e alguns internos Se for feita troca total de contexto, usa-se o BCP → veremos mais adiante Onde salvar? N˜ao h´a solu¸c˜ao perfeita. Registradores internos Problema: N˜ao h´a como enviar a confirma¸c˜ao (passo 3) ao controlador de interrup¸c˜oes at´e que toda a informa¸c˜ao neles tenha sido usada (evitando sobrescrita) → toma tempo Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 37 / 42
  • 46. Interrup¸c˜ao Pilha (do processo do usu´ario) O ponteiro da pilha pode n˜ao ser legal (por escalonamento, p´agina n˜ao na mem´oria, por exemplo) Poderia ser o final de uma p´agina, levando a um page fault durante a interrup¸c˜ao (e onde salvar o estado para tratar a page fault?) Pilha do kernel Maior chance do ponteiro ser legal O chaveamento para modo n´ucleo pode exigir mudan¸ca de contexto, pela MMU, podendo mudar cache e TLB → toma tempo (veremos mais adiante) Ex: MIPS → em uma regi˜ao da mem´oria, cujo endere¸co ´e armazenado em um registrador espec´ıfico Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 38 / 42
  • 47. Interrup¸c˜ao O sinal (linha) de interrup¸c˜ao ´e exibido dentro de cada ciclo de instru¸c˜ao do processador A cada ciclo de instru¸c˜ao, a CPU: Verifica se existe interrup¸c˜ao. Se n˜ao, busca a pr´oxima instru¸c˜ao Se existir interrup¸c˜ao pendente: Suspende a execu¸c˜ao do programa Salva contexto Atualiza PC (Program Counter) → PC aponta para a ISR (rotina de atendimento de interrup¸c˜ao) Executa a rotina de tratamento da interrup¸c˜ao Recarrega contexto e continua processo interrompido Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 39 / 42
  • 48. M´ultiplas Interrup¸c˜oes Modelo seq¨uencial O tratador de interrup¸c˜oes desabilita as interrup¸c˜oes Uma nova interrup¸c˜ao s´o ´e tratada ap´os o retorno da anterior A interrup¸c˜ao pode demorar a ser tratada, o que pode eventualmente ocasionar uma perda de dados Finalizado o tratador de interrup¸c˜ao, o processador checa por interrup¸c˜oes adicionais Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 40 / 42
  • 49. M´ultiplas Interrup¸c˜oes Modelo cascata Interrup¸c˜oes tˆem prioridade Interrup¸c˜oes com alta prioridade interrompem rotinas de servi¸co de interrup¸c˜oes de menor prioridade Exemplos de prioridade: impressora (menor) disco comunica¸c˜ao (maior) Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 41 / 42
  • 50. Referˆencias Adicionais Patterson, D.A.; Hennessy, J.L: Computer Organization and Design: The Hardware Software interface. 3 ed. Elsevier:Nova Iorque, 2005. http://www.codinghorror.com/blog/2008/01/ understanding-user-and-kernel-mode.html http://www.cs.virginia.edu/~evans/cs216/guides/x86.html http://www.c-jump.com/CIS77/ASM/Assembly/lecture.html http://www.csee.umbc.edu/~chang/cs313.s02/stack.shtml Norton Trevisan Roman Aula 03 – Chamadas ao Sistema e Processos 11 de setembro de 2017 42 / 42