Sistemas Operacionais Prof. Fabiano Sabha www.fabianosabha.com.br FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais PLANEJAMENTO 1- Conceitos Básicos: Visão geral de um S.O. Funções Básicas Máquina de Camadas Tipos de Sistemas Operacionais 2- Conceitos Básicos: Hardware e Software Hardware Processador Memórias Dispositivos de I/O Barramento Pipelining Arquiteturas RISC e CISC www.fabianosabha.com.br FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais PLANEJAMENTO 2- Conceitos Básicos: Hardware e Software (continuação) Software Tradutor Interpretador Linker Loader Depurador 3- Conceitos Básicos: Concorrência Sistemas Monoprogramáveis x Multiprogramáveis Interrupções e Exceções Operações de I/O Buffering Spooling Reentrância www.fabianosabha.com.br FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais PLANEJAMENTO 4- Conceitos Básicos: Estrutura do S.O. Funções do Núcleo Modo de Acesso Rotinas do S.O. e system Calls Chamada de rotinas do S.O Linguagem de Comandos Ativação / desativação do Sistema Arquiteturas do Núcleo 5- Processos Estrutura do Processo Estados do Processo Mudança de Estados Criação e Eliminação de Processos Formas de Criação de Processos www.fabianosabha.com.br FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais PLANEJAMENTO 6- Thread Ambiente Monothread Ambiente Multithread 7- Sincronização e Comunicação entre Processos Aplicações Concorrentes Especificação de Concorrência em Programas Problemas de Compartilhamento de Recursos Atividades de Revisão www.fabianosabha.com.br FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais Sistemas Operacionais thReads www.fabianosabha.com.br FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais ESTRUTURA DO PROCESSO Contexto de Software: Especificados os Contexto de Espaço de Endereçamento: É a área de Hardware Contexto de Hardware:dos Armazena oque limites e características recursos Contexto de memória que pertencegerais ao processo. conteúdo dos registradores da UCP, Software podem ser alocados pelo processo. Cada processo possui seu próprio espaço de além dos registradores Programade uso específicos. endereçamento do acesso Ex.: Número máx.protegido de arquivos abertos, Quando o processo é interrompido, o dos demais processos. prioridade tamanho de buffer. sistema salvadeasexecução, informações no contexto de hardware dodeprocesso. Espaço Três grupos informação: Instruções e Endereçamento dadosdesão armazenados para Identificação /execução Quotas / Privilégios www.fabianosabha.com.br FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais • THREAD – O que é? (Linha de execução) – É a forma de um processo se dividir em duas ou mais tarefas que podem ser executados simultaneamente. – O suporte é fornecido pelo Sistema Operacional. www.fabianosabha.com.br FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais THREAD – ESTRUTURA – É implementado em dois modos: – Modo usuário – Modo Kernel – É classificado em: – Monothread Suportam apenas uma linha de execução – Multithread Suportam múltiplas linhas de execução www.fabianosabha.com.br FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais EXEMPLO Um jogo onde temos diferentes linhas de execução, uma para o áudio e outra para vídeo. O jogador percebe que som e imagem são processados simultaneamente. Em sistemas com 01 CPU : Paralelismo Em sistemas com 02+ CPU: Simultâneo www.fabianosabha.com.br FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais AMBIENTE MONOTHREAD • Um processo suporta apenas um programa no seu espaço de endereçamento • Aplicações concorrentes são implementadas com o uso de vários processos independentes ou subprocessos. •A utilização de processos independentes ou subprocessos, permiti dividir uma aplicação em partes que podem traalhar de forma concorrente: Ex. Gerenciador de e-mail. www.fabianosabha.com.br FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais AMBIENTE MONOTHREAD • Esse tipo de implementação, demanda maior consumo de recursos do sistema. • Novo processo = nova reserva de recursos • Novo processo = novo espaço de endereçamento, o que dificulta a comunicação entre processos. • Cada processo tem seu próprio contexto. www.fabianosabha.com.br FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais AMBIENTE MULTITHREAD • NÃO existe programas associados a processos e sim a THREADS. • O processo tem ao menos um thread de execução, assim compartilha seu espaço de endereçamento. •Definição: •Uma sub-rotina de um programa que pode ser executada concorrentemente ao programa chamador. www.fabianosabha.com.br FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais MODOS DE THREADS MODO USUÁRIO (TMU): São implementados pelas aplicações e não pelo sistema operacional. Deve existir uma biblioteca de rotinas, que possibilite a realização de tarefas como criar/eliminar threads, troca de mensagens entre threads. É possível implementar aplicações THREADS em sistemas operacionais que não suportam THREADS. São Rápidos e dispensam acessos ao kernel. www.fabianosabha.com.br FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais MODOS DE THREADS MODO KERNEL (TMK): São implementados diretamente pelo sistema operacional. O SO, sabe da existência de cada thread e pode escaloná-los individualmente. No caso de multiplos processadores podem ser executados simultaneamente. Possuem baixo desempenho, devido a mudança no modo de acesso. www.fabianosabha.com.br FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais MODOS DE THREADS MODO HÍBRIDO: Essa arquitetura combina as vantagens e desvantagens dos modos TMU e TMK. Consegue trabalhar com THREADS diretamente no kernel ou gerenciados por aplicações desenvolvidas pelo programador. www.fabianosabha.com.br FAPI - Faculdade de Pindamonhangaba – Sistemas Operacionais ATIVIDADES DE FIXAÇÃO Exercícios: Questionário da Página 100 www.fabianosabha.com.br