Você está na página 1de 38

Prof.

Msc Vagner Scamati


Disciplina: Sistemas Operacionais – 2021/1
Aula 02 – Estrutura do Sistema Operacional
Introdução
• O Sistema Operacional é formado por um conjunto de rotinas que
oferece serviços aos usuários e suas aplicações;

• Esse conjunto de rotinas é denominado de núcleo do sistema ou


Kernel;

• Maneiras de o usuário se comunicar com o Kernel:


• Interface gráfico do usuário (GUI)
• Interpretador de comandos (linha de comandos)
Representação dos serviços do SO

Chamadas de
Interface Usuário
Sistemas

SO

Serviços
Funções do Núcleo (Kernel)
• As principais funções do núcleo encontradas nos SO´s são:
• Tratamento de interrupções e exceções;
• Criação e eliminação de processos e threads;
• Sincronização e comunicação entre processos;
• Escalonamento e controle dos processos e threads;
• Gerência de memória;
• Gerência do sistema de arquivos;
• Gerência de dispositivo de E/S;
• Suporte a redes locais e distribuídas;
• Contabilização e auditoria de sistemas.
Funções do Núcleo (Kernel)
• Uma das principais características da multiprogramação é
permitir que vários programas compartilhem a CPU;

• O SO deve ser responsável pelo controle de utilização da


CPU, implementando mecanismos de proteção e acesso;
• Ex: - preservar dados e códigos na memória principal de diferentes
usuários;
- armazenar arquivos de usuários diferentes em disco.
Modos de Acesso
• Mecanismo de proteção a núcleo (kernel) do SO e de acesso aos
seus serviços;

• Em geral os processadores possuem dois modos de acesso: modo


usuário e modo kernel;

• O modo de acesso é determinado por um conjunto de bits


localizado no registrador de status do processador, que
indica o modo de acesso corrente;
Modos de Acesso
• Instruções privilegiadas são aquelas que só devem ser
executadas pelo SO ou sob sua supervisão, elas podem causar
problemas de segurança e integridade ao sistema;

• Instruções não privilegiadas são aquelas que não oferecem


risco ao sistema, podendo ser executadas pelo SO e pelos
aplicativos.
Modos de Acesso (Usuário)
• Uma aplicação só pode executar instruções conhecidas
como não privilegiadas;

• Tem acesso ao numero reduzido de instruções;


Modos de Acesso (Kernel)

• No modo kernel é possível o acesso irrestrito ao conjunto de


instruções da máquina;

• Um processo deixa de executar em modo usuário e passa a


executar em modo kernel quando executa uma chamada de
sistema;
Rotinas do SO e System Calls (Chamadas de Sist.)

• Todas as funções do núcleo (kernel) são implementadas por


rotinas do SO que necessariamente possuem em seu código
instruções privilegiadas (executadas em modo Kernel);

• Todo o controle de execução de rotinas do SO é realizado pelo


mecanismo chamado system call;

• Toda vez que uma aplicação desejar chamar uma rotina do SO, o
mecanismo do system call é ativado;
Rotinas do SO e System Calls (Chamadas de Sist.)
Chamada a Rotinas do SO
• As rotinas do SO e o mecanismo do system call podem ser
entendidos com uma porta de entrada para o núcleo (kernel)
do SO a seus serviços;
Chamada a Rotinas do SO
• Por intermédio dos parâmetros fornecidos na system call, a
solicitação é processada e uma resposta é retornada à
aplicação juntamente com um estado de conclusão
(indicando se houve algum erro);

• O termo system call é utilizado tipicamente em sistemas Unix,


porém em outros sistemas o mesmo conceito é apresentado com
diferentes nomes:
• System Service - OpenVMs
• Aplication Program Interface (API) - Windows
Chamada a Rotinas do SO
• As rotinas do SO podem ser divididas por grupo de funções:
Funções do System Call
Funções System Call

• Criação e eliminação de arquivos e diretórios;


• Alteração das características de arquivos e diretórios;
Gerência de Sistemas de
• Abrir e fechar arquivos;
Arquivos
• Leitura e gravação de arquivos;
• Obtenção de informações sobre arquivos e diretórios
• Criação e eliminação de processos e threads;
Gerência de Processos e • Alteração das características de processos e threads;
threads • Sincronização e comunicação entre processos e threads;
• Obtenção de informações entre processos e threads;

Gerencia de Memória • Alocação e desalocação de memória;


Chamada a Rotinas do SO
• As rotinas do SO podem ser divididas por grupo de funções:
Funções do System Call
Funções System Call

• Alocação e desalocação de dispositivos;


Gerência de
• Operações de entrada e saída em dispositivos;
dispositivos
• Obtenção de informações sobre dispositivos;
Linguagens de Comandos
Linguagens de Comandos
• É a linguagem que permite a comunicação do usuário de forma
simples como o S.O., permitindo, portanto, a execução de tarefas
simples como:

• Criar, ler e eliminar arquivos;


• Consultar diretório;
• Verificar data e hora armazenadas no sistema;
• Montar maquina virtual;
• Etc.
Linguagens de Comandos
• Cada S.O. possui sua própria linguagem de Comandos:
• OpenVMS – DCL (Digital Command Language);
• VMS da IBM – JCL (Job Control Language);
• Unix – Comandos do Shell;

• Alguns comandos do Windows:


Comando Descrição Comando Descrição

dir Lista conteúdo do diretório del Elimina arquivos


cd Altera diretório default mkdir Cria um diretório
type Exibe conteúdo do arquivo ver Mostra versão do windows
Linguagens de Comandos
• Algoritmo de execução do programa:
c:\>Comando

O shell interpreta e verifica a sintaxe

Por não fazer parte


Chama as rotinas do sistema do kernel, o
interpretador de
comandos é flexível
Apresenta os resultados
Linguagens de Comandos
Usuário

Linguagem de Interface
Comando - SHELL Gráfica - GUI

BATCH ou SHELL Sistema Operacional


SCRIPTS Hardware

Possibilita automação de tarefas


Ativação/Desativação do Sistema
Ativação/Desativação do SO
• O S.O. reside no HD (ou DVD ou CD ou pendrive);

• É carregado no momento que se liga o computador pelo procedimento


denominado ativação do sistema (boot);

• O programa boot loader é carregado em endereço fixo da ROM e


invoca o POST(Power-On-Self-Test) – identificador dos possíveis
problemas de Hardware;
Ativação/Desativação do SO
• Além da carga, executa-se arquivos de inicialização onde são
especificados procedimentos de customização e configuração de
hardware e software específicos para o ambiente;

Memória
Principal
O SO é alocado em um
bloco de endereço de
SO memória especifico e
Sistema protegido.
Operacional
Ativação/Desativação do SO
• A maioria dos S.O.’s possuem procedimento de desativação
(shutdown) que garante a integridade do mesmo;
Arquiteturas do SO
Arquiteturas do Núcleo
• O projeto de um SO é bastante complexo e deve atender a
diversos requisitos:

• Confiabilidade;
• Portabilidade;
• Manutenção; Podem ser conflitantes
• Flexibilidade;
• Desempenho;
• Segurança;
Arquiteturas do Núcleo
• Projeto depende da arquitetura do hardware e do tipo de
sistema que se deseja construir;

• Batch;
• Tempo compartilhado;
• Monousuário/Multiusuário;
• Tempo real, etc
Arquiteturas do Núcleo
• Os primeiros SO´s possuíam mais de uma milhão de linhas de
códigos implementados em assembly;

• Evoluíram para 20 milhões de linhas de código modular em PL/I e Algol;

• Alguns SO´s possuem algo entre 40 a 100 milhões de linhas de


código, o Ubuntu aproximadamente 6 milhões;

• Uma tendência na construção de projetos de SO´s é a utilização da


técnica de orientação a objetos;
Arquiteturas do Núcleo
• A estrutura do núcleo do SO, ou seja, a maneira como o código do
SO é organizado e o inter-relacionamento de seus diversos
componentes pode variar conforme a concepção do projeto
em:
• Arquitetura Monolítica

• Arquitetura de Camadas

• Maquina Virtual
• Arquitetura Microkernel
Arquiteturas Monolítica

• É a arquitetura de sistema operacional mais comum e antiga;

• Cada componente do S.O. está contido no núcleo do sistema;

• Uma aplicação formada por vários módulos que são


compilados separadamente e depois linkados, formando assim
um grande sistema onde os módulos podem interagir.

• É simples e de fácil manutenção, adotado no MS-DOS e primeiros


sistemas UNIX;
Arquitetura Monolítica

Vários Módulos
Arquitetura de Camadas
• Com aumento da complexidade do desenvolvimento dos SO´s,
técnicas de programação estruturada e modular foram
incorporadas ao projeto;

• A vantagem da estruturação em camadas é isolar as funções


do SO, facilitando sua manutenção e depuração, além de criar um
hierarquia de níveis de modo de acesso;
• Uma desvantagem pode ser o desempenho;

• Atualmente a maioria dos SO´s (Unix e Windows) utilizam


esse modelo em duas camadas (usuário e kernel);
Arquitetura de Camadas

Camadas com
hierarquia
Arquitetura de Maquina Virtual
• Um sistema computacional é formado por níveis, onde a camada
de nível mais baixo é o hardware;
• Acima dessa camada encontra-se o Sistema Operacional que
oferece suporte as aplicações;
• O modelo de maquina virtual (VM) cria um nível intermediário
entre o hardware e o SO, denominado gerência de maquina
virtual;
• Este nível cria diversas maquinas virtuais independentes,
onde cada uma oferece uma cópia virtual do hardware
(modos de acesso, interrupções, dispositivos E/S, etc)
Arquitetura de Maquina Virtual
Maquinas Virtuais
Arquitetura de Micro Kernel
• Tendência de tornar o núcleo do SO o menor e mais simples
possível;

• Para isso os serviços são disponibilizados por meio de


processos;

• Sempre que uma aplicação deseja algum serviço, é realizada uma


solicitação ao processo responsável;

• A principal função do núcleo é realizar a comunicação por


meio de troca de mensagens entre uma processo e outro;
Arquitetura de Micro Kernel
• A utilização desse modelo permite que os processos executem
em modo usuário (não tenha acesso direto a certos componentes
do sistema), apenas o núcleo executa no modo Kernel;

• Como os processos se comunicam por meio de troca de


mensagens, não importa se o sistema é monoprocessado,
multiprocessado ou distribuído;

• É mais fácil de manutenção, porém implementação é difícil


(principalmente pela necessidade de mudança de modo de acesso
a cada comunicação);
Arquitetura de Micro Kernel
Processos – Modo
Usuário

Você também pode gostar