DESENVOLVIMENTO DE
SISTEMAS PARA INTERNET
4. ESTRUTURA DO SISTEMA
OPERACIONAL
Disciplina: Sistemas Operacionais
Facilitador: Alisson Cleiton
[email protected]
06/05/2009
Sistemas para Internet – 2º Período - Sistemas Operacionais
4. Estrutura do Sistema Operacional
4.1 Introdução
É a maneira como o código do sistema é
organizado e como seus diversos componentes
estão inter-relacionados


Existem basicamente cinco abordagens:
– System Calls
– Modos de Acesso
– Sistemas Monolíticos
– Sistemas em Camada
– Sistemas Cliente-Servidor
Sistemas para Internet – 2º Período - Sistemas Operacionais
4. Estrutura do Sistema Operacional
4.1 Introdução
Um sistema do tamanho e com a
complexidade que é um moderno sistema
operacional deve ser cuidadosamente
construído para que funcione bem e
posssa ser facilmente modificado.
O sistema operacional é formado por um
conjunto de rotinas que oferecem serviços
aos usuários, às suas aplicações e
também ao próprio sistema. Esse conjunto
de rotinas é denominado núcleo do
sistema ou Kernel.
Sistemas para Internet – 2º Período - Sistemas Operacionais
4. Estrutura do Sistema Operacional
4.1 Introdução
As principais funções do núcleo do sistema operacional são:
 Tratamento de interrupções e exceções;
 Criação e eliminação de processos;
 Sincronização e comunicação entre processos;
 Escalonamento e controle de processos;
 Gerência de memória;
 Gerência do sistema de arquivos;
 Gerência de dispositivos E/S;
 Suporte a redes locais e distribuídas;
 Contabilização do uso do sistema;
 Auditoria e segurança do sistema
Sistemas para Internet – 2º Período - Sistemas Operacionais
4. Estrutura do Sistema Operacional
4.2.1 System calls
Nos sistemas operacionais há a preocupação de oferecer segurança
ao núcleo do sistema.
As system calls são portas de acesso ao núcleo do sistema operacional
e a seus serviços.
Sempre que um usuário ou aplicação desejar algum serviço do
sistema, é realizada uma chamada a uma de suas rotinas através da
uma system call (chamada ao sistema).
O termo system call é tipicamente utilizado em sistemas Unix, porém
em outros sistemas o mesmo conceito é apresentado com diferentes
nomes, como system services no OpenVMS e Application Program
Interface (API) no Windows da Microsoft.
Para cada serviço disponível há uma system call
Sistemas para Internet – 2º Período - Sistemas Operacionais
4. Estrutura do Sistema Operacional
4.2.1 System calls
Para cada serviço disponível existe uma system call associada e cada
sistema operacional tem seu próprio conjunto de chamadas, com
nomes, parâmetros e formas de ativação específicos.
Através dos parâmetros fornecidos na System Call, a solicitação é
processada e é enviada uma resposta à aplicação juntamente com um
estado de conclusão, indicando se houve algum erro.
Sistemas para Internet – 2º Período - Sistemas Operacionais
4. Estrutura do Sistema Operacional
4.2.1 System calls
As system calls podem ser dividias por grupos de funções:
Sistemas para Internet – 2º Período - Sistemas Operacionais
4. Estrutura do Sistema Operacional
4.2.2 Modos de Acesso
Existem certas instruções que não podem ser colocadas diretamente à
disposição das aplicações, pois a sua utilização indevida ocasionaria
sérios problemas à integridade do sistema.
Existem certas instruções que só devem ser executadas pelo sistema
operacional ou sub sua supervisão
As instruções que têm o poder de comprometer o sistema são
conhecidas como instruções privilegiadas, enquanto as instruções
não privilegiadas são as que não oferecem riscos ao sistema.
Para que uma aplicação possa executar uma instrução privilegiada, é
necessário que no processador seja implementado o mecanismo de
proteção conhecido como modos de acesso.
Existem, basicamente, dois modos de acesso implementados pelos
processadores: modo usuário e modo kernel.
Sistemas para Internet – 2º Período - Sistemas Operacionais
4. Estrutura do Sistema Operacional
4.2.2 Modos de Acesso
Modo Usuário:
● Executa apenas instruções não – privilegiadas;
● Acesso a um número restrito de instruções;
Modo Kernel:
● Executa instruções privilegiadas.
● Acesso total ao conjunto de instruções do processador.
O modo de acesso de uma aplicação é determinado por um conjunto
de bits, localizados no registrador de status do processador ( PSW ),
que indica o modo de acesso corrente.
Sempre que uma aplicação necessita utilizar uma instrução
privilegiada, a solicitação deve ser realizada através de uma chamada
a uma system call, que altera o modo de acesso do processador de
modo usuário para modo kernel. Ao término da execução da rotina, há
o retorno ao modo usuário.
Sistemas para Internet – 2º Período - Sistemas Operacionais
4. Estrutura do Sistema Operacional
4.3 Sistema Monolítico
Que designa o modelo em que o sistema operacional é codificado por
via de uma coleção de procedimentos, onde é permitido a qualquer um
deles em qualquer parte do programa "chamar" outro procedimento.
A organização mais simples de um sistema como um conjunto de
procedimentos que podem interagir livremente umas com as outras.
Pode ser comparada com uma aplicação que contém vários
procedimentos que são compilados separadamente e depois linkados,
formando um grande e único programa executável.
Vantagem: – Grande desempenho
Desvantagem: – O sistema pode parar por causa de um erro.
- As interfaces e níveis de funcionalidade não são bem separados nem
estão unificados. O excesso de liberdade torna o sistema vulnerável.
Sistemas para Internet – 2º Período - Sistemas Operacionais
4. Estrutura do Sistema Operacional
4.3 Sistema Monolítico
● Vários módulos compilados separadamente e linkados, formando um
único grande programa executável;
● Arquitetura dos primeiros sistemas operacionais ( MS-DOS e Unix);
● Manutenção e desenvolvimento difíceis;
● Simples e com bom desempenho.
Sistemas para Internet – 2º Período - Sistemas Operacionais
4. Estrutura do Sistema Operacional
4.4 Sistema em Camadas
• Vários módulos compilados separadamente e linkados, formando
um único grande programa executável;
• Hierarquia da Camadas
•A camada superior usa serviços da camada inferior
• Arquitetura dos primeiros sistemas operacionais ( MS-DOS e Unix);
• Manutenção e desenvolvimento difíceis;
• Simples e com bom desempenho.
Sistemas para Internet – 2º Período - Sistemas Operacionais
4. Estrutura do Sistema Operacional
4.4 Sistema em Camadas
Camada 4
Programas de Usuário
Camada 3
Gerência dos Dispositivos
de Entrada/Saída
E/S
Comunicação operadorprocesso
Administra a
comunicação
entre cada
Camada 2
Administrar os
dispositivos de
processo
Camada 1
Camada 0
Gerência de memória
Alocação do processador e
implementação da
multiprogramação
Responsável
pela alocação
de espaço
Sistemas para Internet – 2º Período - Sistemas Operacionais
4. Estrutura do Sistema Operacional
4.5 Sistemas cliente-servidor
- A tendência é tornar o núcleo do sistema operacional o
menor e mais simples possível
- Serviços do SO são implementados como processos de
usuário
- Sempre que uma aplicação deseja algum serviço ela
solicita ao processo responsável
- A aplicação que solicita o serviço é chamada de cliente,
enquanto o processo que responde à aplicação é chamado
de servidor
Sistemas para Internet – 2º Período - Sistemas Operacionais
4. Estrutura do Sistema Operacional
4.5 Sistemas cliente-servidor
-Função do núcleo: tratar da comunicação entre clientes e
servidores
- Apenas o núcleo executa no modo supervisor
-Adaptabilidade ao uso em sistemas distribuídos
Sistemas para Internet – 2º Período - Sistemas Operacionais
4. Estrutura do Sistema Operacional
4.5 Sistemas cliente-servidor
– implementação
• dividir o sistema em processos, sendo cada um
responsável por oferecer um conjunto de serviços
- serviços de arquivo;
- serviços de criação de processos;
- serviços de memória;
- serviços de escalonamento, etc.
• as aplicações solicitam serviços ao processo responsável
- a aplicação que solicita o serviço é chamada de
cliente;
- o processo que responde à solicitação é chamado de
servidor.
Sistemas para Internet – 2º Período - Sistemas Operacionais
4. Estrutura do Sistema Operacional
4.5 Sistemas cliente-servidor
Servidor
de
memória
cliente
Servidor
de arquivo
Servidor
de
processo
Servidor
de rede
Modo usuário
Núcleo
Hardware
Modo Kernel
Sistemas para Internet – 2º Período - Sistemas Operacionais
4. Estrutura do Sistema Operacional
4.5 Sistemas cliente-servidor
– Vantagens:
– permite que os servidores executem em modo
usuário (não tenham acesso direto a certos componentes
do sistema)
– Apenas o núcleo do sistema executa no modo
kernel;
– Se um erro ocorrer em um servidor, o sistema não
ficará inteiramente comprometido;
Permite isolar as funções do sistema operacional
por diversos servidores pequenos e dedicados a serviços
específicos;
–
Sistemas para Internet – 2º Período - Sistemas Operacionais
4. Estrutura do Sistema Operacional
4.5 Sistemas cliente-servidor
• na prática:
– a implementação de estruturas cliente-servidor é muito
difícil devido a certas funções do sistema operacional
exigirem acesso direto ao hardware;
» exemplo: operações de e/s.
• na realidade:
– usualmente é implementado uma combinação do
modelo de camadas com o modelo cliente-servidor;
– núcleo do sistema
» realizar a comunicação entre cliente e servidor;
» executar funções críticas do sistema;
» executar funções dos device drivers.
Sistemas para Internet – 2º Período - Sistemas Operacionais
4. Estrutura do Sistema Operacional
Exercícios
1 – O que é núcleo do sistema e quais são suas principais funções?
2 – O que é system call e qual sua importância para a segurança do
sistema?
3 – O que são instruções privilegiadas e não-privilegiadas? Qual a
relação dessas instruções com os modos de acesso?
4 – Como o kernel do sistema operacional pode ser protegido pelo
mecanismo de modos de acesso?
5 – Compare as arquiteturas monolítica e de camadas. Quais as
vantagens e desvantagens de cada arquitetura?
DESENVOLVIMENTO DE
SISTEMAS PARA INTERNET
5. PROCESSO E THREADS
Sistemas para Internet – 2º Período - Sistemas Operacionais
5. Processo e Threads
5.1 Introdução
O processo é a base para a implementação de
sistemas multiprogramáveis;
 A gerência de um sistema multiprogramável é uma
função exclusiva do sistema operacional, que deve
controlar os diversos programas e o uso concorrente
do processador;
 Um programa deve estar SEMPRE associado a um
processo;
Através do processo o programa pode alocar
recursos, compartilhar dados, trocar informações e
sincronizar sua execução

Sistemas para Internet – 2º Período - Sistemas Operacionais
5. Processo e Threads
5.2 Modelo de processo
Um processo pode ser definido como o ambiente
onde um programa é executado;
 Este ambiente, além das informações sobre
execução, possui também quanto os recursos de
Hardware e Software;

Um
processo é formado por três partes conhecidas
como
 Contexto de Hardware,
 Contexto de Software
 Espaço de endereçamento.
Sistemas para Internet – 2º Período - Sistemas Operacionais
5. Processo e Threads
5.3 Contexto de hardware
 Armazena
o conteúdo dos registradores gerais da
UCP, além dos registradores de uso específico,
como o Program Counter ( PC ), Stack Pointer ( SP )
e o registrador de status;
 Enquanto um processo está em execução, seu
contexto de hardware está armazenado nos
registradores da UCP;
 A troca de um processo por outro no processador,
comandada pelo sistema operacional, é denominada
mudança de contexto;
Sistemas para Internet – 2º Período - Sistemas Operacionais
5. Processo e Threads
5.4 Contexto de software
São especificadas características e limites dos
recursos que podem ser alocados pelo processo;
 O arquivo de contas é um arquivo do sistema
operacional de onde provém a maior parte das
informações de contexto, como os limites dos
recursos que cada processo pode alocar;
 arquivo do contexto de software é composto por
três grupos de informações sobre o processo:
 identificação
 quotas
 privilégios.

Sistemas para Internet – 2º Período - Sistemas Operacionais
5. Processo e Threads
5.4 Contexto de software

Identificação
 Cada processo criada pelo sistema recebe uma
identificação única ( PID – Process
Identification ).

Através do PID, o sistema operacional e outros
processos podem fazer referência a qualquer
processo;

O processo possui a identificação do usuário
que o criou.
Sistemas para Internet – 2º Período - Sistemas Operacionais
5. Processo e Threads
5.4 Contexto de software

Quotas
 São os limites dos recursos do sistema que
cada processo pode alocar.

Privilégios
 Define quais ações que um processo pode
fazer em relação a ele mesmo, a outros
processos e ao sistema operacional.
Sistemas para Internet – 2º Período - Sistemas Operacionais
5. Processo e Threads
5.5 Estados do Processo
Os processos passam por diferentes estados ao
longo do seu processamento em função de eventos
gerados pelo sistema operacional ou pelo próprio
processo;




Execução (Running)
Pronto (Ready)
Espera (Wait)
Sistemas para Internet – 2º Período - Sistemas Operacionais
5. Processo e Threads
5.6 Mudança de Estado de Processo
Um processo muda de estado durante seu
processamento em função de eventos originados
por ele próprio ( eventos voluntários ) ou pelo
sistema operacional ( eventos involuntários ).
Basicamente, existem quatro mudanças de estado
que podem ocorrer a um processo, listadas a seguir.





De pronto para execução
De execução para espera
De espera para pronto
De execução para pronto
Sistemas para Internet – 2º Período - Sistemas Operacionais
5. Processo e Threads
5.6 Mudança de Estado de Processo

De pronto para execução
 Após a criação de um processo, o sistema o
coloca em uma lista de processos no estado
pronto, onde aguarda por uma oportunidade
para ser executado;

De execução para espera
 Um processo passa do estado de execução
para o estado de espera em função de eventos
gerados por ele mesmo ou por eventos
externos;
Sistemas para Internet – 2º Período - Sistemas Operacionais
5. Processo e Threads
5.6 Mudança de Estado de Processo

De espera para pronto
 Um processo passa do estado de espera para
o estado de pronto quando a operação
solicitada é atendida ou o recurso esperado é
concedido.
 Um processo no estado de espera terá sempre
de passar pelo estado de pronto antes de ser
novamente selecionado para execução.
Sistemas para Internet – 2º Período - Sistemas Operacionais
5. Processo e Threads
5.6 Mudança de Estado de Processo

De execução para pronto
 Um processo em execução passa para o
estado de pronto por eventos gerados pelo
sistema, como o término da fatia de tempo que
o processo possui para execução.
Não necessariamente um processo em estado de
espera ou de pronto se encontra na memória
principal. Caso não haja espaço, o processo pode
ser movido à memória secundária, onde aguardará
até o momento de ser novamente processado.

Sistemas para Internet – 2º Período - Sistemas Operacionais
5. Processo e Threads
5.7 Subprocesso
São processos criados dentro de uma estrutura
hierárquica;
 Há dependência entre o processo criador e o
subprocesso. Caso o processo pai deixe de existir,
todos seus subprocessos são eliminados;
 Subprocessos possuem seu próprio PCB;
 Subprocessos podem compartilhar quotas com o
processo pai. Quando o subprocesso é criado, o
processo pai cede parte de suas cotas ao processo
filho.

Sistemas para Internet – 2º Período - Sistemas Operacionais
5. Processo e Threads
5.8 Thread
 Foi introduzida na tentativa de reduzir o tempo
gasto na criação, eliminação e troca de contexto de
processos nas aplicações concorrentes, bem como
economizar recursos do sistema como um todo;
Em um ambiente multithread, cada processo pode
suportar múltiplos threads, cada qual associado a
uma parte do código da aplicação;
 Threads compartilham os recursos do sistema da
mesma maneira como se fossem um processo;
 Cada thread possui seu próprio contexto de
hardware, porém compartilham o mesmo contexto
de software e espaço de endereçamento com os
demais threads do processo.
Sistemas para Internet – 2º Período - Sistemas Operacionais
5. Processo e Threads
Exercícios
1 – Quantas são e quais são as partes de uma estrutura de processos?
2 – Qual a denominação da troca de um processo por outro no
processador?
3 – Como é feito a identificação do processo?
4 – O que são cotas?
5 – O que é espaço de endereçamento?
6 – Quais são os estados de um processo?
7 – Explique e exemplifique a criação de processos?
8 – O que são THREADS?
DESENVOLVIMENTO DE
SISTEMAS PARA INTERNET
6. COMUNICAÇÃO ENTRE
PROCESSOS
PRÓXIMA AULA
Download

Slides Capitulo 4 e 5