Gestão de Processos em Sistemas Operativos
50 Questions
1 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Qual é a função principal da gestão de processos em um sistema operativo?

  • Executar atualizações de software automaticamente.
  • Gerenciar o armazenamento de arquivos.
  • Partilhar a máquina física entre programas independentes ou interdependentes. (correct)
  • Controlar acessos de usuários ao sistema.
  • Qual é o estado em que um processo espera pela atribuição do processador?

  • Pronto. (correct)
  • Terminado.
  • Execução.
  • Inicialização.
  • Como se cria um processo em Java?

  • Usando a classe ProcessBuilder e chamando o método start(). (correct)
  • Utilizando comandos do sistema operativo diretamente.
  • Instanciando a classe Runtime diretamente.
  • Usando a classe ProcessExecutor.
  • O que representa o estado 'Terminado' de um processo?

    <p>A execução do processo foi concluída.</p> Signup and view all the answers

    Qual das seguintes aplicações pode ser considerada um processo?

    <p>Um editor de texto.</p> Signup and view all the answers

    Qual é a função do método start() na classe ProcessBuilder?

    <p>Iniciar a execução do processo especificado.</p> Signup and view all the answers

    No diagrama de estados de um processo, o que acontece durante a 'Inicialização'?

    <p>O processo aguarda a atribuição de recursos.</p> Signup and view all the answers

    O que significa um processo estar em estado de 'Espera'?

    <p>O processo está aguardando um evento ou I/O.</p> Signup and view all the answers

    Qual é a função do método start() no processo de execução em Java?

    <p>Executar um processo</p> Signup and view all the answers

    O que deve ser verificado antes de chamar o método waitFor()?

    <p>Se o objeto Process é nulo</p> Signup and view all the answers

    Qual é o primeiro passo para criar um arquivo JAR executável em Eclipse?

    <p>Selecionar File-&gt; Export-&gt; Runnable JAR file</p> Signup and view all the answers

    Qual é a finalidade do método lancarProcessoWin32 na classe lancarEsperarProcessoWin32?

    <p>Iniciar um processo Win32</p> Signup and view all the answers

    Qual é o tipo do objeto retornado pelo método start()?

    <p>Process</p> Signup and view all the answers

    O que acontece se ocorrer uma IOException ao iniciar um processo?

    <p>O objeto Process será nulo</p> Signup and view all the answers

    Qual é a extensão correta para um arquivo JAR executável em Java?

    <p>.jar</p> Signup and view all the answers

    Após definir a Launch configuration, qual é o próximo passo na criação de um arquivo JAR executável?

    <p>Clicar em NEXT</p> Signup and view all the answers

    Qual é o propósito do código apresentado na classe 'lancarEEsperarProcessoJAVA'?

    <p>Executar um arquivo JAR e esperar sua conclusão.</p> Signup and view all the answers

    Quais tecnologias podem ser usadas para comunicação entre processos independentes na mesma máquina?

    <p>Memória partilhada, Sockets TCP e Sockets UDP.</p> Signup and view all the answers

    Qual é a ordem de grandeza do tempo para comunicação via TCP com 1 core de CPU?

    <p>30 microsegundos.</p> Signup and view all the answers

    Qual técnica de comunicação em JAVA é considerada eficiente para processos independentes?

    <p>Uso de memória mapeada.</p> Signup and view all the answers

    Quais são os tempos aproximados para comunicação via UDP com mais de 1 core de CPU?

    <p>8 microsegundos.</p> Signup and view all the answers

    Em situações de comunicação entre máquinas diferentes, qual tecnologia não é utilizada?

    <p>Memória partilhada.</p> Signup and view all the answers

    Qual é a alternativa correta sobre a execução de processos em JAVA?

    <p>Um processo pode ser iniciado usando o Runtime.exec().</p> Signup and view all the answers

    No código apresentado, o que acontece se a variável 'p' for nula?

    <p>Um erro será lançado sem tratamento apropriado.</p> Signup and view all the answers

    Qual é a finalidade do método abrirCanal()?

    <p>Cria um ficheiro para comunicação.</p> Signup and view all the answers

    O que o método receberMensagem() retorna?

    <p>Uma mensagem convertida em String.</p> Signup and view all the answers

    O que acontece se o ficheiro comunicacao.dat não for encontrado ao abrir o canal?

    <p>O método retorna false.</p> Signup and view all the answers

    Qual é a função do método fecharCanal()?

    <p>Fecha o canal de comunicação.</p> Signup and view all the answers

    O que o método enviarMensagem(String msg) faz?

    <p>Envia uma String como mensagem através do canal.</p> Signup and view all the answers

    Qual é o tipo de retorno do método abrirCanal()?

    <p>boolean</p> Signup and view all the answers

    Qual é o papel do buffer no contexto da comunicação?

    <p>Armazenar temporariamente mensagens recebidas.</p> Signup and view all the answers

    Que tipo de exceções os métodos do canal podem lançar, baseando-se na lógica apresentada?

    <p>IOException</p> Signup and view all the answers

    O que indica o caractere ' ull' no método receberMensagem()?

    <p>Fim da mensagem.</p> Signup and view all the answers

    O método canalComunicacao() é responsável por:

    <p>Inicializar atributos do canal de comunicação.</p> Signup and view all the answers

    Qual a função principal do semáforo em um sistema de exclusão mútua?

    <p>Garantir que apenas uma tarefa acesse um recurso não partilhável de cada vez</p> Signup and view all the answers

    Por que a execução das tarefas Tarefa 1 e Tarefa 2 deve ser feita em exclusão mútua?

    <p>Porque isso garante a integridade dos dados ao acessar um recurso não partilhável.</p> Signup and view all the answers

    Qual é o resultado de chamar a função getAndSet(semaforo) em relação ao semáforo?

    <p>A função altera o semáforo para false e retorna o valor anterior.</p> Signup and view all the answers

    Qual foi a contribuição de Dijkstra para a comunicação entre processos?

    <p>Introduziu o conceito de semáforo como meio de comunicação.</p> Signup and view all the answers

    Qual é a operação correspondente ao incremento do valor de um semáforo em Java?

    <p>s.release()</p> Signup and view all the answers

    O que caracteriza um recurso não partilhável?

    <p>Deve ser acessado apenas por uma tarefa de cada vez.</p> Signup and view all the answers

    Por que o canal bluetooth é considerado um recurso não partilhável?

    <p>Porque sua utilização deve ser controlada para evitar interferências.</p> Signup and view all the answers

    Qual é um exemplo de recurso não partilhável, conforme mencionado?

    <p>Arquivo de texto para escrita</p> Signup and view all the answers

    Qual é o resultado da execução de dois processos que adquirem semáforos em ordem inversa?

    <p>Ocorrerá uma situação de deadlock.</p> Signup and view all the answers

    Qual é a função do método 'acquire()' em um semáforo?

    <p>Suspender o processo até que o semáforo esteja disponível.</p> Signup and view all the answers

    Qual é a consequência de um semáforo com valor unitário?

    <p>Apenas um processo pode adquiri-lo de cada vez.</p> Signup and view all the answers

    O que acontece quando um semáforo é adquirido e não é liberado?

    <p>Outros processos que tentarem adquirir o semáforo ficarão suspensos.</p> Signup and view all the answers

    Como a sequência incorreta de chamadas 'acquire()' pode levar a deadlock?

    <p>Os processos esperam indefinidamente uns pelos outros.</p> Signup and view all the answers

    O que deve ser feito após a utilização de um semáforo para evitar deadlocks?

    <p>Chamar o método 'release()'.</p> Signup and view all the answers

    Qual dos seguintes enunciados é verdadeiro sobre a partilha de semáforos?

    <p>Se o valor do semáforo for n, n processos podem partilhar.</p> Signup and view all the answers

    Qual é a estrutura utilizada para implementar a classe 'Tarefa' que exemplifica um sistema com semáforos?

    <p>A classe Thread.</p> Signup and view all the answers

    Study Notes

    Fundamentos de Sistemas Operativos

    • O sistema operativo é o programa mais utilizado em computadores.
    • É usado em todas as áreas de utilização do computador, desde jogos a programação de sistemas.
    • Sistemas operativos conhecidos: UNIX, Linux, OSX, e Windows.
    • Um computador é uma arquitetura hardware com microprocessador, memória e portas de entrada/saída.
    • A programação em linguagem máquina é complexa e demorada para configuração e gestão de hardware.
    • O sistema operativo cria uma camada de abstração (máquina virtual) facilitando a utilização do hardware.
    • Esta abstração simplifica a manipulação de dispositivos hardware para os utilizadores.

    Tipos de Sistemas Operativos

    • Mono-utilizador: Sistemas usados em computadores pessoais nos anos 80 como CPM e MS-DOS. Eram simples e tornaram os computadores acessíveis para um público mais amplo.
    • Multi-utilizador: Sistemas como o Unix foram os primeiros sistemas operativos multi-utilizador com grande divulgação. O modelo open-source do Linux permitiu o desenvolvimento de muitas aplicações inovadoras. Windows 3.1 utilizou um modelo gráfico semelhante a do MS-DOS, mas evoluiu para modelos multi-processo e multi-utilizador, como Windows 95,98, XP, Vista, 7, 8 e 10.

    Estudo de um Sistema Operativo

    • O Sistema Operativo é composto por camadas funcionais que gerenciam os recursos de hardware.
    • As camadas não são completamente independentes, mas estruturam a maneira modular de funcionar o sistema.

    Gestão de Processos e Tarefas

    • A gestão de processos permite a partilha do hardware por programas.
    • Um processo executa uma tarefa específica no computador
    • Um processo tem vários estados, incluindo inicialização, pronto, execução e espera.
    • O diagrama de estados de um processo é ilustrado na figura 3.2

    Comunicação entre processos em Java

    • A comunicação entre processos (IPC) em Java pode ser feita usando memória partilhada ou sockets.
    • Memória partilhada é mais rápida que sockets quando ambos os processos estão no mesmo sistema.
    • Existem várias tecnologias para comunicação entre processos (exclusão mútua).

    Comunicação entre processos com Memória Partilhada

    • A memória mapeada em Java permite que um processo mapeie o conteúdo de um ficheiro para uma área da memória virtual, facilitando o acesso e a manipulação dos dados.
    • As instâncias do tipo MappedByteBuffer são acessíveis a diferentes processos.
    • A manipulação do MappedByteBuffer é igual à de um Buffer comum.

    Processos Leves ou Tarefas

    • Processos leves são partes de um processo-pai.
    • Eles cooperam para executar tarefas em pseudo-paralelismo ou paralelismo.
    • Eles compartilham os recursos do processador-pai.
    • O contexto de memória para cada tarefa é ilustrado na figura 3.2.1

    Tarefa em Java

    • As tarefas em Java derivam da classe Thread.
    • Existem formas de definir uma classe como Thread.

    Sincronização entre Tarefas

    • A sincronização é importante quando múltiplas tarefas acessam os mesmos recursos.
    • Exclusão mútua é uma técnica para garantir que apenas uma tarefa acessa um recurso específico de cada vez

    Monitores versus Semáforos

    • Semáforos permitem acesso simultâneo, enquanto monitores garantem exclusão mútua.
    • Utilização de monitores para aceder a recursos de forma controlada.

    Sistema de Ficheiros

    • Os ficheiros são entidades geridas pelo sistema de ficheiros.
    • O acesso a ficheiros pode ser feito utilizando o modelo “Abrir-Ler/Escrever-Fechar”.
    • Os ficheiros são organizados em blocos (clusters) de dados em suportes físicos como discos rígidos.
    • O sistema de ficheiros gerencia a organização e proteção dos ficheiros.

    Volumes

    • Volumes são um conjunto organizado de clusters.
    • A estrutura de uma partição (como o MASTER BOOT RECORD) organiza dados em discos.
    • Volumes agrupam clusters de informação.

    Estrutura duma Diretoria

    • Diretórias contêm informação sobre os ficheiros, nomes, atributos etc.
    • Cada diretoria tem campos específicos, para armazenar os dados do ficheiro.

    Estrutura duma FAT

    • A FAT é uma tabela que descreve a alocação dos clusters em um volume.
    • A FAT permite encontrar clusters livres ou ocupados.

    Manipulação de Ficheiros em Java

    • As streams em Java permitem a manipulação de dados (leitura e escrita) em ficheiros e dispositivos de entrada/saída.
    • Existem classes para leitura e escrita de caracteres ou bytes com base na hierarquia.

    Diagramas de Atividade e Autómatos

    • Diagramas de atividades e autómatos são usados para modelar aplicações multiprocessos.
    • Swimlanes ilustram diferentes processos e sincronização.
    • Fork/Join é utilizado para sincronizar a execução de tarefas.

    Robot NXT e EV3

    • Descrição das características e funcionalidades do Lego NXT.
    • Modelos computador-robot (detalhes de comunicação e comandos para movimentos e sensores).
    • Descrição de comandos do Robot EV3 e dos seus sensores, e formas de comunicação com os sistemas de apoio.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Description

    Este quiz explora conceitos fundamentais da gestão de processos em sistemas operativos, incluindo a criação de processos em Java e diferentes estados dos processos. Teste seus conhecimentos sobre o funcionamento interno de processos e suas interações no ambiente de execução.

    More Like This

    Operating System Concepts: Process Management
    24 questions
    Java Concurrency: Part 3
    20 questions
    Use Quizgecko on...
    Browser
    Browser