Sistemas Operativos e Programação Java
45 Questions
0 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 foi um dos principais impactos dos primeiros sistemas operativos?

  • Tornaram os computadores acessíveis apenas a especialistas em informática.
  • Limitaram a utilização dos computadores a funções muito específicas.
  • Desmistificaram o uso dos computadores, tornando-os acessíveis a utilizadores heterogéneos. (correct)
  • Aumentaram a complexidade do uso dos computadores.
  • O Unix foi o primeiro sistema operativo multi-utilizador open source.

    False (B)

    Qual sistema operativo foi desenvolvido como alternativa open source ao Unix?

    Linux

    Qual método da classe Runtime é usado para executar um processo externo em Java?

    <p><code>exec()</code> (D)</p> Signup and view all the answers

    O sistema operativo Windows 3.1 inicialmente uma evolução gráfica do sistema __________ .

    <p>MS/DOS</p> Signup and view all the answers

    Qual das seguintes opções descreve adequadamente a abordagem de estudo de um sistema operativo na disciplina de FSO?

    <p>Estudo modular e hierárquico através de camadas funcionais. (B)</p> Signup and view all the answers

    O método waitFor() faz com que o processo Java espere que o processo filho termine antes de continuar a execução.

    <p>True (A)</p> Signup and view all the answers

    Qual é a finalidade do bloco try...catch no código Java apresentado para executar o processo filho?

    <p>Tratar possíveis exceções de I/O durante a execução do processo</p> Signup and view all the answers

    Associe as camadas funcionais de um sistema operativo com a sua descrição:

    <p>Gestão de Processos e Tarefas = Responsável pela execução e agendamento das tarefas. Sincronização = Gerencia o acesso concorrente a recursos compartilhados. Gestão de Memória = Administra a alocação e gestão da memória do sistema. Comunicação = Permite a troca de dados entre processos. Ficheiros = Organiza e controla o acesso a informação no sistema</p> Signup and view all the answers

    Em Java, a comunicação entre processos independentes usando memória partilhada é conhecida como memória ______.

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

    Qual linguagem de programação será utilizada para desenvolver aplicações na disciplina de FSO?

    <p>Java (C)</p> Signup and view all the answers

    Qual protocolo de comunicação entre processos geralmente tem a menor latência quando usado com 1 core de CPU?

    <p>Memória partilhada (B)</p> Signup and view all the answers

    As camadas funcionais de um sistema operativo são completamente independentes e não interagem entre si.

    <p>False (B)</p> Signup and view all the answers

    A comunicação via sockets UDP é sempre mais rápida que a comunicação via sockets TCP, independentemente do número de núcleos da CPU.

    <p>False (B)</p> Signup and view all the answers

    Para comunicação entre processos em máquinas diferentes, quais tecnologias podem ser usadas?

    <p>Sockets TCP e UDP</p> Signup and view all the answers

    Associe as tecnologias de comunicação com os seus respectivos tempos de latência quando usado com mais de 1 core de CPU:

    <p>Memória partilhada = 0,7 microsegundos TCP = 22 microsegundos UDP = 8 microsegundos</p> Signup and view all the answers

    Qual é o objetivo principal da exclusão mútua no acesso a um canal de comunicação?

    <p>Garantir que apenas um processo acesse o canal por vez. (D)</p> Signup and view all the answers

    Um FileLock em Java é usado para garantir exclusão mútua na escrita e leitura de canais de comunicação?

    <p>True (A)</p> Signup and view all the answers

    Como se designa um conjunto de campos definidos pelo programador para comunicação entre processos?

    <p>Protocolo de comunicação</p> Signup and view all the answers

    Um protocolo de comunicação é constituído por um conjunto de ___________.

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

    Associe os conceitos com suas descrições:

    <p>Exclusão mútua = Garantia de que apenas um processo acesse um recurso por vez Protocolo de comunicação = Conjunto de campos definidos para troca de mensagens entre processos Tarefa = Parte de um processo que executa em pseudo-paralelismo Processo-pai = Processo que cria e executa as tarefas</p> Signup and view all the answers

    Qual a principal diferença entre processos leves e processos tradicionais, conforme o texto?

    <p>Processos leves são controlados por um processo-pai dentro do mesmo computador. (C)</p> Signup and view all the answers

    As tarefas são executadas em verdadeiro paralelismo num processador com um único core.

    <p>False (B)</p> Signup and view all the answers

    Qual é o termo usado para abreviar o conceito de processo leve?

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

    Qual operação sobre um semáforo decrementa o seu valor quando s > 0, em terminologia anglo-saxónica?

    <p>wait(s) (B)</p> Signup and view all the answers

    Um deadlock ocorre quando os processos ficam à espera de um recurso que é sempre libertado.

    <p>False (B)</p> Signup and view all the answers

    Segundo o texto, qual o valor inicial ideal para um semáforo, de forma a evitar um deadlock no acesso a um recurso em exclusão mútua?

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

    Em Java, a operação de decremento do valor de um semáforo é feita com o método ______.

    <p>acquire()</p> Signup and view all the answers

    Associe as seguintes operações de semáforo com suas descrições:

    <p>P(s) = Decrementa o valor do semáforo (designação original de Dijkstra) wait(s) = Decrementa o valor do semáforo (terminologia anglo-saxónica) acquire() = Decrementa o valor do semáforo e coloca o processo em espera (Java) release() = Incrementa o valor do semáforo (Java)</p> Signup and view all the answers

    Qual é o problema principal de dois processos acessarem simultaneamente um canal bluetooth sem controle adequado?

    <p>Conflito de acesso e corrupção dos dados transmitidos. (B)</p> Signup and view all the answers

    Recursos não partilháveis, como ficheiros para escrita e periféricos, podem ser acedidos por várias tarefas simultaneamente sem problemas.

    <p>False (B)</p> Signup and view all the answers

    Qual é a principal função da variável 'semaforo' no contexto de exclusão mútua?

    <p>Controlar o acesso a um recurso não partilhável, garantindo que apenas uma tarefa o utilize por vez.</p> Signup and view all the answers

    A instrução getAndSet(AtomicBoolean) devolve o valor lógico da variável e afeta a variável com o valor ____.

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

    Qual das seguintes opções descreve corretamente a função da instrução getAndSet(AtomicBoolean)?

    <p>Retorna o valor da variável e a define para true. (B)</p> Signup and view all the answers

    Combine as seguintes terminologias de semáforos com sua respectiva ação:

    <p>V(s) = Incrementar o valor do semáforo signal(s) = Incrementar o valor do semáforo s.release() = Incrementar o valor do semáforo em Java</p> Signup and view all the answers

    Quem introduziu o conceito de semáforos em 1965?

    <p>Edsger Dijkstra (B)</p> Signup and view all the answers

    Semáforos são entidades utilizadas apenas para a sincronização de tarefas e não permitem a comunicação entre processos.

    <p>False (B)</p> Signup and view all the answers

    Qual é a finalidade principal da interface Runnable em Java, conforme demonstrado no código controlarRobot2?

    <p>Permitir que uma classe seja executada como uma <em>thread</em>. (B)</p> Signup and view all the answers

    O código controlarRobot2 cr2= new controlarRobot2(); new Thread(cr2).start(); cria e inicia uma thread, executando o método run() da classe controlarRobot2.

    <p>True (A)</p> Signup and view all the answers

    Por que a sincronização é necessária entre tarefas em um sistema operacional?

    <p>A sincronização é necessária porque as tarefas são executadas de forma assíncrona e compartilham recursos.</p> Signup and view all the answers

    Um ponto de _______ é um local no código onde uma tarefa espera por outra em relação às atividades a serem executadas.

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

    Qual técnica é utilizada para proibir o acesso simultâneo a recursos compartilhados, como o canal Bluetooth?

    <p>Exclusão mútua. (D)</p> Signup and view all the answers

    O acesso ao canal Bluetooth não necessita de exclusão mútua, pois cada tarefa tem o seu próprio recurso.

    <p>False (B)</p> Signup and view all the answers

    Na figura 3.2.2.1, o que aconteceria se duas tarefas tentassem ocupar o canal Bluetooth ao mesmo tempo sem exclusão mútua?

    <p>Ocorreria uma condição de corrida, onde ambas as tarefas poderiam tentar usar o canal simultaneamente, causando falhas.</p> Signup and view all the answers

    Combine os conceitos com suas descrições:

    <p>Runnable = Interface que permite que uma classe seja executada como uma <em>thread</em> Sincronização = Coordenação entre tarefas para evitar conflitos de acesso a recursos Exclusão Mútua = Técnica para permitir que apenas uma tarefa acesse um recurso por vez Tarefa = Unidade de execução que pode ocorrer de forma independente</p> Signup and view all the answers

    Study Notes

    Fundamentos de Sistemas Operativos

    • Um sistema operativo é o programa mais utilizado em computadores, abrangendo desde tarefas lúdicas a desenvolvimento de aplicações.
    • Existem sistemas operativos conhecidos como UNIX, Linux, OSX e Microsoft Windows.
    • Um computador é uma arquitetura hardware, composta por microprocessador, memória e portos de entrada/saída.
    • A programação diretamente na linguagem da máquina é difícil, motivo pelo qual os sistemas operativos abstraem o hardware para o utilizador.
    • Máquina virtual é um nível de abstração criado pelo sistema operativo para facilitar a interação dos utilizadores com os dispositivos hardware.
    • Os sistemas operativos mono-utilizador foram os primeiros sistemas operativos utilizados em computadores pessoais, como CPM da Digital Research ou MS/DOS da Microsoft.
    • Os sistemas operativos multi-utilizador surgiram para suportar múltiplos utilizadores simultaneamente, como o Unix e a sua versão open-source, o Linux.
    • Os sistemas operativos multi-utilizador, multi-processo e multi-programados mais atuais, são exemplos de evoluções, como Windows 3.1, Windows 95, 98, XP, Vista, 7, 8 e 10.
    • A gestão de tarefas é uma forma de gerenciar recursos do hardware por um conjunto de programas independentes ou interdependentes.
    • Um processo é um programa que executa uma determinada tarefa.

    Estudo de um Sistema Operativo

    • Os sistemas operativos são compostos por camadas funcionais, cada camada responsável por gerenciar um recurso físico do hardware.
    • Gestão de Processos e Tarefas: gerenciamento dos programas em execução.
    • Sincronização: coordenação entre processos que compartilham recursos.
    • Gestão de Memória: gerenciamento da memória RAM.
    • Comunicação: comunicação entre processos.
    • Ficheiros: gerenciamento de arquivos.
    • O estudo de cada camada utilizará a API disponibilizada na linguagem Java.
    • Permite que o código desenvolvido seja portável em diferentes plataformas.
    • A gestão de processos é o compartilhamento dos recursos de um computador entre programas diferentes.

    Comunicação entre processos em Java

    • Comunicação entre processos independentes (IPC- Inter-Process Communication) na mesma máquina pode ser realizada através de memória partilhada, sockets TCP ou UDP.
    • Memória partilhada: um buffer compartilhado entre os processos para comunicação.
    • Sockets TCP: comunicação orientada a conexão, com maior confiabilidade.
    • Sockets UDP: comunicação não orientada a conexão, mais rápido.

    Comunicação entre processos com Memória Partilhada

    • Memória mapeada de um ficheiro na qual se faz a comunicação entre os processos.
    • O acesso a um MappedByteBuffer pode ser feito por qualquer processo, permitindo alterações simultâneas ao conteúdo do buffer.
    • É preciso garantir a consistência da informação através de exclusão mútua para se evitar problemas de concorrencia.
    • Uma técnica fundamental é a utilização da classe FileLock em JAVA para garantir que só um processo accede ao buffer simultaneamente.

    Processos leves ou Tarefas

    • Os processos leves são partes de um único processo-pai e cooperam em pseudo-paralelismo ou paralelismo para realizar tarefas.
    • Em Java, uma tarefa é implementada usando classes que herdarem da classe 'Thread'.
    • Esta forma de organização permite maior flexibilidade e concorrência em aplicações.

    Sincronização entre tarefas

    • A sincronização é fundamental para evitar conflitos e garantir consistência quando os processos compartilham recursos.
    • Algumas técnicas de sincronização incluem a exclusão mútua, usando semáforos, e o monitor, permitindo que um recurso seja usado por apenas um processo por vez.
    • Os semáforos são variáveis que controlam o acesso a um recurso compartilhado.

    Monitores

    • Os monitores são estruturas de dados que tornam os processos sincronizados.
    • Os monitores permitem que diferentes processos acessem dados em conjunto sem conflitos e problemas de consistência.
    • As técnicas de exclusão mútua com monitores fornecem uma maneira mais estruturada para sincronizar as tarefas dentro de um sistema.

    Monitor versus Semáforos

    • Semáforos permitem acesso múltiplo, tornando mais simples a implementação.

    • Monitores garantem exclusão mútua, permitindo que apenas um processo utilize um recurso por vez.

    • Os monitores melhoram a confiabilidade ao fornecer estruturas bem definidas para sincronizar processos.

    Studying That Suits You

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

    Quiz Team

    Related Documents

    Description

    Teste seus conhecimentos sobre sistemas operativos e programação em Java. O quiz aborda temas como o Unix, métodos da classe Runtime e conceitos importantes em FSO. Prepare-se para responder perguntas desafiadoras que relacionam teoria e prática.

    More Like This

    Java Programming
    10 questions

    Java Programming

    CreativeTrust6309 avatar
    CreativeTrust6309
    Java Concurrency and Multithreading
    10 questions
    Android Development Basics
    6 questions
    Use Quizgecko on...
    Browser
    Browser