Buscar

Tarefas de sistema

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Sistemas Operacionais 
Tarefas de Sistema 
Prof. Sílvio Fernandes 
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO 
DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS 
CURSO DE CIÊNCIA DA COMPUTAÇÃO 
A tarefa de sistema do MINIX 3 
 Uma consequência de tornar os principais 
componentes do sistema em processos 
independentes fora do núcleo é que eles são 
proibidos de fazer E/S real 
 A solução é ter um núcleo que ofereça um 
conjunto de serviços para os drivers e servidores 
 Esses serviços (tarefas de sistema), permitem 
que drivers e servidores façam E/S real, 
acessem tabelas do núcleo e façam outras 
coisas necessárias, tudo sem estar dentro do 
núcleo 
2 
A tarefa de sistema do MINIX 3 
 No MINIX 3, as chamadas de sistema feitas por 
processos de usuário são transformadas em 
mensagens para processos servidores 
 Os servidores se comunicam entre si, com drivers 
de dispositivos e com o núcleo, por meio de 
mensagens 
 As requisições de serviços do núcleo são referidas 
como chamadas de núcleo 
 Em muitos casos, uma chamada de sistema 
originada por um processo de usuário resulta em 
uma chamada de núcleo com um nome 
semelhante sendo feita por um servidor 
3 
Chamadas de sistema 
4 
Chamadas de sistema 
5 
Visão geral da tarefa de sistema 
 A tarefa de sistema aceita 28 tipos de 
mensagens, conforme a tabela a seguir 
6 
Visão geral da tarefa de sistema 
 A tarefa de sistema aceita 28 tipos de 
mensagens, conforme a tabela a seguir 
7 
Visão geral da tarefa de sistema 
 As chamadas chamadas de sistema são feitas 
por sys_call() que envia mensagem para a 
tarefa de sistema 
 Ela recebe e despacha para a função adequada 
 A lista atualizadas das chamadas estão em: 
http://wiki.minix3.org/doku.php?id=releases:3.2.0:develo
persguide:kernelapi&s[]=signal 
8 
Visão geral da tarefa de sistema 
 Para a versão 3.2.1 
 A tarefa de sistema está implementada em 
src/kernel/system.c 
 Os protótipos dos manipuladores das funções estão 
declarados em src/kernel/system.h 
 A implementação de cada função está em arquivos 
separados no diretório src/kernel/system/ 
 Os número das chamadas de núcleo e seus 
parâmetros estão definidos em 
src/include/minix/com.h 
 
9 
Visão geral da tarefa de sistema 
 As 1ª chamadas de núcleo estão relacionadas 
com o gerenciamento de processos 
 Sys_fork, sys_exec, sys_exit e sys_trace estão, 
intimamente relacionadas com as chamadas de 
sistema padrão POSIX 
 Nice não é uma chamada exigida pelo POSIX, mas 
resulta na chamada de núcleo sys_nice (ausente na 
v.3.2.1) 
 O sys_privctl altera os privilégios de um processo, por 
exemplo, para que ele faça chamadas de núcleo 
 É utilizada quando drivers e servidores que não fazem 
parte da imagem de boot são iniciados pelo sript 
/etc/rc 
10 
Visão geral da tarefa de sistema 
 O próximo grupo está relacionado com os 
sinais 
 Sys_kill está relacionada com a chamada de 
sistema kill acessível para o usuário 
 As outras chamadas nesse grupo, sys_getksig, 
sys_endksig, sys_sigsend e sys_sigreturn são 
usadas pelo gerenciador de processos para 
obter ajuda do núcleo no tratamento de sinais 
11 
Visão geral da tarefa de sistema 
 As chamadas de núcleo sys_irqctl, sys_devio, 
sys_sdevio e sys_vdevio são exclusivas do MINIX 
 Elas fornecem o suporte necessário para drivers 
de dispositivos em espaço de usuário 
12 
Visão geral da tarefa de sistema 
 As 3 chamadas seguintes envolvem a memória 
de maneiras distintas. (ausente na v.3.2.1) 
 Sys_newmap é chamada pelo gerenciador de 
processos sempre que a memória utilizado por 
um processo é alterada para permitir que a 
tabela de processos, pertencente ao núcleo, 
possa ser atualizada 
 Sys_segctl e sys_memset fornecem uma 
maneira segura de dar a um processo acesso à 
memória fora de seu próprio espaço de 
endereçamento de dados 
13 
Visão geral da tarefa de sistema 
 O próximo grupo de chamadas de núcleo 
serve para copiar memória 
 Sys_map converte endereços virtuais em 
endereços físicos 
 Sys_vircopy e sys_physcopy copiam regiões da 
memória, usando endereços virtuais ou 
endereços físicos 
 As chamadas sys_virvcopy e sys_physvcopy são 
versões das 2 anteriores que usam vetores 
14 
Visão geral da tarefa de sistema 
 Sys_times tem a ver com a chamada de 
sistema times do POSIX 
 Sys_setalarm está relacionada com a 
chamada de sistema alarm do POSIX, mas o 
parentesco é distante 
15 
Visão geral da tarefa de sistema 
 As 2 últimas chamadas servem para controle 
do sistema 
 Sys_abort pode ser originada no gerenciador de 
processos, após um pedido normal de desligamento 
do sistema (shutdown) ou após um pânico 
 Ela também pode originar do driver de dispositivo tty, 
em resposta a um usuário pressionando a 
combinação de teclas Ctrl-Alt-Del 
 Finalmente, sys_getinfo trata de uma variedade de 
requisições de informações do núcleo 
16 
Processos no Unix 
 Signals 
 O tratamento das exceções e de eventos assíncronos 
tem, no Unix, particular importância, tendo 
extrapolado a função de mero mecanismo de 
tratamento de exceções para se tornar uma dos 
mecanismos mais importantes para o controle da 
execução dos processos, em particular no shell 
 Os eventos assíncronos podem ser sinalizados a um 
processo em execução através da ativação de um 
signal 
17 
Processos no Unix 
 Signals 
 Quando um signal é enviado a um processo, a ação 
provocada por default pode ser finalizar o 
processo(abort) ou ignorar o signal 
 Para evitar que o processo seja abortado é 
necessário associar uma rotina de tratamento do 
signal 
 A única exceção é o SIGKILL, que não pode ser 
ignorado ou tratado e que resulta sempre na 
finalização incondicional do processo que o recebe 
18 
Processos no Unix 
 Signals 
 A CS que associa uma função a signal 
 void (*signal (int signum, void (*handler) (int))) (int) 
19 
Identificador do 
sinal 
Ponteiro para a 
rotina de tratamento 
Processos no Unix 
 Signals 
20 
Interrupção de 
terminal “ctrl+c” 
A associação é feita 
novamente, caso 
contrário será 
ignorada depois da 
1ª. vez 
Processos no Unix 
 Signals 
 Um signal pode ser ignorado explicitamente 
(SIG_IGN) ou, depois de atribuído a uma rotina, 
reposto na situação de tratamento por default 
(SIG_DFL) 
 TratamentoAnterior = signal (SIGINT, SIG_IGN) 
 TratamentoAnterior = signal (SIGINT, SIG_DFL) 
21 
Processos no Unix 
 Signals 
 Uma utilização interessante dos signals é a 
possibilidade de um processo poder enviar uma 
sinalização explicitamente para outro 
 Por meio da primitiva kill 
 Não termina necessariamente o processo destinatário se o 
signal estiver sendo tatado 
 Se o destinatário ainda não lhe associou um tratamento 
diferente do tratamento predefinido este será terminado, e 
daí o nome “kill” 
 int kill (int pid, int sig) 
 Um processo só pode enviar signals aos processos 
que possuem o mesmo UID 
 Os superusuários podem ultrapassar esta proteção 
22 
Processos no Unix 
 Signals 
 Se o pid especificado na chamada kill for zero, o 
signal é enviado a todos os processos que pertencem 
ao mesmo grupo 
 Um processo pode se bloquear à espera de um signal 
através da função pause 
 A função alarm é usada à espera de um 
temporizador que lhe será enviado pelo signal do tipo 
SIGALARM 
 int alarm (int segundos) 
 A função que conjuda alarm e pause é 
 int sleep (int segundos) 
23 
Implementação dos Signals 
 O envio de um signal desencadeia uma 
transição para modo núcleo 
 Provocada poruma exceção, interrupção ou 
chamada de sistema 
 O núcleo detecta quando um processo retorna 
do modo núcleo para modo usuário 
 Tratamento 
 No contexto do processo há uma tabela que indica 
para cada sinal o respectivo tratamento 
 Pode indicar que o signal será ignorado, indicar o 
tratamento predefinido ou o endereço da rotina de 
tratamento 
24 
Referências 
 TANENBAUM, Andrew S.; WOODHULL, Albert S. 
Sistemas Operacionais: Projeto e 
Implementação. 3ª Ed., Prentice Hall, 2008. 
 MARQUES, José Alves; RIBEIRO, Carlos. Sistemas 
Operacionais. LTC, 2011. 
25

Outros materiais