< Super Dicas |  Glossário  |  Softwares  | Cuca Sabida  |  Aprenda | Tutoriais |  Página inicial  > 

 
 
  Aulas
Internet
Linguagens
Redes
Hardware
Banco de Dado
Comp. Gráfica
I. A.
Algoritmos
S. Operacional

  Sofwares
Ms-Word
Ms-Excel
I. Explorer
Front Page
Linux
Winzip

  Instrutor.com
:: Contatos
:: Quem somos
:: Publicidade
:: Ganhamos
:: Comente
:: Parcerias

  Ferramentas
Mapa do Site
Downloads

  Eu gostei
Home Page
Papel / Parede

 

Serviços do Sistemas Operacionais

O SO oferece um ambiente para a execução de programas através de SERVIÇOS para os programas e para os usuários. Alguns serviços não têm como preocupação apenas tornar a máquina mais confortável para o usuário, mas também, para que o próprio sistema seja mais eficiente e seguro.

Tipos de Serviços

Execução de Programas: capacidade do sistema de carregar um programa na memória e executá-lo.

Operação de I/O: uma vez que os programas do usuário não podem executar operações de E/ S diretamente, o sistema operacional deve prover alguma forma de execução de tais operações.

Manipulação de Sistemas de Arquivos: os usuários têm necessidade de realizar acessos (ler, escrever, etc) aos arquivos pelo nome. O SO é o responsável pela gerência deste sistema, incluindo alocação de espaço, busca otimizada, etc.

Detecção de Erros: garantir a correta computação, detectando erros no hardware (CPU e memória), nos dispositivos de E/ S ou em programas do usuário.

Alocação de Recursos: alocar recursos para múltiplos usuários ou vários jobs executando ao mesmo tempo.

Comunicações: troca de informações entre processos executando tanto no mesmo computador quanto em sistemas diferentes interligados via rede. Implementado via memória compartilhada ou troca de mensagens.

Proteção: O SO é responsável pela proteção de todo o sistema, seja mono ou multiusuário.

Usuários x Sistema Operacional

1. Chamadas de Sistema (System Calls)

Maneira pela qual os programas solicitam serviços ao sistema operacional. As chamadas ao sistema fornecem uma interface entre um programa em execução e o SO e podem ser classificadas em duas categorias:

1. Controle de Processos;
2. Gerência de Arquivos e Dispositivos de I/O

Controle de Processos: nessa categoria existem chamadas ao sistema para criação e finalização de processos, manipulação de tempo para manter a sincronização entre processos concorrentes, carregamento e execução de programas, obtenção e ativação de atributos nos processos, etc.

Gerência de Arquivos e Dispositivos de I/O: existem chamadas ao sistema para criar, apagar, abrir e fechar arquivos, ler e escrever, alterar, etc. Em geral, a única informação necessária para acessar um arquivo é o seu nome. No caso de dispositivos de I/O, existem chamadas para requisitar e liberar um dispositivo.

2. Interpretador de Comandos (SHELL)

O Shell é um utilitário do SO que começa a ser executado quando o SO é iniciado. Sua função é aguardar comandos feitos pelo usuário através da interface e então interpreta-los. O Shell pode conter o código que executa o comando pedido, ou então, cada comando é executado por um programa independente. Neste segundo caso, cada programa possui um nome próprio e a função do interpretador é carrega-lo na memória principal. Uma forma de visualizar o interpretador de comandos é compreende-lo como uma cápsula circulando o SO, ou seja, uma chamada entre o usuário e o SO.

Comportamento do Sistema Operacional

Os sistemas operacionais têm uma característica bastante interessante. Se não existir nenhum programa a executar, nenhum dispositivo de entrada/saída a ser atendido e nenhum usuário aguardando uma resposta, o sistema operacional fica esperando a ocorrência de algum evento. Eventos são, em geral, representados por interrupções.

Quando uma interrupção ocorre, o hardware transfere o controle para o sistema operacional. Neste momento, o sistema operacional salva o estado da máquina (registradores e contador de programa) e determina qual foi o tipo de interrupção que ocorreu, já que existem diferentes tipos de interrupção. Por exemplo, uma chamada ao sistema (create), uma interrupção de um dispositivo de E/S (impressora), uma interrupção de erro (tentativa de executar uma instrução privilegiada). Para cada tipo de interrupção um tratamento diferente tem de ser realizado.

Na visão do sistema operacional, as chamadas ao sistema são agrupadas de acordo com o seu tipo. Para cada chamada um segmento de código é executado. Apesar do sistema tratar muitas chamadas, a maioria dos eventos que ocorrem pertencem à classe de interrupções dos dispositivos de E/S. Uma operação de E/S é resultante de uma chamada ao sistema requisitando tal serviço. Uma situação prática seria um programa abrir um arquivo e escrever alguma informação nele. Neste caso, o dispositivo de E/S usado poderia ser um disco e várias operações de E/S e uma seqüência de chamadas ao sistema seriam realizadas.

Uma vez que uma operação de entrada/saída tem início dois fatos podem ocorrer. O primeiro é quando o controle só retorna para o programa do usuário, que gerou a chamada ao sistema, quando a operação tiver sido terminada. No segundo, o controle retorna ao programa do usuário sem esperar que a operação de entrada/saída tenha sido terminada. Ambas as situações têm vantagens e desvantagens.

O primeiro caso é mais simples, pois apenas uma operação de entrada/saída fica pendente a cada momento. Em compensação, limita a quantidade de operações simultâneas que podem ser feitas. O segundo caso é mais complexo, pois várias operações de entrada/saída podem ficar pendentes ao mesmo tempo e o sistema operacional precisa identificá-las para poder tratá-las.

Outro tipo de interrupções que merece uma atenção especial são as interrupções de erro. Elas são geradas quando o programa que está sendo executado tenta realizar algo não permitido pelo sistema operacional. Por exemplo, realizar o acesso a uma posição de memória protegida. Sempre que uma interrupção de erro ocorre o sistema operacional deve terminar o programa em execução de forma anormal. Uma mensagem de erro é enviada e a área de memória utilizada pode ser copiada num arquivo (dump) para que o usuário possa tentar descobrir a causa do erro.

 

 
 
 
Design by: Instrutor.com © - Direitos reservados