• Home
  • Chat IA
  • Guru IA
  • Tutores
  • Central de ajuda
Home
Chat IA
Guru IA
Tutores

·

Análise e Desenvolvimento de Sistemas ·

Arquitetura de Computadores

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Aula 07 Infraestrutura e Sistemas Computacionais - Nivel de Enlace CRC Redes Cabeadas e Sem Fio

132

Aula 07 Infraestrutura e Sistemas Computacionais - Nivel de Enlace CRC Redes Cabeadas e Sem Fio

Arquitetura de Computadores

UMG

Aula 10 - Infraestrutura e Sistemas Computacionais - Protocolos ICMPv6, Roteamento, Transporte, Aplicação, DNS, NAT e HTTP

152

Aula 10 - Infraestrutura e Sistemas Computacionais - Protocolos ICMPv6, Roteamento, Transporte, Aplicação, DNS, NAT e HTTP

Arquitetura de Computadores

UMG

Aula 08 Infraestrutura e Sistemas Computacionais - Nivel de Rede IPv4 Subredes e Exercicios

144

Aula 08 Infraestrutura e Sistemas Computacionais - Nivel de Rede IPv4 Subredes e Exercicios

Arquitetura de Computadores

UMG

Redes de Computadores - Conceitos Fundamentais e Modelos de Referencia

137

Redes de Computadores - Conceitos Fundamentais e Modelos de Referencia

Arquitetura de Computadores

UMG

Aula 09 - Infraestrutura e Sistemas Computacionais - Tabelas de Roteamento ARP ICMP e IPv6

187

Aula 09 - Infraestrutura e Sistemas Computacionais - Tabelas de Roteamento ARP ICMP e IPv6

Arquitetura de Computadores

UMG

Escalonamento de CPU em Sistemas Operacionais Multiprogramados - Aula 03

18

Escalonamento de CPU em Sistemas Operacionais Multiprogramados - Aula 03

Arquitetura de Computadores

UMG

Guia SEO de Comandos Linux: Gerenciamento de Arquivos, Diretórios e Processos

1

Guia SEO de Comandos Linux: Gerenciamento de Arquivos, Diretórios e Processos

Arquitetura de Computadores

UMG

Aula 4 Infraestrutura de Sistemas Computacionais - Memória e Caches

27

Aula 4 Infraestrutura de Sistemas Computacionais - Memória e Caches

Arquitetura de Computadores

UMG

Projeto Linux Online PUCRS - Orientações e Objetivos para Estudantes

5

Projeto Linux Online PUCRS - Orientações e Objetivos para Estudantes

Arquitetura de Computadores

UMG

Aula 01 Infraestrutura de Sistemas Computacionais - Sistemas Operacionais

15

Aula 01 Infraestrutura de Sistemas Computacionais - Sistemas Operacionais

Arquitetura de Computadores

UMG

Texto de pré-visualização

INFRAESTRUTURA DE SISTEMAS COMPUTACIONAIS Sérgio Johann Filho Aula 02 2 MAPA DA AULA Neste material você tem uma linha do tempo com os principais acontecimentos das videoaulas organizados nas seguintes seções Momentos importantes da disciplina Conceitos e termos relevantes para o conteúdo da aula Para lembrar Dinâmicas exercícios interativos e infográficos Para exercitar Para ir além Curiosidades personalidades e entretenimento Esta é uma versão simplificada do Mapa da Aula para impressão Os recursos interativos disponíveis no material não funcionarão nesta versão Para uma experiência mais enriquecedora acesse a versão completa do Mapa da Aula na aba AULAS 3 AULA 2 PARTE 1 É um livro desenvolvido por Abraham Silberschatz Peter Baer Galvin Greg Gagne compostos por registros de experiências vivenciadas pelos autores em um universo em transformação constante Neste livro é possível ter uma abordagem aprofundada de assuntos como os sistemas móveis e a computação em nuvem Clique para acessar o livro Fundamentos de Sistemas Operacionais O objetivo de um sistema operacional é a execução de aplicações Dependendo do tipo de aplicação que está sendo executado têmse características diferentes O sistema operacional carrega um programa na memória e assim funciona como uma entidade viva O sistema operacional toma conhecimento de um programa e esse programa é carregado do armazenamento secundário como disco por exemplo e passa a fazer parte dos outros processos que estão sendo executados no sistema operacional Conceito de processos A execução de um processo deve progredir de maneira sequencial O processo inclui Contador de programa que é o conteúdo de um endereço para o qual será necessário reiniciar a execução do programa Pilha que é um espaço de memória que armazena valores temporários pertencentes a execução Seções de dados que são as regiões de memórias que precisam estar alocadas a esse processo armazenando os dados que foram carregados do disco Os possíveis estados de um processo são diversos O processo é configurado em um estado novo quando ele está sendo criado quando é feita a carga de uma aplicação O processo ficará em seu estado novo até que haja possibilidade de o sistema operacional considerar a sua execução O segundo estado chamado executando é considerado quando as instruções estão sendo executadas O terceiro estado intitulado esperando pode ser compreendido quando o processo está esperando algum evento acontecer Estados de um processo 1326 0748 4 Se olharmos para a disposição de um processo na memória há diversas posições Partindo da base temse o texto que é responsável pelas instruções de um processo seguido pelo data que é responsável pelo armazenamento de dados Após encontrase heap que é utilizado para a alocação dinâmica de memória A última região do topo referese a pilha A pilha irá crescer ou diminuir o seu tamanho dependendo dos programas utilizados O estado pronto ele pode ser atribuído também no caso de existir algum bloqueio referente a sincronização O estado terminado é quando o processo terminou sua execução Para se manter os processos em execução é necessário que o sistema operacional realize a coordenação dos diferentes estados de um processo e essa coordenação será feita através de uma estrutura de dados chamada PCB process control block A estrutura armazena informações que estão ligadas a cada processo para que esse processo possa ser mantido mesmo que haja interrupções Com relação a filas de escalonamento temse a fila de jobs fila de processos prontos fila de dispositivos Em resumo os processos sofrem migrações entre várias filas Quanto ao agendamento de processos geralmente o que se tem no sistema computacional é uma entidade viva um processo executando sobre o hardware da CPU Os escalonadores são algoritmos implementados pelo sistema operacional que tem como objetivo selecionar um dentre vários processos que estão à disposição da execução Há vários tipos de escalonadores como o escalonador de longo prazo de curto prazo e de médio prazo O escalonador de curto prazo é invocado com frequência e o escalonador de longo prazo é menos invocado com menor frequência Escalonamento de processos A troca de contexto ocorre quando a CPU alterna entre processos A troca acontecerá quando o sistema salvar o estado de um processo e deixar o processador carregar o estado anteriormente salvo através desse papel Será representado pela estrutura de dados PCB O tempo de troca de contexto sempre é sobrecarga no sistema o sistema não pode realizar nenhuma tarefa quando está realizando a troca de contexto O tempo depende do suporte de hardware Troca de contexto 3417 2122 5 A criação de processos acontece quando um processo pai realiza uma chamada de sistema para a criação de um processofilho Esse é o mecanismo tradicional de criação criados a partir de um processo raiz Geralmente os processos são identificados e gerenciados via um identificador de processos que é um número associado a cada processo Os processos podem se comunicar entre si pelos recursos geracionais herdados Criação de processos Assinale a definição correta para o conceito abaixo O que é escalonamento 3544 Escalonamento São algoritmos implementados pelo sistema operacional que tem como ob jetivo selecionar um dentre vários pro cessos que estão à disposição da exe cução Ocorre quando a CPU alterna entre pro cessos Acontece quando um processopai reali za uma chamada de sistema para a cria ção de um processofilho 6 AULA 2 PARTE 2 Comunicação entre processos também é conhecida como IPC pode ser realizada a implementar a cooperação entre processos Os processos e sistemas podem ser independentes ou podem ser cooperantes Sendo cooperantes necessitam de um modelo de comunicação operando entre eles Processos independentes não podem se afetar pela execução de outro processo Já os processos cooperantes podem ser afetados frente a execução de outro processo Existem algumas razões para a comunicação entre processos como compartilhamento de informações maiores velocidades de computação modularidade ou até mesmo por conveniência Comunicação entre processos Processos cooperantes precisam de mecanismos para comunicação entre processos também conhecidos como IPC Há dois modelos de IPC que são conhecidos como memória compartilhada e troca de mensagens Para compreender melhor a temática da comunicação e processos o professor aponta ser interessante compreender o problema do produtorconsumidor Esse problema é utilizado no paradigma de processos cooperantes ou seja processos que podem produzir alguma informação e na mesma aplicação se tem processos que leem essa informação Existe múltiplas formas de se pensar no problema produtorconsumidor como o buffer de tamanho ilimitado e o buffer de tamanho limitado Para entender o problema o professor apresenta o exemplo do buffer fixo No meio do caminho o buffer possui um recurso acessado em que produtores e consumidores estão acessando esse recurso O acesso deve ser feito de forma sincronizada O processo produtor é um outro tipo de modelo que produz um item O processo consumidor é outro ator nesse modelo que remove o item do buffer e consome o item Com relação a comunicação observase problemáticas não é possível produzir e adicionar em uma única operação e não é possível remover e consumir em uma única operação Problema do produtorconsumidor 0450 0039 7 Referentes aos modelos de comunicação IPC existe o modelo de comunicação direta e indireta No caso da comunicação direta os processos devem nomear o outro explicitamente sendo o send quem envia uma mensagem ao processo P e o receive quem recebe uma mensagem do processo Q Na comunicação indireta as mensagens serão dirigidas e recebidas de caixas postais intituladas mailbox Cada mailboxe possui uma única identificação Cada par de processo pode compartilhar vários links Algumas das operações possíveis com as mailboxes são criação de uma nova caixa postal enviar e receber mensagens da caixa postal e destruir uma caixa postal Comunicação direta e indireta Sobre a sincronização troca de mensagens pode ser bloqueantes ou nãobloqueantes As operações bloqueantes são consideradas síncronas No modelo não bloqueante temse a ideia de assincronismo com uma entidade interna mediaria como sistema que armazena temporariamente mensagens como um buffer A bufferização é um conceito referente ao local onde estão armazenadas as mensagens Cada mailbox possui uma fila de mensagens associadas a si Um buffer pode ser implementado de três formas diferentes capacidade zero capacidade limitada e capacidade ilimitada A capacidade zero é pouco utilizada na prática e possui zero mensagens O buffer de capacidade ilimitada é quase impossível de ser implementado na prática Sincronização e bufferização O professor apresenta alguns exemplos de sistema IPC como o Mach que é parte do MacOS X A comunicação do Mach é baseada em mensagens até mesmo chamadas de sistema são mensagens Cada processo recémcriado já obtém de largada duas mailboxes chamadas Kernel e Notify Somente três chamadas de sistemas são necessárias para transferência de mensagens send receive rpc Outro exemplo apresentado é o Windows que possui o sistema operacional composto por diversos subsistemas que por sua vez podem ser acessados pelas aplicações pelo ALPC As aplicações comunicamse com o sistema por meio de mensagens Exemplos de IPC Associe comunicação direta Assinale a definição correta para o conceito abaixo 1859 1557 1223 Comunicação direta É referente ao local onde estão armaze nadas as mensagens As mensagens serão dirigidas e recebi das de caixas postais intituladas mail boxes Os processos devem nomear o outro ex plicitamente sendo o sender quem en via uma mensagem ao processo P e o receiver quem recebe uma mensagem do processo Q 8 AULA 2 PARTE 3 O modelo de comunicação clienteservidor é conhecido por ter papéis definidos onde o cliente realiza uma busca e o servidor atende a solicitação do cliente O servidor pode prover algum recurso específico e atender a diversos clientes A internet é estimulada de acordo com esse modelo A comunicação entre clientes e servidores pode ser implementada de diferentes formas como utilizando passagem de mensagens explícitas Para a implementação do modelo clienteservidor existem várias formas como sockets pipes chamada a procedimento remoto invocação remota de método Modelo clienteservidor Sockets Em essência sockets são um dos modelos mais primitivos para implementação de comunicação entre pares Sockets geralmente são implementados por uma biblioteca provida pelo próprio sistema operacional Um socket é definido como um ponto final de comunicação Para a comunicação será necessária a concatenação de dois endereços de IP e porta O protocolo utilizado para a comunicação dos sockets pode variar Uma das formas que pode ser utilizada é chamada de datagrama e outro modo é intitulado fluxo Os pipes utilizam internamente um compartilhamento de memória No entanto pipes implementam a comunicação entre clienteservidor através de um streaming de informação Eles agem como canalizações permitindo a comunicação entre dois processos Ocorrem geralmente entre o mesmo sistema computacional Os pipes comuns permitem a comunicação no estilo produtorconsumidor entre processos utilizando descritores Essa comunicação em essência é implementada através de duas chamadas de sistemas Pipes Dinâmica Case pipe O professor apresenta um exemplo de pipe que pode ser realizado juntamente com ele através do link 0123 0516 0930 9 Pipes comuns são unidimensionais ou seja para a comunicação bidirecional são necessários dois pipes Sempre é necessária uma relação pai e filho entre processos comunicantes Os pipes nomeados é uma outra forma de se implementar canais de comunicação Pipes nomeados são mais numerosos que pipes comuns Outra questão associada a pipes nomeados é a possibilidade de se implementar a comunicação bidimensional O professor apresenta um exemplo de pipe nomeado Em um primeiro momento no Linux criase um pipe utilizando o comando mkfifo namedpipe Escrever no pipe No exemplo colocouse uma lista de arquivos no pipe e o conteúdo de um arquivo ls la namedpipe cat benchpy namedpipe O professor recomenda ler do pipe cat namedpipe Remover o pipe rm namedpipe Dinâmica Case pipe Nesse modelo é realizado uma abstração do modelo de passagem de mensagens Do ponto de vista funcional em uma aplicação que utiliza o modelo RPC é a invocação de um método A chamada de procedimento remoto abstrai chamadas de procedimentos entre processos executado nos sistemas em rede A motivação por trás do modelo RPC é que é possível explorar um modelo de mais alto nível para implementar programas e um de menor nível para comunicação RPC A inovação remota de método ou RMI é um mecanismos Java que pode ser compreendido como similar ao RPC O RMI possui o diferencial de permitir que um programa Java execute em uma máquina com a invocação de um método em um objeto remoto Os principais atores no modelo RMI são os seguintes registro servidor e cliente Invocação remota de método Os pipes utilizam internamente um compartilhamento de memória Aprofundando pipes 2506 2805 Verdadeiro Falso 10 AULA 2 PARTE 4 Thread pode ser compreendida como uma unidade fundamental de utilização de CPU que forma a base de sistemas computacionais com múltiplas threads O principal objetivo de se utilizar thread dentro de um sistema computacional moderno é realizar justamente a exploração de desempenho utilizando SMT multiprocessamento simétrico Algumas vantagens da utilização do multiprocessamento simétrico é o aproveitamento de recursos como cash compartilhamento de unidades funcionais dentro de um mesmo processador melhorias no acesso à dados Modelos de threading O multiprocessamento simétrico também pode ser impactado negativamente com relação ao desempenho se a aplicação não for construída para explorar o multiprocessamento simétrico Uma thread é uma abstração que permite que uma aplicação execute mais que um trecho de código simultaneamente Dessa forma um processo pode possuir múltiplos fios No geral o multiprocessamento simétrico usando threads ele é altamente benéfico Um programa multithreading pode continuar executando e respondendo ao usuário mesmo se a parte dele estiver bloqueada ou executando uma tarefa longa Com relação aos processos e threads e a relação existente entre eles em um sistema que possui processos com uma única thread existe um conjunto de recursos associados a esse processo Esse conjunto é conhecido como código dados que são descritores de arquivos associados a esse processo o conteúdo dos registradores pilha Todos esses recursos estão mapeados para um mesmo processo e existe um único fio de execução desse processo Processos e threads É importante observar que para esse modelo ser eficiente é necessário que haja um certo grau de compartilhamento de recursos Os benefícios que se têm ao se utilizar threads no sistema computacional são vários Alguns deles são responsividade compartilhamento de recursos economia escalabilidade utilização de arquiteturas multiprocessadas Os exemplos de uso de threads na prática apresentados pelo professor são editor de texto e navegação Exemplos vantagens e desvantagens 1209 0942 0330 11 Analisando diferentes tarefas de execução podese observar a execução concorrente em um único core e a execução paralela em multicore Com a execução ocorrendo em um único core as tarefas executam sequencialmente e o que define a troca de contextos entre essas tarefas é o agendador do sistema operacional Como se tem um único núcleo temse uma única thread sendo executada Em um sistema multithreading temse múltiplas filas de execução havendo uma fila de execução para cada um dos cores Associadas a cada uma dessas filas é possível ter múltiplas tarefas que podem ser processos ou threads Execução concorrente e paralela Threads em nível de usuário são threads implementadas por bibliotecas São mais simples de se implementar uma vez que elas funcionam no nível de processos Elas não requerem privilégios de kernel uma vez que todo o gerenciamento acontece no espaço de endereços de um único processo Esse modelo possui como característica uma alta portabilidade Há três bibliotecas principais POSIX Pthreads Win32 threads e Java threads Algumas desvantagens do sistema são o fato de que muitas chamadas ao sistema são bloqueantes e o kernel bloqueia processos nesse caso todas as threads do processo podem ser bloqueadas enquanto uma ULT executa uma SVC Bibliotecas de threads Threads em nível de kernel Thread em nível de kernel é um modelo onde o gerenciamento das threads são realizadas pelo kernel O escalonamento nesse caso no modelo de thread em nível de kernel é realizado no modelo threadbasis ou seja o núcleo vai ser alocado com uma granularidade de thread Alguns exemplos são o Windows XP2000NT10 Solaris Linux Tru64 UNIX MacOS X Algumas desvantagens observadas são que o kernel precisa manter informações sobre o contexto para processos e threads No caso do editor de texto é uma aplicação que o usuário precisa interagir em tempo real e ao mesmo tempo se tem operações de forma assíncronas que devem ser tratadas sem o usuário ser perturbado No caso do navegador ele consegue fazer o download de vários arquivos ao mesmo tempo e ao mesmo tempo permite que o usuário continue navegando Os sistemas multicore tem pressionado programadores incluindo diversos desafios como divisão de tarefas balanceamento separação de dados dependência de dados seções críticas e teste e depuração A dependência de dados sempre existirá em uma aplicação multithreading e ela precisa ser feita de tal forma que ela tenha o impacto mínimo no desempenho de uma aplicação 2556 2734 2903 12 AULA 2 PARTE 5 Uma biblioteca de thread é uma biblioteca que fornece ao programar uma API para criar e gerenciar threads A API segue um padrão Duas formas principais de implementação são biblioteca totalmente em espaço de usuário e biblioteca em nível de kernel suportada pelo SO O professor apresenta um exemplo de biblioteca chamada Pthreads Pode ser oferecida tanto em nível de usuário como de kernel É utilizada uma API padrão POSIX IEEE 10031c para criação e sincronização de threads A biblioteca Pthreads é comum nos sistemas operacionais UNIX e derivados como Solaris Linux MacOS X Outro modelo é conhecido como Threads em Java São gerenciadas pela Java Virtual Machine que na prática é um ambiente virtual de execução de programas escritos em Java Tipicamente as threads são implementadas usando o modelo de threads fornecido pelo SO em que executa Bibliotecas de thread As threads possuem uma semântica das chamadas de sistemas fork e exec Cada processo pode possuir diversas threads O fork duplica um processo com apenas uma única thread O cancelamento de thread é outra questão comentada pelo professor O cancelamento pode ter duas abordagens assíncrono e delegado Além disso a manipulação de sinais é outra questão a ser abordada Um manipulador de sinais é usado para processar sinalizações Outro tópico comentado é que um conjunto de thread cria um número de threads que formam um conjunto para espera de trabalho Quanto aos dados específicos de thread é permitido que cada thread tenha seu próprio conjunto de dados É útil quando não se tem controle sobre o processo de criação de threads Quanto às ativações de escalonamento tanto o modelo MM muitosparamuitos quanto em dois níveis requer comunicação para manter o número apropriado de threads no kernel alocado para a aplicação Questões sobre threads 0806 0156 13 O professor apresenta dois exemplos de implementação Um deles é chamado Windows Threads que implementa o mapeamento umparaum em nível de kernel Cada thread contém um identificador de thread conjunto de registradores que armazena o estado de operação do processador pilhas separadas para kernel e usuário área privada de armazenamento de dados As principais estruturas de dados de uma thread são ETHREAD executive thread block KTHREAD kernel thread block TEB thread environment block Outro exemplo apresentado pelo professor é o Linux Threads No Linux são denominadas as tarefas ao invés de threads A criação de threads é feita através de chamada de sistema clone Esse clone possibilita que uma tarefa filha compartilhe o espaço de endereçamento com a tarefa pai usualmente chamada de processo Exemplos de implementação 1845 PUCRS online

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Aula 07 Infraestrutura e Sistemas Computacionais - Nivel de Enlace CRC Redes Cabeadas e Sem Fio

132

Aula 07 Infraestrutura e Sistemas Computacionais - Nivel de Enlace CRC Redes Cabeadas e Sem Fio

Arquitetura de Computadores

UMG

Aula 10 - Infraestrutura e Sistemas Computacionais - Protocolos ICMPv6, Roteamento, Transporte, Aplicação, DNS, NAT e HTTP

152

Aula 10 - Infraestrutura e Sistemas Computacionais - Protocolos ICMPv6, Roteamento, Transporte, Aplicação, DNS, NAT e HTTP

Arquitetura de Computadores

UMG

Aula 08 Infraestrutura e Sistemas Computacionais - Nivel de Rede IPv4 Subredes e Exercicios

144

Aula 08 Infraestrutura e Sistemas Computacionais - Nivel de Rede IPv4 Subredes e Exercicios

Arquitetura de Computadores

UMG

Redes de Computadores - Conceitos Fundamentais e Modelos de Referencia

137

Redes de Computadores - Conceitos Fundamentais e Modelos de Referencia

Arquitetura de Computadores

UMG

Aula 09 - Infraestrutura e Sistemas Computacionais - Tabelas de Roteamento ARP ICMP e IPv6

187

Aula 09 - Infraestrutura e Sistemas Computacionais - Tabelas de Roteamento ARP ICMP e IPv6

Arquitetura de Computadores

UMG

Escalonamento de CPU em Sistemas Operacionais Multiprogramados - Aula 03

18

Escalonamento de CPU em Sistemas Operacionais Multiprogramados - Aula 03

Arquitetura de Computadores

UMG

Guia SEO de Comandos Linux: Gerenciamento de Arquivos, Diretórios e Processos

1

Guia SEO de Comandos Linux: Gerenciamento de Arquivos, Diretórios e Processos

Arquitetura de Computadores

UMG

Aula 4 Infraestrutura de Sistemas Computacionais - Memória e Caches

27

Aula 4 Infraestrutura de Sistemas Computacionais - Memória e Caches

Arquitetura de Computadores

UMG

Projeto Linux Online PUCRS - Orientações e Objetivos para Estudantes

5

Projeto Linux Online PUCRS - Orientações e Objetivos para Estudantes

Arquitetura de Computadores

UMG

Aula 01 Infraestrutura de Sistemas Computacionais - Sistemas Operacionais

15

Aula 01 Infraestrutura de Sistemas Computacionais - Sistemas Operacionais

Arquitetura de Computadores

UMG

Texto de pré-visualização

INFRAESTRUTURA DE SISTEMAS COMPUTACIONAIS Sérgio Johann Filho Aula 02 2 MAPA DA AULA Neste material você tem uma linha do tempo com os principais acontecimentos das videoaulas organizados nas seguintes seções Momentos importantes da disciplina Conceitos e termos relevantes para o conteúdo da aula Para lembrar Dinâmicas exercícios interativos e infográficos Para exercitar Para ir além Curiosidades personalidades e entretenimento Esta é uma versão simplificada do Mapa da Aula para impressão Os recursos interativos disponíveis no material não funcionarão nesta versão Para uma experiência mais enriquecedora acesse a versão completa do Mapa da Aula na aba AULAS 3 AULA 2 PARTE 1 É um livro desenvolvido por Abraham Silberschatz Peter Baer Galvin Greg Gagne compostos por registros de experiências vivenciadas pelos autores em um universo em transformação constante Neste livro é possível ter uma abordagem aprofundada de assuntos como os sistemas móveis e a computação em nuvem Clique para acessar o livro Fundamentos de Sistemas Operacionais O objetivo de um sistema operacional é a execução de aplicações Dependendo do tipo de aplicação que está sendo executado têmse características diferentes O sistema operacional carrega um programa na memória e assim funciona como uma entidade viva O sistema operacional toma conhecimento de um programa e esse programa é carregado do armazenamento secundário como disco por exemplo e passa a fazer parte dos outros processos que estão sendo executados no sistema operacional Conceito de processos A execução de um processo deve progredir de maneira sequencial O processo inclui Contador de programa que é o conteúdo de um endereço para o qual será necessário reiniciar a execução do programa Pilha que é um espaço de memória que armazena valores temporários pertencentes a execução Seções de dados que são as regiões de memórias que precisam estar alocadas a esse processo armazenando os dados que foram carregados do disco Os possíveis estados de um processo são diversos O processo é configurado em um estado novo quando ele está sendo criado quando é feita a carga de uma aplicação O processo ficará em seu estado novo até que haja possibilidade de o sistema operacional considerar a sua execução O segundo estado chamado executando é considerado quando as instruções estão sendo executadas O terceiro estado intitulado esperando pode ser compreendido quando o processo está esperando algum evento acontecer Estados de um processo 1326 0748 4 Se olharmos para a disposição de um processo na memória há diversas posições Partindo da base temse o texto que é responsável pelas instruções de um processo seguido pelo data que é responsável pelo armazenamento de dados Após encontrase heap que é utilizado para a alocação dinâmica de memória A última região do topo referese a pilha A pilha irá crescer ou diminuir o seu tamanho dependendo dos programas utilizados O estado pronto ele pode ser atribuído também no caso de existir algum bloqueio referente a sincronização O estado terminado é quando o processo terminou sua execução Para se manter os processos em execução é necessário que o sistema operacional realize a coordenação dos diferentes estados de um processo e essa coordenação será feita através de uma estrutura de dados chamada PCB process control block A estrutura armazena informações que estão ligadas a cada processo para que esse processo possa ser mantido mesmo que haja interrupções Com relação a filas de escalonamento temse a fila de jobs fila de processos prontos fila de dispositivos Em resumo os processos sofrem migrações entre várias filas Quanto ao agendamento de processos geralmente o que se tem no sistema computacional é uma entidade viva um processo executando sobre o hardware da CPU Os escalonadores são algoritmos implementados pelo sistema operacional que tem como objetivo selecionar um dentre vários processos que estão à disposição da execução Há vários tipos de escalonadores como o escalonador de longo prazo de curto prazo e de médio prazo O escalonador de curto prazo é invocado com frequência e o escalonador de longo prazo é menos invocado com menor frequência Escalonamento de processos A troca de contexto ocorre quando a CPU alterna entre processos A troca acontecerá quando o sistema salvar o estado de um processo e deixar o processador carregar o estado anteriormente salvo através desse papel Será representado pela estrutura de dados PCB O tempo de troca de contexto sempre é sobrecarga no sistema o sistema não pode realizar nenhuma tarefa quando está realizando a troca de contexto O tempo depende do suporte de hardware Troca de contexto 3417 2122 5 A criação de processos acontece quando um processo pai realiza uma chamada de sistema para a criação de um processofilho Esse é o mecanismo tradicional de criação criados a partir de um processo raiz Geralmente os processos são identificados e gerenciados via um identificador de processos que é um número associado a cada processo Os processos podem se comunicar entre si pelos recursos geracionais herdados Criação de processos Assinale a definição correta para o conceito abaixo O que é escalonamento 3544 Escalonamento São algoritmos implementados pelo sistema operacional que tem como ob jetivo selecionar um dentre vários pro cessos que estão à disposição da exe cução Ocorre quando a CPU alterna entre pro cessos Acontece quando um processopai reali za uma chamada de sistema para a cria ção de um processofilho 6 AULA 2 PARTE 2 Comunicação entre processos também é conhecida como IPC pode ser realizada a implementar a cooperação entre processos Os processos e sistemas podem ser independentes ou podem ser cooperantes Sendo cooperantes necessitam de um modelo de comunicação operando entre eles Processos independentes não podem se afetar pela execução de outro processo Já os processos cooperantes podem ser afetados frente a execução de outro processo Existem algumas razões para a comunicação entre processos como compartilhamento de informações maiores velocidades de computação modularidade ou até mesmo por conveniência Comunicação entre processos Processos cooperantes precisam de mecanismos para comunicação entre processos também conhecidos como IPC Há dois modelos de IPC que são conhecidos como memória compartilhada e troca de mensagens Para compreender melhor a temática da comunicação e processos o professor aponta ser interessante compreender o problema do produtorconsumidor Esse problema é utilizado no paradigma de processos cooperantes ou seja processos que podem produzir alguma informação e na mesma aplicação se tem processos que leem essa informação Existe múltiplas formas de se pensar no problema produtorconsumidor como o buffer de tamanho ilimitado e o buffer de tamanho limitado Para entender o problema o professor apresenta o exemplo do buffer fixo No meio do caminho o buffer possui um recurso acessado em que produtores e consumidores estão acessando esse recurso O acesso deve ser feito de forma sincronizada O processo produtor é um outro tipo de modelo que produz um item O processo consumidor é outro ator nesse modelo que remove o item do buffer e consome o item Com relação a comunicação observase problemáticas não é possível produzir e adicionar em uma única operação e não é possível remover e consumir em uma única operação Problema do produtorconsumidor 0450 0039 7 Referentes aos modelos de comunicação IPC existe o modelo de comunicação direta e indireta No caso da comunicação direta os processos devem nomear o outro explicitamente sendo o send quem envia uma mensagem ao processo P e o receive quem recebe uma mensagem do processo Q Na comunicação indireta as mensagens serão dirigidas e recebidas de caixas postais intituladas mailbox Cada mailboxe possui uma única identificação Cada par de processo pode compartilhar vários links Algumas das operações possíveis com as mailboxes são criação de uma nova caixa postal enviar e receber mensagens da caixa postal e destruir uma caixa postal Comunicação direta e indireta Sobre a sincronização troca de mensagens pode ser bloqueantes ou nãobloqueantes As operações bloqueantes são consideradas síncronas No modelo não bloqueante temse a ideia de assincronismo com uma entidade interna mediaria como sistema que armazena temporariamente mensagens como um buffer A bufferização é um conceito referente ao local onde estão armazenadas as mensagens Cada mailbox possui uma fila de mensagens associadas a si Um buffer pode ser implementado de três formas diferentes capacidade zero capacidade limitada e capacidade ilimitada A capacidade zero é pouco utilizada na prática e possui zero mensagens O buffer de capacidade ilimitada é quase impossível de ser implementado na prática Sincronização e bufferização O professor apresenta alguns exemplos de sistema IPC como o Mach que é parte do MacOS X A comunicação do Mach é baseada em mensagens até mesmo chamadas de sistema são mensagens Cada processo recémcriado já obtém de largada duas mailboxes chamadas Kernel e Notify Somente três chamadas de sistemas são necessárias para transferência de mensagens send receive rpc Outro exemplo apresentado é o Windows que possui o sistema operacional composto por diversos subsistemas que por sua vez podem ser acessados pelas aplicações pelo ALPC As aplicações comunicamse com o sistema por meio de mensagens Exemplos de IPC Associe comunicação direta Assinale a definição correta para o conceito abaixo 1859 1557 1223 Comunicação direta É referente ao local onde estão armaze nadas as mensagens As mensagens serão dirigidas e recebi das de caixas postais intituladas mail boxes Os processos devem nomear o outro ex plicitamente sendo o sender quem en via uma mensagem ao processo P e o receiver quem recebe uma mensagem do processo Q 8 AULA 2 PARTE 3 O modelo de comunicação clienteservidor é conhecido por ter papéis definidos onde o cliente realiza uma busca e o servidor atende a solicitação do cliente O servidor pode prover algum recurso específico e atender a diversos clientes A internet é estimulada de acordo com esse modelo A comunicação entre clientes e servidores pode ser implementada de diferentes formas como utilizando passagem de mensagens explícitas Para a implementação do modelo clienteservidor existem várias formas como sockets pipes chamada a procedimento remoto invocação remota de método Modelo clienteservidor Sockets Em essência sockets são um dos modelos mais primitivos para implementação de comunicação entre pares Sockets geralmente são implementados por uma biblioteca provida pelo próprio sistema operacional Um socket é definido como um ponto final de comunicação Para a comunicação será necessária a concatenação de dois endereços de IP e porta O protocolo utilizado para a comunicação dos sockets pode variar Uma das formas que pode ser utilizada é chamada de datagrama e outro modo é intitulado fluxo Os pipes utilizam internamente um compartilhamento de memória No entanto pipes implementam a comunicação entre clienteservidor através de um streaming de informação Eles agem como canalizações permitindo a comunicação entre dois processos Ocorrem geralmente entre o mesmo sistema computacional Os pipes comuns permitem a comunicação no estilo produtorconsumidor entre processos utilizando descritores Essa comunicação em essência é implementada através de duas chamadas de sistemas Pipes Dinâmica Case pipe O professor apresenta um exemplo de pipe que pode ser realizado juntamente com ele através do link 0123 0516 0930 9 Pipes comuns são unidimensionais ou seja para a comunicação bidirecional são necessários dois pipes Sempre é necessária uma relação pai e filho entre processos comunicantes Os pipes nomeados é uma outra forma de se implementar canais de comunicação Pipes nomeados são mais numerosos que pipes comuns Outra questão associada a pipes nomeados é a possibilidade de se implementar a comunicação bidimensional O professor apresenta um exemplo de pipe nomeado Em um primeiro momento no Linux criase um pipe utilizando o comando mkfifo namedpipe Escrever no pipe No exemplo colocouse uma lista de arquivos no pipe e o conteúdo de um arquivo ls la namedpipe cat benchpy namedpipe O professor recomenda ler do pipe cat namedpipe Remover o pipe rm namedpipe Dinâmica Case pipe Nesse modelo é realizado uma abstração do modelo de passagem de mensagens Do ponto de vista funcional em uma aplicação que utiliza o modelo RPC é a invocação de um método A chamada de procedimento remoto abstrai chamadas de procedimentos entre processos executado nos sistemas em rede A motivação por trás do modelo RPC é que é possível explorar um modelo de mais alto nível para implementar programas e um de menor nível para comunicação RPC A inovação remota de método ou RMI é um mecanismos Java que pode ser compreendido como similar ao RPC O RMI possui o diferencial de permitir que um programa Java execute em uma máquina com a invocação de um método em um objeto remoto Os principais atores no modelo RMI são os seguintes registro servidor e cliente Invocação remota de método Os pipes utilizam internamente um compartilhamento de memória Aprofundando pipes 2506 2805 Verdadeiro Falso 10 AULA 2 PARTE 4 Thread pode ser compreendida como uma unidade fundamental de utilização de CPU que forma a base de sistemas computacionais com múltiplas threads O principal objetivo de se utilizar thread dentro de um sistema computacional moderno é realizar justamente a exploração de desempenho utilizando SMT multiprocessamento simétrico Algumas vantagens da utilização do multiprocessamento simétrico é o aproveitamento de recursos como cash compartilhamento de unidades funcionais dentro de um mesmo processador melhorias no acesso à dados Modelos de threading O multiprocessamento simétrico também pode ser impactado negativamente com relação ao desempenho se a aplicação não for construída para explorar o multiprocessamento simétrico Uma thread é uma abstração que permite que uma aplicação execute mais que um trecho de código simultaneamente Dessa forma um processo pode possuir múltiplos fios No geral o multiprocessamento simétrico usando threads ele é altamente benéfico Um programa multithreading pode continuar executando e respondendo ao usuário mesmo se a parte dele estiver bloqueada ou executando uma tarefa longa Com relação aos processos e threads e a relação existente entre eles em um sistema que possui processos com uma única thread existe um conjunto de recursos associados a esse processo Esse conjunto é conhecido como código dados que são descritores de arquivos associados a esse processo o conteúdo dos registradores pilha Todos esses recursos estão mapeados para um mesmo processo e existe um único fio de execução desse processo Processos e threads É importante observar que para esse modelo ser eficiente é necessário que haja um certo grau de compartilhamento de recursos Os benefícios que se têm ao se utilizar threads no sistema computacional são vários Alguns deles são responsividade compartilhamento de recursos economia escalabilidade utilização de arquiteturas multiprocessadas Os exemplos de uso de threads na prática apresentados pelo professor são editor de texto e navegação Exemplos vantagens e desvantagens 1209 0942 0330 11 Analisando diferentes tarefas de execução podese observar a execução concorrente em um único core e a execução paralela em multicore Com a execução ocorrendo em um único core as tarefas executam sequencialmente e o que define a troca de contextos entre essas tarefas é o agendador do sistema operacional Como se tem um único núcleo temse uma única thread sendo executada Em um sistema multithreading temse múltiplas filas de execução havendo uma fila de execução para cada um dos cores Associadas a cada uma dessas filas é possível ter múltiplas tarefas que podem ser processos ou threads Execução concorrente e paralela Threads em nível de usuário são threads implementadas por bibliotecas São mais simples de se implementar uma vez que elas funcionam no nível de processos Elas não requerem privilégios de kernel uma vez que todo o gerenciamento acontece no espaço de endereços de um único processo Esse modelo possui como característica uma alta portabilidade Há três bibliotecas principais POSIX Pthreads Win32 threads e Java threads Algumas desvantagens do sistema são o fato de que muitas chamadas ao sistema são bloqueantes e o kernel bloqueia processos nesse caso todas as threads do processo podem ser bloqueadas enquanto uma ULT executa uma SVC Bibliotecas de threads Threads em nível de kernel Thread em nível de kernel é um modelo onde o gerenciamento das threads são realizadas pelo kernel O escalonamento nesse caso no modelo de thread em nível de kernel é realizado no modelo threadbasis ou seja o núcleo vai ser alocado com uma granularidade de thread Alguns exemplos são o Windows XP2000NT10 Solaris Linux Tru64 UNIX MacOS X Algumas desvantagens observadas são que o kernel precisa manter informações sobre o contexto para processos e threads No caso do editor de texto é uma aplicação que o usuário precisa interagir em tempo real e ao mesmo tempo se tem operações de forma assíncronas que devem ser tratadas sem o usuário ser perturbado No caso do navegador ele consegue fazer o download de vários arquivos ao mesmo tempo e ao mesmo tempo permite que o usuário continue navegando Os sistemas multicore tem pressionado programadores incluindo diversos desafios como divisão de tarefas balanceamento separação de dados dependência de dados seções críticas e teste e depuração A dependência de dados sempre existirá em uma aplicação multithreading e ela precisa ser feita de tal forma que ela tenha o impacto mínimo no desempenho de uma aplicação 2556 2734 2903 12 AULA 2 PARTE 5 Uma biblioteca de thread é uma biblioteca que fornece ao programar uma API para criar e gerenciar threads A API segue um padrão Duas formas principais de implementação são biblioteca totalmente em espaço de usuário e biblioteca em nível de kernel suportada pelo SO O professor apresenta um exemplo de biblioteca chamada Pthreads Pode ser oferecida tanto em nível de usuário como de kernel É utilizada uma API padrão POSIX IEEE 10031c para criação e sincronização de threads A biblioteca Pthreads é comum nos sistemas operacionais UNIX e derivados como Solaris Linux MacOS X Outro modelo é conhecido como Threads em Java São gerenciadas pela Java Virtual Machine que na prática é um ambiente virtual de execução de programas escritos em Java Tipicamente as threads são implementadas usando o modelo de threads fornecido pelo SO em que executa Bibliotecas de thread As threads possuem uma semântica das chamadas de sistemas fork e exec Cada processo pode possuir diversas threads O fork duplica um processo com apenas uma única thread O cancelamento de thread é outra questão comentada pelo professor O cancelamento pode ter duas abordagens assíncrono e delegado Além disso a manipulação de sinais é outra questão a ser abordada Um manipulador de sinais é usado para processar sinalizações Outro tópico comentado é que um conjunto de thread cria um número de threads que formam um conjunto para espera de trabalho Quanto aos dados específicos de thread é permitido que cada thread tenha seu próprio conjunto de dados É útil quando não se tem controle sobre o processo de criação de threads Quanto às ativações de escalonamento tanto o modelo MM muitosparamuitos quanto em dois níveis requer comunicação para manter o número apropriado de threads no kernel alocado para a aplicação Questões sobre threads 0806 0156 13 O professor apresenta dois exemplos de implementação Um deles é chamado Windows Threads que implementa o mapeamento umparaum em nível de kernel Cada thread contém um identificador de thread conjunto de registradores que armazena o estado de operação do processador pilhas separadas para kernel e usuário área privada de armazenamento de dados As principais estruturas de dados de uma thread são ETHREAD executive thread block KTHREAD kernel thread block TEB thread environment block Outro exemplo apresentado pelo professor é o Linux Threads No Linux são denominadas as tarefas ao invés de threads A criação de threads é feita através de chamada de sistema clone Esse clone possibilita que uma tarefa filha compartilhe o espaço de endereçamento com a tarefa pai usualmente chamada de processo Exemplos de implementação 1845 PUCRS online

Sua Nova Sala de Aula

Sua Nova Sala de Aula

Empresa

Central de ajuda Contato Blog

Legal

Termos de uso Política de privacidade Política de cookies Código de honra

Baixe o app

4,8
(35.000 avaliações)
© 2025 Meu Guru®