Campus Russas Curso: Cincia da Computao Disciplina: Introduo Cincia da Computao
Aula 6 Sistemas Operacionais
Prof. Rafael Ivo
Introduo Sistemas operacionais Sistema operacional Programa que gerencia Outros programas Recursos computacionais Processadores Memria Dispositivos de entrada/sada Sistema de arquivos Entre aplicativos e hardware Apresenta uma mquina mais fcil de usar Sistemas operacionais Sistema operacional Permite que vrios programas sejam executados ao mesmo tempo Gerencia e protege a memria e os dispositivos de entrada e sada Gerencia o compartilhamento de recursos No tempo No espao Sistemas operacionais Tipos de sistemas operacionais Diferentes propsitos Computadores de grande porte (mainframes) Processamento de transaes em lote Servidores Mltiplos usurios Multiprocessadores Mltiplas CPUs Computadores pessoais Interface mais amigvel Computadores portteis Sem disco rgido Embarcados Sem software instalado por usurio, somente de fbrica De ns sensores Dirigido a eventos, pequeno e simples De tempo real Aes acontecem em determinado tempo, sistemas crticos De cartes inteligentes (smart cards) Primitivos, com restries de energia e memria Sistemas operacionais Conceitos Processos Espaos de endereamento Arquivo Entrada/Sada Segurana Interpretador de comandos Sistemas operacionais Processo Programa na memria principal Sistemas operacionais Processo Memria de um processo Sistemas operacionais Espao de endereamento Cada processo tem seu espao de memria exclusivo Protegido de outros processos Evitar intervenes Memria virtual HD sendo usado como memria principal Sistemas operacionais Criao de processos Inicializao do sistema Requisio de usurio A partir de outro processo Tarefa em lotes Trmino de processos Sada normal Sada por erro previsto Erro fatal Cancelamento por outro processo Sistemas operacionais Estados dos processos Sistemas operacionais Hierarquia de processos Processo pai cria processos filhos Cada processo filho pode ser pai de outros filhos Threads Sub-processo Paralelismo dentro de um processo Vrias threads por processo Compartilham mesmo espao de endereos do processo Sem proteo entre threads Podem escrever no mesmo espao ao mesmo tempo Proteo deve vir do programador Criadas e destrudas mais rapidamente que processos Atividades se sobreponham a E/S em um processo Sistemas com mltiplas CPUs Sistemas operacionais Problemas comuns deadlock Sistemas operacionais Escalonamento de processos Troca de processos na CPU Objetivos Justia cada processo tem uma poro justa da CPU Poltica alguns processos podem ter prioridade sobre outros processos Equilbrio todas os recursos do sistema esto ocupadas Problemas deadlock Sistemas operacionais Escalonamento de processos Tipos Preemptivo Bloqueia o processo atual para dar vez a outro No-preemptivo Somente aps o trmino de outro processo Quantum Tempo de execuo de um determinado processo (fixo ou varivel) Sistemas operacionais Escalonamento de processos Categorias Em lotes Vazo Maximizar o nmero de tarefas por hora Tempo de retorno Minimizar o tempo entre a submisso e o trmino Uso de CPU Manter a CPU ocupada o tempo todo Interativos Tempo de resposta Responder rapidamente s requisies Proporcionalidade Satisfazer as expectativas dos usurios Tempo real Cumprimento dos prazos Evitar a perda de dados Previsibilidade Evitar a degradao da qualidade em sistemas multimdia Sistemas operacionais Escalonamento de processos Escalonamento em lotes Fila primeiro a chegar, primeiro a ser servido Tarefa mais curta primeiro Prximo de menor tempo restante preemptivo Sistemas operacionais Escalonamento de processos Escalonamento interativo Por chaveamento circular Por prioridades Com filas mltiplas Prximo processo mais curto Por loteria Por frao justa Sistemas operacionais Escalonamento de processos Escalonamento por chaveamento circular Sistemas operacionais Escalonamento de processos Escalonamento por prioridades Sistemas operacionais Escalonamento de processos Escalonamento com filas mltiplas Prioridades com quanta diferente para cada prioridade Escalonamento por prximo processo mais curto Estimar tamanho futuro com base no comportamento passadas Sistemas operacionais Escalonamento de processos Escalonamento por loteria Escolher aleatoriamente Escalonamento por frao justa N usurios 1/N da CPU para cada usurio Independente do nmero de processos de cada usurio Sistemas operacionais Escalonamento de processos Escalonamento de tempo real Tempo real Estmulos externos peridicos Reao do SO Crtico Prazos devem ser cumpridos
Monitoramento de pacientes em UTI
Piloto automtico em avies
Robs em fbricas automatizadas
No-crtico Prazos podem no ser cumpridos
Tocador de CD
Vrios processos curtos de comportamento conhecido
Sistemas operacionais Escalonamento de processos Escalonamento de tempo real Esttico Decises de escalonamento tomadas antes de iniciar a execuo Informao prvia e perfeita sobre os processos e os prazos Dinmico Decises de escalonamento tomadas durante a execuo Usado em sistemas aperidicos Eventos acontecem de modo imprevisvel Sistemas operacionais Arquivo Unidade de armazenamento de dados Sistema de arquivos Forma como os arquivos esto organizados no HD Sistemas operacionais Ex: Sistemas operacionais Papel do Sistema operacional Chamadas de sistema Abertura, leitura, gravao, fechamento Oculta detalhes do disco Diretrios Montagem de sistemas de arquivos Tornar outros sistemas de arquivos visveis Sistemas de arquivos mais conhecidos HFS Mac Os Ext4 Unix FAT 32 e NTFS Microsoft Windows Sistemas operacionais Particionamento Sistemas operacionais Entrada/sada Drivers de dispositivos Programas de interface entre software e hardware de um determinado dispositivo fsico Sistemas operacionais Segurana Proteo dos arquivos de um usurio Usurio Grupo Todos Sistemas operacionais Interpretador de comandos Forma de comunicao Entre programas aplicativos e sistema operacional chamadas ao sistema Abrir, escrever, criar, fechar, listar, copiar, mover ou apagar arquivos ou diretrios Montar, desmontar sistemas de arquivos Hora/data do sistema Criao de processos/threads Dar, tirar permisses a grupos e usurios Sistemas operacionais Interpretador de comandos Interface por comando de linha (CLI) Shell, prompt de comando Bourne shell, Bourne-Again shell, Almquist shell, Debian Almquist shell, Korn shell, Z shell, C shell, TENEX C shell, Hamilton C Shell Sistemas operacionais Interpretador de comandos Interface grfica de usurio (GUI), gerenciador de janelas Gnome shell Sistemas operacionais Interpretador de comandos Interface grfica de usurio (GUI), gerenciador de janelas Unity Sistemas operacionais Interpretador de comandos Interface grfica de usurio (GUI), gerenciador de janelas Windows XP Sistemas operacionais Interpretador de comandos Interface grfica de usurio (GUI), gerenciador de janelas Windows 8 Sistemas operacionais Interpretador de comandos Interface grfica de usurio (GUI), gerenciador de janelas OS X Aqua environment