1. Sistema Computacional: HARDWARE + SOFTWARE. Sistemas Operacionais Conceitos Básicos Hardware: Principais elementos de hardware de um Sistema Computacional: Processador Memória principal Dispositivos de entrada e saída Software: Programas aplicativos e utilitários - realizam ou auxiliam o usuário na solução de uma tarefa/problema específico. Obs.: os programas utilitários geralmente são utilizados para suprir deficiências dos sistemas operacionais Programas de sistema - gerenciam a operação do computador. O programa de sistema mais básico é o sistema operacional. A tarefa de um sistema operacional é controlar os recursos do computador (dispositivos físicos e funções de software). Pag. 1
Definição para Sistema Operacional: E um programa de controle do computador. O Sistema Operacional e responsável por alocar recursos de hardware e escalonar tarefas. Ele também deve prover uma interface para o usuário (fornece ao usuário uma maneira de acesso aos recursos do computador). Mark G Sobell CONCORRÊNCIA PELOS RECURSOS RECURSOS 2. Concorrência de Programas / Processos Em um ambiente multiprogramável (vários programas sendo executados simultaneamente ) o sistema operacional precisa comandar a troca de um programa por outro no processador (concorrência). Para que a concorrência entre os programas ocorra sem problemas, é necessário que todas as informações do programa interrompido sejam guardadas para que, quando este voltar a ser executado, não fique faltando nenhuma informação necessária. O que é um Processo? Pode ser entendido como um programa em execução, mas o conceito verdadeiro é mais abrangente: Processo é o conjunto necessário de informações para que o sistema operacional implemente a concorrência de programas. Pag. 2
Tempo de uso do recurso 3. Gerência de Processos Mudança de Contexto É o nome dado à troca de um processo por outro no processador, comandada pelo sistema operacional. Um processo contém três partes: Identificação Cotas Privilégios (*) Salvar e recarregar conteúdo dos registradores + Informações do hardware necessário (p/ troca de contexto) Área de memória onde instruções e dados do programa são armazenados para execução. Cada processo possui seu próprio espaço de endereçamento, que deve ser protegido do acesso dos demais processos. Pag. 3
(*) Identificação: Cada processo recebe uma identificação única. Quem o criou/owner (nome de usuário ou identificação de outro processo). (*) Cotas: Os recursos do sistema possuem limites que o processo deve respeitar quando aloca um deles. Exemplo: Tamanho máximo de memória principal. Número máximo de arquivos abertos simultaneamente. Número máximo de operações de entrada e saída pendentes. (*) Privilégios: Definem o que o processo pode ou não fazer em relação ao sistema operacional e aos demais processos. Bloco de controle do processo (Process Control Block PCB): Estrutura de dados onde o SO guarda as informações do processo. Os PCBs de todos os processos ativos residem na memória principal em uma área exclusiva do sistema operacional. Pag. 4
Estados do Processo A necessidade de compartilhamento da CPU entre os processos (concorrência) faz com que cada processo assuma um determinado estado a cada momento. Estado Execução (running) Quando está realmente sendo processado (executado) pela CPU. Pronto (ready) Quando está aguardando para ser executado. Espera (wait) Quando está aguardando por algum evento externo ou por algum recurso para ser executado. As mudanças de estado possíveis são: a) Pronto > Execução b) Execução > Espera c) Espera > Pronto d) Execução > Pronto Classificação dos Processos Processo Foreground (ou processo interativo) Permite a comunicação direta do usuário com o processo durante o seu processamento. Neste caso, tanto o canal de entrada como o de saída estão associados a um terminal com teclado, mouse e monitor. Processo Background (ou processo batch) Não existe a comunicação com o usuário durante o seu processamento. Processo CPU-bound (ligado à CPU) É o processo que passa a maior parte do tempo no estado de execução, ou no estado de pronto. Processo I/O-bound (Ligado à E/S) É o processo que passa a maior parte do tempo no estado de espera, pois realiza um elevado número de operações de E/S (Entrada/Saída). Sinais Mecanismo que permite notificar processos de eventos gerados pelo Sistema Operacional ou por outros processos. Seu uso é fundamental para a gerência de processos. O sinal enviado pelo S.O. interrompe ou executa um processo. Exemplo comum de sinal Quando o usuário quer interromper a execução de um programa: Pag. 5