Introdução aos Sistemas Operacionais Definição de Sistema

Propaganda
EA876 - Prof. Eleri Cardozo - FEEC/Unicamp
Introdução aos Sistemas
Operacionais
Eleri Cardozo
FEEC/Unicamp
1
EA876 - Prof. Eleri Cardozo - FEEC/Unicamp
Definição de Sistema Operacional
Um sistema operacional é um gerenciador de recursos de hardware ou uma
máquina virtual que oferece uma interface mais simples para interagir com os
recursos de hardware (Tanenbaum)
Um sistema operacional é um intermediário entre o usuário e o harware de
maneira que o usuário possa executar seus programas de maneira eficiente e
conveniente (Silberschatz).
Um sistema operacional é um ambiente de execução no qual programas do
usuário podem executar (Vahalia).
Um sistema operacional é um conjunto de programas que gerencia o hardware
e provê serviços para os programas manipulados pelo usuário (aplicativos)
(Wikipedia).
2
EA876 - Prof. Eleri Cardozo - FEEC/Unicamp
Definição de Sistema Operacional
Um sistema operacional é um software que facilita o processamento,
armazenamento e transferência de informação.
Note que:
Não utilizamos na definição acima os termos hardware, usuário e
aplicativo.
●
●
A definição acima é centrada na informação.
3
EA876 - Prof. Eleri Cardozo - FEEC/Unicamp
Relacionamento SO-Hardware
Conceitos importantes:
●
Ciclo de execução de instruções (busca-decodifica-executa).
●
Contexto do processador (registradores, SP, PSW, etc.).
●
Interrupção e Manipuladores de Interrupção.
●
Modo do processador (usuário/supervisor).
Em um SO:
Apenas o sistema operacional pode manipular interrupções
geradas pelo hardware.
✔
Apenas o sistema operacional (a rigor, uma parte deste) pode
executar em modo supervisor.
✔
4
EA876 - Prof. Eleri Cardozo - FEEC/Unicamp
Interrupções
Interrupção é o meio pelo qual o hardware reporta ao software a ocorrência de
determinado um evento. Cada interrupção está associada a um evento
específico. Exemplo de eventos:
- Exceções aritméticas: divisão por zero, under/overflow.
- Violação de segmentação: acesso a uma região de memória não permitida ao
programa.
- Alarmes (interrupções de relógio).
- Notificações assíncronas (periféricos de entrada/saída).
Para cada interrupção é possível definir um tratador ou manipulador de
interrupção: uma rotina que executa assim que a interrupção ocorre.
Vetor de interrupção: relaciona a interrupção (seu número) com o respectivo
manipulador.
5
EA876 - Prof. Eleri Cardozo - FEEC/Unicamp
Modo do Processador
Define os privilégios de execução em termos do conjunto de instruções
permitidas para o modo. Existem pelo menos dois modos, usuário e
supervisor.
A passagem do modo usuário para o modo supervisor se dá quando ocorre:
- uma interrupção assíncrona, por exemplo, gerada por um periférico de
entrada/saída;
- uma exceção durante a execução de um programa, por exemplo, exceções
ariméticas;
- um trap. Traps são instruções de máquina que alteram o modo do
processador de usuário para supervisor. Na arquitetura x86 esta alteração se
dá pela instrução INT. Ao ser executada, esta instrução gera uma interrupção
de hardware.
OBS: Manipuladores de interrupção executam em modo supervisor.
6
EA876 - Prof. Eleri Cardozo - FEEC/Unicamp
Arquitetura de um SO
Processos do Usuário
Processos do Sistema
Chamadas de Sistema
Subsistema
de Processos
Subsistema
de Memória
Subsistema
de Arquivos
Subsistema de
Entrada e Saída
Núcleo do Sistema Operacional
Manipuladores de Interrupção
Hardware
7
EA876 - Prof. Eleri Cardozo - FEEC/Unicamp
Arquitetura de um SO
Podemos identificar quatro subsistemas importantes cujas funções
são desempenhadas pelo núcleo e por processos de sistema:
●
Subsistema de processos.
●
Subsistema de memória.
●
Subsistema de arquivos.
●
Subsistema de entrada e saida.
8
EA876 - Prof. Eleri Cardozo - FEEC/Unicamp
Arquitetura de um SO
Note que os manipuladores de interrupções agem sobre todos estes subsistemas,
por exemplo:
- No subsistema de processos uma interrupção de relógio faz com que o sistema
operacional comute o processo (programa) que detem a posse da CPU (Unidade
Central de Processamento).
- No subsistema de memória uma interrupção gerada pela CPU pode indicar que o
programa em execução tentou acessar uma região inválida de memória.
- No subsistema de arquivos uma interrupção gerada pelo controlador de acesso
direto à memória (DMA - Direct Memory Access) pode indicar que a cópia de um
bloco do disco para a memória foi concluída.
- No subsistema de entrada e saída uma interrupção gerada por um acionador de
dispositivo (device driver) pode indicar que uma operação de entrada e saída foi
concluída.
9
EA876 - Prof. Eleri Cardozo - FEEC/Unicamp
Chamadas de Sistema
Para facilitar o processamento, armazenamento e transferência de
informação, o sistema operacional deve expor aos programas aplicativos
um conjunto de serviços. Estes serviços são denominados chamadas de
sistema (system calls). Chamadas de sistema são funções em uma dada
linguagem de programação, usualmente na linguagem C. Estas funções
permitem obter serviços dos subsistemas que compõem um sistema
operacional, por exemplo:
- Iniciar, terminar, suspender e retomar a execução programas aplicativos
(subsistema de processos).
- Alocar, realocar e desalocar segmentos de memória durante a execução
de um programa (subsistema de memória).
- Criar, renomear e remover arquivos e diretórios (subsistema de arquivos).
- Ler e escrever dados em arquivos e conexões de rede (subsistema de
entrada e saída).
OBS: Chamadas de sistema executam no modo supervisor.
10
EA876 - Prof. Eleri Cardozo - FEEC/Unicamp
Chamada se Sistema
Fluxo de execução:
1. O programa do usuário efetua a chamada de sistema (o processado
encontra-se no modo usuário).
2. A interface de chamadas de sistema identifica a chamada e armazena seu
índice (número inteiro) em um registrador da CPU. Em seguida executa um trap
alterando o modo do processador para supervisor.
3. O tratador de interupção associado ao trap (código do sistema operaracional)
busca o índice da chamada no registrador e executa a chamada de sistema
correspondente (em modo supervisor).
4. Quando a chamada de sistema retorna, o tratador de interrupção comuta o
modo do processador de supervisor para usuário e retorna.
5. O programa do usuário retoma sua execução em modo usuário como se
tivesse executado uma função de seu próprio código.
11
EA876 - Prof. Eleri Cardozo - FEEC/Unicamp
Propriedades do Núcleo
O núcleo de sistemas operacionais atuais possuem duas propriedades:
- Preempção: o núcleo é capaz de interromper a qualquer momento
qualquer programa em execução e retomar a CPU para, por exemplo,
proceder a troca de contexto (alocá-la a outro programa).
- Reentrância: o núcleo é capaz de interromper processos executando
em modo supervisor (ou seja, durante o processamento de uma
chamada de sistema) e retomar a CPU.
12
EA876 - Prof. Eleri Cardozo - FEEC/Unicamp
SOs e Linguagens de Programação
Um SO pode ser utilizado a partir de diferentes linguagens de
programação:
C/C++: a partir desta linguagem tem-se acesso direto às chamadas
de sistema.
Java, Python, C#: possuem classes de nível mais alto que as
chamadas de sistema para funções semelhantes (exemplo: classe
File em Java).
Android: SO que utiliza o núcleo do sistema Linux, mas todas as
funcionalidades são disponibilizadas na linguagem Java.
13
EA876 - Prof. Eleri Cardozo - FEEC/Unicamp
Arquitetura do SO Android
Java
C
Ce
Assembly
14
fonte: http://developer.android.com/guide/basics/what-is-android.html
Download