Podcast
Questions and Answers
Qual foi um dos principais impactos dos primeiros sistemas operativos?
Qual foi um dos principais impactos dos primeiros sistemas operativos?
O Unix foi o primeiro sistema operativo multi-utilizador open source.
O Unix foi o primeiro sistema operativo multi-utilizador open source.
False (B)
Qual sistema operativo foi desenvolvido como alternativa open source ao Unix?
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?
Qual método da classe Runtime
é usado para executar um processo externo em Java?
Signup and view all the answers
O sistema operativo Windows 3.1 inicialmente uma evolução gráfica do sistema __________ .
O sistema operativo Windows 3.1 inicialmente uma evolução gráfica do sistema __________ .
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?
Qual das seguintes opções descreve adequadamente a abordagem de estudo de um sistema operativo na disciplina de FSO?
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.
O método waitFor()
faz com que o processo Java espere que o processo filho termine antes de continuar a execução.
Signup and view all the answers
Qual é a finalidade do bloco try...catch
no código Java apresentado para executar o processo filho?
Qual é a finalidade do bloco try...catch
no código Java apresentado para executar o processo filho?
Signup and view all the answers
Associe as camadas funcionais de um sistema operativo com a sua descrição:
Associe as camadas funcionais de um sistema operativo com a sua descrição:
Signup and view all the answers
Em Java, a comunicação entre processos independentes usando memória partilhada é conhecida como memória ______.
Em Java, a comunicação entre processos independentes usando memória partilhada é conhecida como memória ______.
Signup and view all the answers
Qual linguagem de programação será utilizada para desenvolver aplicações na disciplina de FSO?
Qual linguagem de programação será utilizada para desenvolver aplicações na disciplina de FSO?
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?
Qual protocolo de comunicação entre processos geralmente tem a menor latência quando usado com 1 core de CPU?
Signup and view all the answers
As camadas funcionais de um sistema operativo são completamente independentes e não interagem entre si.
As camadas funcionais de um sistema operativo são completamente independentes e não interagem entre si.
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.
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.
Signup and view all the answers
Para comunicação entre processos em máquinas diferentes, quais tecnologias podem ser usadas?
Para comunicação entre processos em máquinas diferentes, quais tecnologias podem ser usadas?
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:
Associe as tecnologias de comunicação com os seus respectivos tempos de latência quando usado com mais de 1 core de CPU:
Signup and view all the answers
Qual é o objetivo principal da exclusão mútua no acesso a um canal de comunicação?
Qual é o objetivo principal da exclusão mútua no acesso a um canal de comunicação?
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?
Um FileLock
em Java é usado para garantir exclusão mútua na escrita e leitura de canais de comunicação?
Signup and view all the answers
Como se designa um conjunto de campos definidos pelo programador para comunicação entre processos?
Como se designa um conjunto de campos definidos pelo programador para comunicação entre processos?
Signup and view all the answers
Um protocolo de comunicação é constituído por um conjunto de ___________.
Um protocolo de comunicação é constituído por um conjunto de ___________.
Signup and view all the answers
Associe os conceitos com suas descrições:
Associe os conceitos com suas descrições:
Signup and view all the answers
Qual a principal diferença entre processos leves e processos tradicionais, conforme o texto?
Qual a principal diferença entre processos leves e processos tradicionais, conforme o texto?
Signup and view all the answers
As tarefas são executadas em verdadeiro paralelismo num processador com um único core.
As tarefas são executadas em verdadeiro paralelismo num processador com um único core.
Signup and view all the answers
Qual é o termo usado para abreviar o conceito de processo leve?
Qual é o termo usado para abreviar o conceito de processo leve?
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?
Qual operação sobre um semáforo decrementa o seu valor quando s > 0, em terminologia anglo-saxónica?
Signup and view all the answers
Um deadlock ocorre quando os processos ficam à espera de um recurso que é sempre libertado.
Um deadlock ocorre quando os processos ficam à espera de um recurso que é sempre libertado.
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?
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?
Signup and view all the answers
Em Java, a operação de decremento do valor de um semáforo é feita com o método ______.
Em Java, a operação de decremento do valor de um semáforo é feita com o método ______.
Signup and view all the answers
Associe as seguintes operações de semáforo com suas descrições:
Associe as seguintes operações de semáforo com suas descrições:
Signup and view all the answers
Qual é o problema principal de dois processos acessarem simultaneamente um canal bluetooth sem controle adequado?
Qual é o problema principal de dois processos acessarem simultaneamente um canal bluetooth sem controle adequado?
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.
Recursos não partilháveis, como ficheiros para escrita e periféricos, podem ser acedidos por várias tarefas simultaneamente sem problemas.
Signup and view all the answers
Qual é a principal função da variável 'semaforo' no contexto de exclusão mútua?
Qual é a principal função da variável 'semaforo' no contexto de exclusão mútua?
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 ____.
A instrução getAndSet(AtomicBoolean)
devolve o valor lógico da variável e afeta a variável com o valor ____.
Signup and view all the answers
Qual das seguintes opções descreve corretamente a função da instrução getAndSet(AtomicBoolean)
?
Qual das seguintes opções descreve corretamente a função da instrução getAndSet(AtomicBoolean)
?
Signup and view all the answers
Combine as seguintes terminologias de semáforos com sua respectiva ação:
Combine as seguintes terminologias de semáforos com sua respectiva ação:
Signup and view all the answers
Quem introduziu o conceito de semáforos em 1965?
Quem introduziu o conceito de semáforos em 1965?
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.
Semáforos são entidades utilizadas apenas para a sincronização de tarefas e não permitem a comunicação entre processos.
Signup and view all the answers
Qual é a finalidade principal da interface Runnable
em Java, conforme demonstrado no código controlarRobot2
?
Qual é a finalidade principal da interface Runnable
em Java, conforme demonstrado no código controlarRobot2
?
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
.
O código controlarRobot2 cr2= new controlarRobot2(); new Thread(cr2).start();
cria e inicia uma thread, executando o método run()
da classe controlarRobot2
.
Signup and view all the answers
Por que a sincronização é necessária entre tarefas em um sistema operacional?
Por que a sincronização é necessária entre tarefas em um sistema operacional?
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.
Um ponto de _______ é um local no código onde uma tarefa espera por outra em relação às atividades a serem executadas.
Signup and view all the answers
Qual técnica é utilizada para proibir o acesso simultâneo a recursos compartilhados, como o canal Bluetooth?
Qual técnica é utilizada para proibir o acesso simultâneo a recursos compartilhados, como o canal Bluetooth?
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.
O acesso ao canal Bluetooth não necessita de exclusão mútua, pois cada tarefa tem o seu próprio recurso.
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?
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?
Signup and view all the answers
Combine os conceitos com suas descrições:
Combine os conceitos com suas descrições:
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.
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.