Processos e Threads (partes I e II)



Documentos relacionados
Programação Concorrente Processos e Threads

Sistemas Operacionais Processos e Threads

7 Processos. 7.1 Introdução

Capítulo 2 Processos e Threads Prof. Fernando Freitas

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura Exemplo

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Sistemas Operacionais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

Estruturas do Sistema de Computação

discos impressora CPU memória AULA 04 - Estruturas de Sistemas Computacionais Operação dos sistemas de computação Controlador de disco

Sistemas Operacionais. Prof. André Y. Kusumoto

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

Introdução a Computação 07 Sistemas operacionais. Márcio Daniel Puntel marcio.puntel@ulbra.edu.br

Sistema Operacional Correção - Exercício de Revisão

Slide. ! Multiprocessamento! Modelo de processo. Dep. Ciência da Computação. Slide. ! Alternância de processos. ! Relação Programa x Processo

Threads em Java. Sistemas Operacionais - Laboratório Professor Machado

Escalonamento no Linux e no Windows NT/2000/XP

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Tipos de sistemas operacionais

SISTEMAS OPERACIONAIS

Arquitetura e Organização de Computadores I

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Capítulo 2 Processos e Threads. 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4 Problemas clássicos de IPC 2.

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Arquitetura de Computadores. Tipos de Instruções

Processos. Adão de Melo Neto

Gerência do Processador

Sistemas Operacionais

Sistemas Operacionais

Sistema Operacional. Prof. Leonardo Barreto Campos 1

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Organização e Arquitetura de Computadores

1.2 Tipos de Sistemas Operacionais

Sistemas Distribuídos

Infra-Estrutura de Software. Introdução. (cont.)

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

SISTEMAS DISTRIBUÍDOS

Arquitetura de Sistemas Operacionais

Componentes básicos de um sistema computacional. Cap. 1 (Stallings)

Sistemas Operacionais

Everson Scherrer Borges João Paulo de Brito Gonçalves

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Sistemas Operacionais Gerência de Dispositivos

Prof. Antonio Fundamentos de Sistemas Operacionais UNIP/2015

Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Alexandre Veloso

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

Sistemas Operacionais

Sistemas Operacionais

Mecanismo de Interrupção

SISTEMAS OPERACIONAIS. Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN

Sistemas Operacionais

Prof. Dr. Charlie Antoni Miquelin BÁSICO DE COMPUTAÇÃO EM TC

Sistemas Distribuídos

LISTA DE EXERCÍCIOS #4 (BASEADO NO ENADE COMPUTAÇÃO)

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

ESTUDO DE CASO WINDOWS VISTA

Processamento de Dados

28/9/2010. Unidade de Controle Funcionamento e Implementação

Introdução aos Sistemas

Capítulo 2. Processos e Threads. Processos e threads

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração:

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Noções básicas de Informática: Software

ENTRADA E SAÍDA DE DADOS

E/S PROGRAMADA E/S PROGRAMADA E/S USANDO INTERRUPÇÃO

Máquina de estados UNIX O

6 - Gerência de Dispositivos

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

1º Estudo Dirigido. Capítulo 1 Introdução aos Sistemas Operacionais

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS OPERACIONAIS: GERENCIAMENTO DE PROCESSOS E DE MEMÓRIA

SISTEMAS OPERACIONAIS

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

Sistemas Operacionais

SISTEMAS OPERACIONAIS II ESPECIFICAÇÃO CAMADA INDEPENDENTE

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

5 Entrada e Saída de Dados:

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul

Engenharia de Software III

Sistemas Distribuídos Processos I. Prof. MSc. Hugo Souza

Sistemas Operacionais

Sistemas Operacionais

Transcrição:

Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa em execução acompanhado de contador de processos, registradores e variáveis. Thread é uma seqüência de programa. Em outras palavras, é um programa independente ou o próprio programa. 2) Processos são realmente executados em paralelo numa mesma CPU? Sim. Um único processador pode ser compartilhado entre os vários processos com algum algoritmo de escalonamento usado para determinar quando parar o trabalho sobre um processo e servir um outro. 3) O que pode causar o encerramento de um processo? Quais saídas são voluntárias e quais involuntárias? Comente. Saída normal (voluntário) - Saída normal e, por exemplo, quando o utilizador sai do programa como deve ser. (A cruz da janela, por exemplo). Saída com erro (voluntário) - Quando o processo descobre um erro fatal. O processo emite uma chamada de saída ao sistema Erro fatal (involuntário) - Quando o erro e causado pelo processo, muitas vezes um erro de programa. Exemplos: quando encontra uma divisão por zero, instrução ilegal, etc. Morto por outro processo (involuntário) - Quando um processo executa uma chamada ao sistema dizendo para cancelar algum outro processo. Em linux: kill 4) O que são e para que serve uma hierarquia de processos? Um processo pode criar outros processos e que podem, por sua vez, criarem também outros processos de maneira hierárquica. Este tipo de recurso evita que o usuário tenha que esperar que um processo termine para que sua requisição seja processada melhorando o desempenho do sistema. 5) Quais os possíveis estados de um processo e em que situações ele pode mudar de um estado para outro? Execução, Pronto, Espera. Pronto para Execução - Após a criação de um processo, o sistema o coloca em uma lista de processos no estado pronto, onde aguarda por uma oportunidade para ser executado. Execução para Espera - Um processo passa do estado de execução para o estado de espera em função de eventos gerados por ele mesmo ou por eventos externos. Espera para Pronto - Um processo passa do estado de espera para o estado de pronto quando a operação solicitada é atendida ou o recurso esperado é concedido. Execução para Pronto - Um processo em execução passa para o estado de pronto por eventos gerados pelo sistema, como o término da fatia de tempo que o processo possui para execução.

6) O que é tabela de processos e para que serve? É o armazenamento de toda informação do estado do processo em que foi finalizado. É sempre utilizado quando for necessário a recuperação de informações de um processo interrompido. 7) Como o sistema operacional troca a execução de um processo para outro? A troca de um processo por outro no processador, comandada pelo sistema operacional, é denominada mudança de contexto; A mudança de contexto consiste em salvar o conteúdo dos registradores do processo que está deixando a UCP e carregá-los com os valores referentes ao do novo processo que será executado 8) O que são threads? Qual a diferença entre processos e threads? Threads - Um fluxo de controle seqüencial isolado dentro de um programa. Processos - É qualquer aplicação executado no processador / são conjuntos de recursos agrupados para melhor gerenciamento; Threads - permitem que um programa simples possa executar várias tarefas diferentes ao mesmo tempo, independentemente umas das outras. Programas multithreaded são programas que contém vários threads, executando tarefas distintas, ao mesmo tempo. 9) Qual a diferença entre implementar threads no espaço do usuário de implementar no espaço de kernel? No espaço do usuário, o kernel não sabe nada sobre threads. Do ponto de vista do kernel, ele manipula processos com uma só thread. Se o kernel sabe da existência das threads, não é necessário run-time nos processos. Não é preciso tabelas de threads por processo; o kernel mantém uma única para todas as threads do sistema. 10) Que cuidados devem ser tomados quando implementamos programas multi-threads? Evitar condições de concorrência e outros comportamentos inesperados, as linhas de execução freqüentemente precisarão ser sincronizadas, para que os dados sejam processados na ordem correta. 11) Cite 3 exemplos práticos de programas que podem ser desenvolvidos utilizando multithreads. O que esses programas ganhariam utilizando vários threads simultâneos? JAVA, C e C++. Possui um melhor desempenho que um sistema de computadores com múltiplas CPUs e com múltiplos núcleos. 12) O que é Condição de Disputa? Dê 2 exemplos onde essa condição pode surgir. Quando existe compartilhamento entre processos de uma memória, na qual cada um pode escrever ou ler, podem ocorrer as chamadas condições de disputa. Ex.Spooler de impressora

13) Explique com suas palavras o que são Regiões Críticas e Exclusão Mútua. Como esses dois conceitos estão relacionados? A exclusão mútua indica que as condições de disputas podem ser evitadas proibindo que mais de um processo leia e escreva simultaneamente em uma área de dados compartilhados. Regiões críticas São os trechos dos programas em que os processos estão executando computação sobre dados compartilhados com outros processos. 14) Explique como funciona e analise cada solução abaixo para o problema da região crítica: Desativando as Interrupções - A solução mais simples é fazer cada processo desativar todas as interrupções imediatamente depois de ele entrar em sua região crítica e reativá-las imediatamente depois de ele sair dela. Com as interrupções desativadas, nenhuma interrupção de relógio pode ocorrer. A CPU só alterna de um processo para outro como resultado de interrupções de relógio ou de outras interrupções, no final das contas, com as interrupções desligadas a CPU não alternará de um processo para outro. Variáveis de Bloqueio - Consiste numa solução de software, considerando uma variável de bloqueio inicialmente com valor 0. Quando um processo quer entrar em sua região crítica, primeiro testa o bloqueio, caso este seja 0, define como 1 e entra na região crítica, caso seja 1, o processo apenas espera até ele retornar a ser 0, o status 0 significa que significa que nenhum processo está em sua região crítica e 1 que algum processo está em sua região crítica. Alternância Estrita Consiste na utilização de turnos entre processos para acesso a sua região crítica. A Solução de Peterson Antes de utilizar as variáveis compartilhadas (entrar em sua região crítica), cada processo chama um comando com seu próprio PID e 0 ou 1 como parâmetro. Essa chamada causará espera até que seja seguro entrar. Outro processo só poderá acessar a sua região crítica se o primeiro processo já tiver saído da sua. Instrução TSL - Consiste numa instrução de testar e configurar bloqueio, funciona da seguinte forma, lê o conteúdo da palavra de memória em um registrador e, então, armazena um valor diferente de zero nesse endereço de memória. Nenhum outro processador pode acessar a palavra de memória até que a instrução tenha acabado. A CPU que executa a instrução TSL bloqueia o barramento de memória, proibindo outras CPUs de acessar a memória até que ela tenha terminado. 15) Qual a diferença entre programação paralela e programação concorrente? Os processos paralelos são processos que estão a ser executados simultaneamente no mesmo computador. Basicamente o computador tem vários processadores que se encarregam dos vários processos em paralelo..concorrência quer dizer compartilhar recursos em um mesmo espaço de tempo. Assim podem-se exemplificar situações concorrentes como sendo processos de um SO compartilhando a mesma CPU, ou compartilhando a mesma área de memória ou ainda compartilhando dispositivos de entrada e saída como uma impressora ou disco. 16) Explique rapidamente quais são as três partes que compõem um processo? Contexto de Hardware, Contexto de Software e Espaço de endereçamento. 17) Quais são os 3 estados em que um processo pode se encontrar?

Execução, Pronto e Espera. 18) Qual a diferença existente entre uma thread e um processo? Processos - É qualquer aplicação executado no processador / são conjuntos de recursos agrupados para melhor gerenciamento; Threads - Um fluxo de controle seqüencial isolado dentro de um programa. Threads permitem que um programa simples possa executar várias tarefas diferentes ao mesmo tempo, independentemente umas das outras. Programas multithreaded são programas que contém vários threads, executando tarefas distintas, ao mesmo tempo. 19) Defina o que é concorrência em computação? (apostila 1 transp 13) A Concorrência ocorre quando existem dois processos executados em simultâneo. 20) Quais são os quatros princípios para que processos/threads possam cooperar de forma correta e eficiente. Nenhum dos dois processos pode estar simultaneamente dentro de suas regiões críticas. Nenhuma suposição pode ser feita sobre as velocidades ou sobre o número de CPU s. Nenhum processo que executa fora de sua região crítica pode bloquear outro processo. Nenhum processo deve ter de esperar eternamente para entrar em sua região crítica. 21) O que é escalonamento de processos? O escalonamento de processos (ou agendador de tarefas) computacionais é uma atividade organizacional feita pelo escalonador (scheduler) da CPU ou de um Sistema Distribuído, possibilitando executar os processos mais viáveis e concorrentes, priorizando determinados tipos de processos, como os de I/O Bound e os computacionalmente intensivos. 22) Explique os algoritmos de escalonamento: Round Robin, Por prioridade, Filas Múltiplas, Menor Serviço Primeiro. Round Robin - Especialmente útil para sistemas de tempo compartilhado. Cada processo ganha um tempo limite para sua execução. Após esse tempo ele é interrompido e colocado no fim da fila de prontos. Por prioridade - A cada processo é associada uma prioridade e a CPU é alocada para o processo com a mais alta prioridade. Filas Múltiplas - Implementa diversas filas de processos no estado de pronto, uma para cada prioridade. Os processos devem ser classificados previamente em função do tipo de escalonamento para poderem ser corretamente alocados. Menor Serviço Primeiro - Algoritmo projetado especialmente para jobs em lote, onde o tempo de execução é conhecido previamente, funciona, por exemplo, quando processos de mesma importância estão na fila para serem iniciados pela CPU, o agendador utiliza primeiro o processo menor, tendo um tempo de resposta mais rápido. 23) Explique Threads do Usuário, Threads do Núcleo. Threads do Usuário a troca de threads é gerenciada com alarmes e a biblioteca thread gerencia todas as funções não segura as threads com travamento.

Threads do Núcleo o núcleo do sistema conhece as threads e os gerencia e tendo assim as tabelas de threads e processos. 24) O que você entende por comunicação entre processos. Por que este tipo de comunicação é mais complicado que a comunicação entre threads? É o ato em que os processos troquem informações entre si. Porque esse tipo de comunicação é totalmente hierárquico em que a grosso modo pode se dizer uma comunicação entre cliente/servidor, havendo ai uma sincronização dos processos. 25) Defina o que é uma comunicação Síncrona, de exemplos. Processos usam versão bloqueantes das primitivas. PASCAL 26) Defina o que é uma comunicação Assíncrona, de exemplos. Processos usam versão não-bloqueantes das primitivas. JAVA