Você está na página 1de 15

01 INTRODUO

1.5

ESTRUTURA DOS SISTEMAS OPERACIONAIS

O Sistema Operacional formado por um Conjunto de rotinas (denominado de


ncleo do sistema ou kernel) que oferece servios aos usurios e suas aplicaes

Figura 01 Kernel de um Sistema Operacional

1.5.1 Linguagem de Comandos


As liguagens de comando permitem ao usurio comunicar-se de forma simples com
o SO para executar tarefas especficas do sistema operacional.
Estas tarefas so as seguintes: criar, ler ou eliminar arquivos, consultar diretrio ou
verificar a data e a hora armazenada no sistema
Cada comando interpretado pelo Shell (interpretador de comandos) que verifica a
sua sintaxe e faz chamadas a rotinas do sistema e apresenta o resultado

Figura 02 As linguagens de comando so interpretadas e as repectivas rotinas do Sistema acionadas

1.5.1.1

Linguagem de Comandos (exemplo no DOS)


Dois comandos foram executados: um para listar os arquivos e diretrios e outro
para remover um arquivo.

Linguagem de Comandos (windows)

Figura 03 Comando usando linguagem de comandos do DOS

1.5.1.2

Linguagem de Comandos (exemplo do linux)

Um comando para remoo de um diretrio foi executado.

Linguagem de Comandos (linux)

Figura 04 - Comando usando linguagem de comandos do Linux

1.5.2 Kernel
As rotinas do sistema so executadas concorrentemente (ao mesmo tempo) sem
uma ordem pr-definida, com base em eventos (acontecimentos) dissociados do tempo
(eventos assncronos)

1.5.2.1

Funes do Kernel
So funes do Kernel:

Tratamento de interrupes e excees;


Criao, eliminao, sicronizao,
Escalonamento e controle de processos
Gerncia da memria, do sistemas de arquivos, das operaes de entrada e
sada;
Suporte a redes locais e distribudas
Contabilizao, auditoria e segurana do sistema

Devido a complexidade de um ambiente multiprogramvel podem surgir problemas


relativos segurana.
Como diversos usurios compartilham os mesmos recursos (memria, processador e
dispositivos de E/S), o SO deve garantir a confiabilidade na execuo concorrente de todos
os programas e NOS DADOS DOS USURIOS, alm da garantia da integridade do
sistema operacional.
No exemplo da figura abaixo o sistema operacional impediu que o arquivo em
formato PDF que estava aberto para leitura fosse deletado.

Exemplo de funo do Kernel


(gerncia do sistema de arquivos)

13

Figura 05 Exemplificao da Funo do Kernel

1.5.3 Modos de Acesso


Os sistemas operacionais restringem as operaes executadas pelos programas
(aplicaes), por razes de segurana e estabilidade. Por exemplo o acesso a dispositivos de
hardware (disco, memria, etc ...)
Muitas implementaes de segurana do ncleo de um SO e de acesso aos seus
servios utilizam o modo de acesso dos processadores.

O modos de acesso dos processadores um mecanismo presente no hardware dos


processadores:
No MODO USURIO uma aplicao s pode executar instrues no privilegiadas,
ou seja, instrues que no oferecem riscos ao sistema.
No MODO KERNEL uma aplicao pode executar instrues no privilegiadas e
privilegiadas, ou seja, instruo que oferece risco ao sistema (exemplo: instrues que
acessam dados no disco).
A figura abaixo exemplifica o uso do modo de acesso dos processadores

Modos de Acesso (exemplo de uso)


Q

Para que um programa (aplicao) possa escrever em uma


rea de memria onde encontra-se o sistema operacional, o
programa (aplicao) deve estar sendo executado com o
processador no modo kernel.

16

Figura 06 Exemplo do uso dos modos de acesso dos processadores

1.5.4 System Calls (Chamadas de Sistema)


Como as rotinas do sistema possuem em seu cdigo instrues privilegiadas, ento
o processador deve estar em modo kernel para execut-las.
As System Calls so como portas de entrada para se ter acesso as rotinas do SO.
Se uma aplicao desejar chamar uma rotina do sistema operacional: mecanismo de
system call verificar se a aplicao possui os privilgios necessrios.

Figura 07 System Call (porta de entrada para rotinas do Sistema Operacional)

A figura abaixo exibe uma system call que obtem a data e hora do sistema

System Calls (Chamadas de Sistema)

19

Figura 08 Chama de uma System Call

A figura abaixo mostra um comando em linux (utilizando a linguagem de


comandos deste sistema) para remover um diretrio denominado diretrio.

Linguagem de Comandos (linux)

20

Figura 09 Execuo de um comando em Linux usando a linguagem de comandos do Sistema Operacional

A figura exibe um tabela de system calls do linux, onde se destaca a relacionada a


rotina que executa o comando da figura anterior

Linux System Call Table

21

Figura 10 Tabela de System Call do Linux

Podemos constatar pelo figura abaixo que uma system call possui milhares de linhas
de cdigo

22

Figura 11 Cdigo fonte de uma System Call na linguagem C

Uma aplicao sempre deve executar com o processador no modo usurio. Se uma
aplicao desejar chamar uma rotina do sistema operacional: o mecanismo de system call
verificar se a aplicao possui os privilgios necessrios.
Em caso negativo o SO impedir o desvio para a rotina do sistema sinalizando ao
programa (aplicao) chamador (a) que a operao no possvel.
A figura abaixo temos um exemplo em que a aplicao no possui os privilgios
necessrios.

Em caso negativo ...

24

Figura 12 - Aplicao no possui privilgios necessrios a execuo de uma rotina do Sistema Operacional

Em caso positivo, caso a aplicao possua os privilgios necessrio ocorrer o seguinte:

Figura 13 Aplicao possui privilgios necessrios a execuo de uma rotina do Sistema Operacional

Caso tente executar uma instruo privilegiada (rotinas do sistema) sem ser por
intermdio de uma system call, um mecanismo de proteo por hardware impedir a
operao.
As system call possuem diversos nomes dependendo do sistema operacional:

System Calls (Chamadas de Sistema)

Q
Q
Q

Unix: system Call


OpenVMS: system Services
MS Windows: Application Program Interface (API)

26

Figura 14 Outros nomes para uma System Call

1.5.4.1

Funes das System Calls (Chamadas de Sistema)


A figura abaixo exibe as principais unes desempenhadas por uma system call

Figura 15 Funes das System Call

Cada Sistema Operacional possui seu prprio conjunto de rotinas.


Uma aplicao desenvolvida utilizando rotinas de um determinado Sistema
Operacional no pode ser portada diretamente para outro SO, exigindo a correo do
cdigo-fonte.
1.5.5 Arquiteturas do Kernel
O projeto de um sistema operacional depende muito do hardware a ser utilizado e
do tipo de Sistema Operacional que se deseja construir (tempo compartilhado, tempo real,
monousurio, multiusurio,etc...)
Os primeiros sistemas operacionais foram desenvolvidos em linguagem assembly
(IBM OS/360)
Nos sistemas operacionais atuais forma em grande parte escritos na linguagem
C/C++ (MS Windows).
O uso de linguagem de alto nvel na construo de sistemas operacionais possui
vantagens e desvantagens:
Vantagem: O Sistema Operacional pode ser facilmente alterado em outra arquitetura
de hardware (portabilidade do cdigo)
Desvantagem: perca do desempenho
A arquitetura do kernel define a maneira como o cdigo do sistema organizado e o
inter-relacionamento entre os seus diversos componentes pode variar conforme a concepo
do projeto.
As principais arquiteturas dos Sistema Operacionais so:
Arquitetura monoltica
Arquitetura em camadas
Mquina virtual
Arquitetura microkernel
As figuras abaixo descrevem as principais arquiteturas:

Arquitetura Monoltica
Q

Compara-se a uma aplicao formada por vrios mdulos que


so compilados separadamente e depois linkados formando um
nico programa executvel onde os mdulos podem interagir
livremente.
Desvantagem:
desenvolvimento e manuteno bastante difceis

Vantagem:
simplicidade e bom desempenho

MS-DOS e primeiros sistemas UNIX

32

Figura 16 Arquiteura Monoltica

Sistema em Camadas
Q

Q
Q

Com o aumento da complexidade e do tamanho do cdigo dos


SO, tcnicas de programao estruturada e modular foram
incorporadas ao projeto
O sistema dividido em nveis sobrepostos
Cada camada oferece um conjunto de funes que podem ser
utilizadas apenas pelas camadas superiores.
As camadas mais internas so mais privilegiadas que as
externas.
Vantagem:
Facilita a manuteno e depurao
Cria uma hierarquia de nveis de modos de
acesso

Desvantagem:
Desempenho

Maioria das verses do UNIX e do Windows


Figura 17 Sistema em Camadas

33

Figura 18 - 21 - Mquina Virtual

Mquina Virtual
Q

Este modelo cria um isolamento total entre cada VM,


oferecendo grande segurana para cada VM.
Desvantagem:
Estrutura bastante complexa devido a necessidade
de compartilhar e gerenciar recursos do hardware
entre as diversas VM

37

Figura 19 -21 - Mquina Virtual

Arquitetura Microkernel
Idia: tornar o ncleo do SO o mais simples possvel.
Os servios do sistema so disponibilizados atravs de
processos, responsveis por oferecer um conjunto especfico
de funes (gerncia de arquivos, processos, de memria e
escalonamento)
Sempre que uma aplicao deseja
algum servio, deve solicitar ao
processo responsvel.

Q
Q

39

Figura 20 - 21 - Arquitetura Microkernel

Arquitetura Microkernel
Q

Q
Q

A aplicao que solicita servio chamada de cliente e o


processo que responde denominado de servidor.
A principal funo do ncleo realizar a troca de mensagens
entre cliente e o servidor
Servidores: modo usurio e Ncleo: modo Kernel.
Vantagem:
Manutebilidade, flexibilidade e
portabilidade
Desvantagem:
Difcil implementao
Maioria das iniciativas ligadas
ao desenvolvimento de SO distribudos
40

Figura 21 - Arquitetura Microkernel

Você também pode gostar