Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 3: Núcleo de um SO
Fortaleza-CE, Brasil
Introdução Chamada de Sistema Utilitários Componentes
Sumário
Introdução
Chamada de Sistema
Utilitários
Shell
Interface gráfica
Bibliotecas
Componentes
Introdução Chamada de Sistema Utilitários Componentes
Revisão
Caracterı́sticas desejáveis
◮ concorrência de processos;
◮ utilização eficiente dos recursos;
◮ desempenho.
Introdução Chamada de Sistema Utilitários Componentes
Núcleo
Funcionamento do SO
As rotinas de um Sistema Operacional não possuem um fluxo de execução
sequencial.
Núcleo
Segurança:
◮ O kernel possui o uso exclusivo
de instruções privilegiadas;
◮ As aplicações não podem fazer
esse acesso direto, tendo que
solicitar ao kernel a liberação
da informação.
Chamadas de sistema
◮ Funciona como interface para
acesso ao núcleo;
◮ Para cada serviço existe uma
system call associada e cada
SO tem o seu próprio conjunto
Figura 1: estrutura do Sistema
(biblioteca) de chamadas. Operacional (SO). Fonte: [6].
Introdução Chamada de Sistema Utilitários Componentes
Modo Dual
Modos de Acesso
Ha 2 tipos de instruções:
◮ Privilegiadas: Podem comprometer o sistema
◮ Não-privilegiadas: Não oferecem perigo ao sistema
Existem instruções que as aplicações comuns não podem ter acesso,
para não comprometer o SO. Para isto, foram criados modos de
acesso a estas instruções:
Modo de Acesso
As chamadas de sistema permitem o acesso privilegiado aos recursos
do sistema, efetuando a troca do modo de operação, conforme
mostrado na Figura.
Chamada de Sistema
Chamada de Sistema (System Calls) consistem na interface entre o
Sistema Operacional (SO) e os programas de usuário.
Para cada serviço existe uma system call associada e cada Sistema
Operacional (SO) tem o seu próprio conjunto (biblioteca) de
chamadas.
Introdução Chamada de Sistema Utilitários Componentes
Gerencia de Processos:
◮ criação e eliminação de processos
◮ suspensão e retomada de processos
◮ prover mecanismos para sincronização de processos
◮ prover mecanismos para comunicação de processos
◮ prover mecanismos para tratar deadlock
Introdução Chamada de Sistema Utilitários Componentes
Gerencia de memoria:
◮ controlar quais regiões de memória são utilizadas e por qual processo
◮ decidir qual processo deve ser carregado para memória, quando
espaço for disponı́vel
◮ alocar e desalocar espaço de memória
Gerencia de entrada/saida:
operações de entrada e saı́da e manipulação de arquivos e diretórios.
Introdução Chamada de Sistema Utilitários Componentes
Comandos Disponı́veis
Controle de Processos
create process, end, abort, execute...
Manipulação de Arquivos
create file, open, close, read, write,..
Manipulação de dispositivos
EX: request device, release device, read, write...
Manutenção de Informações
Ex: get time, set time, get file attributes, ...
Comunicações
Ex: create communication connection, send message, etc.
Introdução Chamada de Sistema Utilitários Componentes
parâmetros
ReadFile(): função para leitura ◮ HANDLE file: arquivo a ser lido;
de um arquivo possui a sintaxe: ◮ LPVOID buffer: local aonde os dados serão
BOOL ReadFile( lidos/gravados;
HANDLE file,LPVOID buffer, ◮ DWORD bytesToRead:quantidade de bytes a
ser lida no buffer;
DWORD bytesToRead, LPDWORD ◮ LPDWORD bytesRead: quantidade de bytes
bytesRead, LPOVERLAPPED lida durante a última leitura;
ovl ); ◮ LPOVERLAPPED ovl: indica se o
Entrada/Saı́da (E/S) sobreposto está sendo
usado.
Introdução Chamada de Sistema Utilitários Componentes
parâmetros
read(): função para leitura de
◮ FILE fileID: arquivo a ser lido;
um arquivo possui a sintaxe: ◮ int * buffer: local aonde os dados serão
contador = read( lidos/gravados;
FILE fileID,int * buffer, ◮ int nbytes: quantidade de bytes lida durante
int nbytes ); a última leitura;
◮ contador: quantidade de bytes efetivamente
lidos.
Introdução Chamada de Sistema Utilitários Componentes
Funcionamento
Programas de Sistema
Linguagem de comandos
Shell
Em geral, não faz parte do SO
Por causa disto, possibilita a criação de diferentes linguagens em um
mesmo sistema. No Linux, existem vários shells, em que, os mais usuais
são:
Shell Script
Shell Script
O shell também implementa um linguagem simples de programação que
permite o desenvolvimento de pequenos programas, os Shell Scripts.
Interface Gráfica
Gerenciador de Janelas
Estas aplicações transformam a interface de comando em linha de texto
em interface gráfica.
Personalização
São os gerenciadores que possibilitam a personalização do visual do
sistema, dependendo da criatividade do utilizador.
Introdução Chamada de Sistema Utilitários Componentes
Bibliotecas
Bibliotecas
Forma de acesso à chamadas de sistema em linguagens de alto nı́vel através
da definição de chamadas de procedimentos (funções).
Compilador
Responsável por traduzir as chamadas a procedimento em chamadas ao
sistema.
Dependência do SO
Para cada serviço existe uma system call associada e cada Sistema
Operacional (SO) tem o seu próprio conjunto (biblioteca) de chamadas.
Por exemplo, existe a biblioteca para acesso à de interface gráfica para
desenhar as interfaces gráficas.
Introdução Chamada de Sistema Utilitários Componentes
Exemplo
biblioteca função
ctype.h Funções usadas para classificar caracteres pelo tipo ou
para converter entre caixa alta e baixa independentemente
da codificação.
limits.h Constantes de propriedades especı́ficas de implementação
da biblioteca de tipos inteiros, como a faixa de números
que pode ser representada ( MIN, MAX).
math.h Funções matemáticas comuns em computação.
stddef.h Diversos tipos e macros úteis.
stdio.h Manipulação de entrada/saı́da.
stdlib.h Diversas operações, incluindo conversão, geração de
números pseudo-aleatórios, alocação de memória, controle
de processo, sinais, busca e ordenação.
string.h Tratamento de cadeia de caracteres.
Introdução Chamada de Sistema Utilitários Componentes
biblioteca função
conio.h Opções de console avançadas do DOS
d3d9 Funções para uso de instruções do Direct 3D 9.
glut.h Funções para uso de instruções do OpenGL.
unistd.h Funções para uso de instruções definidas no padrão
POSIX
winsock.h Funções para uso dos sockets em C.
w32api.h Funções para chamada de sistemas do Windows 32
bits.
Introdução Chamada de Sistema Utilitários Componentes
Componentes do núcleo
Núcleo
Define a abstração de uma máquina virtual sobre uma máquina real
Formado por:
◮ Gerência do processador
◮ Gerência de memória real e
virtual
◮ Gerência de E/S
Gerenciamento de memória
Necessidade
tomar conta que partes da memória estão em uso e por quem decidir que
partes de processos colocar em memória ou remover de memória, isto é,
alocar ou desalocar memória para processos
Sistema de Arquivos
Transparência
Caracterı́stica importante de um Sistema Operacional (SO) é a capacidade
de esconder peculiaridades de discos e outros elementos de E/S e apresentar
um modelo abstrato de arquivos independentes de dispositivo.
Diretório:
forma de agrupamento de arquivos.
Sistema de Arquivo
As entradas de diretório podem ser arquivos ou outros diretórios, formando
uma hierarquia
Introdução Chamada de Sistema Utilitários Componentes
Boot
Ativação do sistema ou
boot
Processo que consiste
em carregar para a
memória principal todos
os componentes do Sistema
Operacional (SO) toda
vez que o computador é
ligado. Após isto, são Figura 12: Ativação do sistema. Fonte: [6].
carregados arquivos de
inicialização em que são
realizados procedimentos de
configuração e customização
do usuário.
Introdução Chamada de Sistema Utilitários Componentes
Abreviaturas I
Referências I