Escolar Documentos
Profissional Documentos
Cultura Documentos
Conferência 03
Estrutura do Sistema Operativo
Concorrência
@Domingos F. Oliveira
2 of 50
Introdução
2 of 50
Introdução
2 of 50
Introdução
2 of 50
Relembrar...
3 of 50
Relembrar...
3 of 50
Concorrência
4 of 50
Monopragramaveis x Multiprogramaveis
Monopragramaveis
5 of 50
Monopragramaveis x Multiprogramaveis
Monopragramaveis
Apenas um programa sendo executado a cada vez;
5 of 50
Monopragramaveis x Multiprogramaveis
Monopragramaveis
Apenas um programa sendo executado a cada vez;
Execução de um novo programa deve esperar o encerramento do pro-
grama sendo executado
Multiprogramaveis
5 of 50
Monopragramaveis x Multiprogramaveis
Monopragramaveis
Apenas um programa sendo executado a cada vez;
Execução de um novo programa deve esperar o encerramento do pro-
grama sendo executado
Multiprogramaveis
Permite a concorrência dos programas;
5 of 50
Monopragramaveis x Multiprogramaveis
Monopragramaveis
Apenas um programa sendo executado a cada vez;
Execução de um novo programa deve esperar o encerramento do pro-
grama sendo executado
Multiprogramaveis
Permite a concorrência dos programas;
Execução de novos programas inicia-se durante a execução de outros
programas.
5 of 50
Concorrência
6 of 50
Concorrência
6 of 50
Concorrência
6 of 50
Troca de contexto
7 of 50
Troca de contexto
7 of 50
Interrupção e Excepção
8 of 50
Interrupção e Excepção
8 of 50
Interrupção
9 of 50
Interrupção
9 of 50
Interrupção
9 of 50
Interrupção
9 of 50
Interrupção
Neste caso, o programa em execução é interrompido e o controle
desviado para uma rotina responsável por tratar o evento ocorrido,
denominada rotina de tratamento de interrupção.
10 of 50
Interrupção
Neste caso, o programa em execução é interrompido e o controle
desviado para uma rotina responsável por tratar o evento ocorrido,
denominada rotina de tratamento de interrupção.
Para que o programa possa posteriormente voltar a ser executado,
é necessário que, no momento da interrupção, um conjunto de in-
formações sobre a sua execução seja preservado.
10 of 50
Interrupção
Neste caso, o programa em execução é interrompido e o controle
desviado para uma rotina responsável por tratar o evento ocorrido,
denominada rotina de tratamento de interrupção.
Para que o programa possa posteriormente voltar a ser executado,
é necessário que, no momento da interrupção, um conjunto de in-
formações sobre a sua execução seja preservado.
Essas informações consistem no conteúdo registradores, que deverão
ser restaurados para a continuação do programa.
10 of 50
Interrupção
Neste caso, o programa em execução é interrompido e o controle
desviado para uma rotina responsável por tratar o evento ocorrido,
denominada rotina de tratamento de interrupção.
Para que o programa possa posteriormente voltar a ser executado,
é necessário que, no momento da interrupção, um conjunto de in-
formações sobre a sua execução seja preservado.
Essas informações consistem no conteúdo registradores, que deverão
ser restaurados para a continuação do programa.
A interrupção é o mecanismo que permitiu a implementação da con-
corrência nos computadores, sendo o fundamento dos sistemas
multiprogramáveis.
10 of 50
Interrupção
Neste caso, o programa em execução é interrompido e o controle
desviado para uma rotina responsável por tratar o evento ocorrido,
denominada rotina de tratamento de interrupção.
Para que o programa possa posteriormente voltar a ser executado,
é necessário que, no momento da interrupção, um conjunto de in-
formações sobre a sua execução seja preservado.
Essas informações consistem no conteúdo registradores, que deverão
ser restaurados para a continuação do programa.
A interrupção é o mecanismo que permitiu a implementação da con-
corrência nos computadores, sendo o fundamento dos sistemas
multiprogramáveis.
Inicialmente os sistemas operativos apenas implementavam o mecan-
ismo de interrupção. Com a evolução dos sistemas foi introduzido
o conceito de excepção.
10 of 50
Excepção
11 of 50
Excepção
11 of 50
Excepção
11 of 50
Rotina de tratamento de excepção em Java
12 of 50
Interrupção e Excepção
13 of 50
Interrupção e Excepção
13 of 50
Interrupção e Excepção
13 of 50
Interrupção e Excepção
14 of 50
Operações de Entrada/Saı́da
15 of 50
Operações de Entrada/Saı́da
15 of 50
Operações de Entrada/Saı́da
15 of 50
Operações de Entrada/Saı́da
15 of 50
Operações de entrada/saı́da
16 of 50
Operações de entrada/saı́da
Com a implementação do mecanismo de interrupção no hardware
dos computadores, as operações de E/S puderam ser realizadas de
uma forma mais eficiente.
17 of 50
Operações de entrada/saı́da
Com a implementação do mecanismo de interrupção no hardware
dos computadores, as operações de E/S puderam ser realizadas de
uma forma mais eficiente.
Outra técnica que permitia que bloco de dados seja transferido entre
memória e periféricos, sem a intervenção da CPU, excepto no inı́cio
e no final da transferência é a técnica de DMA (Direct Memory
Access);
17 of 50
Operações de entrada/saı́da
Com a implementação do mecanismo de interrupção no hardware
dos computadores, as operações de E/S puderam ser realizadas de
uma forma mais eficiente.
Outra técnica que permitia que bloco de dados seja transferido entre
memória e periféricos, sem a intervenção da CPU, excepto no inı́cio
e no final da transferência é a técnica de DMA (Direct Memory
Access);
O conceito de DMA possibilitou o surgimento do canal de en-
trada/saida introduzido pela IBM.
17 of 50
Operações de entrada/saı́da
Com a implementação do mecanismo de interrupção no hardware
dos computadores, as operações de E/S puderam ser realizadas de
uma forma mais eficiente.
Outra técnica que permitia que bloco de dados seja transferido entre
memória e periféricos, sem a intervenção da CPU, excepto no inı́cio
e no final da transferência é a técnica de DMA (Direct Memory
Access);
O conceito de DMA possibilitou o surgimento do canal de en-
trada/saida introduzido pela IBM.
O canal e um processador com capacidade de executar programas
de E/S, permitindo o controle total sobre operacoes de E/S.
17 of 50
Operações de entrada/saı́da
Com a implementação do mecanismo de interrupção no hardware
dos computadores, as operações de E/S puderam ser realizadas de
uma forma mais eficiente.
Outra técnica que permitia que bloco de dados seja transferido entre
memória e periféricos, sem a intervenção da CPU, excepto no inı́cio
e no final da transferência é a técnica de DMA (Direct Memory
Access);
O conceito de DMA possibilitou o surgimento do canal de en-
trada/saida introduzido pela IBM.
O canal e um processador com capacidade de executar programas
de E/S, permitindo o controle total sobre operacoes de E/S.
O canal atua como um elo entre o processador e o controlador.
17 of 50
Cnal de Entrada e Saı́da
18 of 50
Buffering
19 of 50
Buffering
19 of 50
Buffering
19 of 50
Buffering
20 of 50
Spooling
21 of 50
Spooling
21 of 50
Spooling
21 of 50
Spooling
22 of 50
Spooling
23 of 50
Spooling
23 of 50
Spooling
23 of 50
Spooling
23 of 50
Reentrância
24 of 50
Reentrância
25 of 50
Reentrância
25 of 50
Reentrância
25 of 50
Reentrância
26 of 50
Reentrância
26 of 50
Protecção do sistemas
27 of 50
Protecção do sistemas
27 of 50
Protecção do sistemas
27 of 50
Protecção do sistemas
28 of 50
Protecção do sistemas
28 of 50
Protecção do sistemas
28 of 50
Existe uma grande dificuldade em compreender a estrutura e o
funcionamento de um sistema operativo, pois ele nao e executado
como uma aplicacao tipicamente sequencial, com inicio, meio e fim.
29 of 50
Existe uma grande dificuldade em compreender a estrutura e o
funcionamento de um sistema operativo, pois ele nao e executado
como uma aplicacao tipicamente sequencial, com inicio, meio e fim.
As rotinas do sistema sao executadas sem uma ordem predefinida,
baseada em eventos dissociados do tempo (eventos assincronos).
29 of 50
Existe uma grande dificuldade em compreender a estrutura e o
funcionamento de um sistema operativo, pois ele nao e executado
como uma aplicacao tipicamente sequencial, com inicio, meio e fim.
As rotinas do sistema sao executadas sem uma ordem predefinida,
baseada em eventos dissociados do tempo (eventos assincronos).
Muitos desses eventos estao relacionados ao hardware e tarefas in-
ternas do proprio sistema operativo.
29 of 50
Estrutura do Sistema Operativo
30 of 50
Estrutura do Sistema Operativo
31 of 50
Estrutura do Sistema Operativo
31 of 50
Estrutura do Sistema Operativo
31 of 50
Funções do Kernel
tratamento de interrupção;
criação e eliminação de processos;
sincronização escalonamento e controle dos processos;
gestão de memoria;
gestão do sistema de arquivos;
operações de entrada e saida;
tem contabilização e segurança do sistema.
32 of 50
System Calls
Uma preocupação que surge na grande maioria dos sistemas oper-
ativos é a implementação de mecanismos de proteção do sistema e
de acesso aos seus serviços.
33 of 50
System Calls
Uma preocupação que surge na grande maioria dos sistemas oper-
ativos é a implementação de mecanismos de proteção do sistema e
de acesso aos seus serviços.
Caso uma aplicação, que tenha acesso ao núcleo, realize uma operação
que o danifique, todo o sistema poderá ficar comprometido e inop-
erante.
33 of 50
System Calls
Uma preocupação que surge na grande maioria dos sistemas oper-
ativos é a implementação de mecanismos de proteção do sistema e
de acesso aos seus serviços.
Caso uma aplicação, que tenha acesso ao núcleo, realize uma operação
que o danifique, todo o sistema poderá ficar comprometido e inop-
erante.
O utilizador, quando deseja solicitar algum serviço do sistema, realiza
uma chamada a um dos seus serviços por system calls (chamadas
ao sistema), que são a porta de entrada para se ter acesso ao núcleo
do sistema operativo.
33 of 50
System Calls
Uma preocupação que surge na grande maioria dos sistemas oper-
ativos é a implementação de mecanismos de proteção do sistema e
de acesso aos seus serviços.
Caso uma aplicação, que tenha acesso ao núcleo, realize uma operação
que o danifique, todo o sistema poderá ficar comprometido e inop-
erante.
O utilizador, quando deseja solicitar algum serviço do sistema, realiza
uma chamada a um dos seus serviços por system calls (chamadas
ao sistema), que são a porta de entrada para se ter acesso ao núcleo
do sistema operativo.
Para cada serviço existe um system call associada e cada sistema
operativo tem o seu próprio conjunto de chamadas, com nomes,
parâmetros e formas de activação especı́ficas.
33 of 50
System Calls
34 of 50
System Calls
35 of 50
System Calls
35 of 50
Os system call podem ser divididas
Gestão de processos
Criação e eliminação de processos;
Alteração das caracterı́sticas do processo;
Sincronização e comunicação entre processo.
Gestão de memória
Alocação e desalocação de memória.
Gestão de E/S
Operação de entrada/saida em periféricos;
Manipulação de arquivos e diretorios.
Manutenção de informação
Obter/actualizar – data e hora;
Informar numero de utilizadores;
Informar versão do SO;
Apresentar quantidade de memória disponı́vel; Etc..
36 of 50
Modos de Acesso
37 of 50
Modos de Acesso
37 of 50
Modos de Acesso
37 of 50
Modos de Acesso
37 of 50
Modos de Acesso
37 of 50
Modos de Acesso
38 of 50
Modos de Acesso
38 of 50
Modos de Acesso
38 of 50
Interpretador de comandos
39 of 50
Interpretador de comandos
39 of 50
Interpretador de comandos
39 of 50
Interpretador de comandos
39 of 50
Tipos de Estrutura de Sistemas Operativos
40 of 50
Arquitectura Monolı́tica
Apesar da estrutura monolı́tica ser de longe a mais utilizada, ela poderia muito
bem ser chamada de “a grande confusão”.
Simplesmente não há estruturação visı́vel na organização monolı́tica.
O sistema operativo é escrito como um conjunto de procedimentos, cada um dos
quais podendo chamar qualquer dos demais sempre que necessário.
Quando esta técnica é usada, cada procedimento do sistema deve ter uma in-
terface bem definida em termos de parâmetros e de resultados, sendo, conforme
mencionado anteriormente, cada procedimento livre para chamar qualquer outro
se este último realizar algo de que o primeiro necessite.
Ex. MS-DOS, UNIX
41 of 50
Arquitectura Monolı́tica
42 of 50
Arquitectura de Camadas
43 of 50
Arquitectura de Camadas
44 of 50
Arquitectura Cliente Servidor
Uma tendência dos sistemas operativos modernos é tornar o núcleo
do sistema o menor e mais simples possı́vel.
Para implementar esta ideia, o sistema é dividido em processos,
sendo cada um responsável por oferecer um conjunto de serviços,
como serviços de arquivos, serviços de criação de processos, serviços
de memória, serviços de escalonamento, etc.
Sempre que uma aplicação deseja algum serviço, ela solicita ao pro-
cesso responsável. Neste caso, a aplicação que solicita um serviço é
chamada de cliente, enquanto o processo que responde à solicitação
é chamado servidor. Um cliente, que pode ser uma aplicação de um
utilizador ou um outro componente do sistema operativo, solicita
um serviço enviando uma mensagem para o servidor.
O servidor responde ao cliente através de uma outra mensagem. É
função do núcleo do sistema realizar a comunicação ou seja, a troca
de mensagens entre o cliente e o servidor.
45 of 50
Arquitectura Cliente Servidor
47 of 50
Arquitectura Microkernel
48 of 50
Processos
Um conceito chave da teoria dos sistemas operativos é o conceito
de processo;
49 of 50
Processos
Um conceito chave da teoria dos sistemas operativos é o conceito
de processo;
Um processo é basicamente um programa em execução, sendo con-
stituı́do do código executável, dos dados referentes ao código.
Chamadas de Sistema
Os programas de utilizador solicitam serviços do sistema operativos
através da execução de chamadas de sistema.
49 of 50
Processos
Um conceito chave da teoria dos sistemas operativos é o conceito
de processo;
Um processo é basicamente um programa em execução, sendo con-
stituı́do do código executável, dos dados referentes ao código.
Chamadas de Sistema
Os programas de utilizador solicitam serviços do sistema operativos
através da execução de chamadas de sistema.
A cada chamada corresponde um procedimento de uma biblioteca
de procedimentos que o programa do utilizador pode chamar.
49 of 50
Duvidas ???