Sistemas Operacionais Conceitos Básicos 1. Sistema Computacional: HARDWARE + SOFTWARE. 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: Salvar e recarregar conteúdo dos registradores + Informações do hardware necessário Identificação Cotas Privilégios (*) (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