Podcast
Questions and Answers
Qual foi um dos principais impactos dos primeiros sistemas operativos?
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.
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?
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 __________ .
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?
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.
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?
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:
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 ______.
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?
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?
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.
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.
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?
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:
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?
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?
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?
Um protocolo de comunicação é constituído por um conjunto de ___________.
Um protocolo de comunicação é constituído por um conjunto de ___________.
Associe os conceitos com suas descrições:
Associe os conceitos com suas descrições:
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?
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.
Qual é o termo usado para abreviar o conceito de processo leve?
Qual é o termo usado para abreviar o conceito de processo leve?
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?
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.
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?
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 ______.
Associe as seguintes operações de semáforo com suas descrições:
Associe as seguintes operações de semáforo com suas descrições:
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?
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.
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?
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 ____.
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)
?
Combine as seguintes terminologias de semáforos com sua respectiva ação:
Combine as seguintes terminologias de semáforos com sua respectiva ação:
Quem introduziu o conceito de semáforos em 1965?
Quem introduziu o conceito de semáforos em 1965?
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.
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
?
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
.
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?
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.
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?
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.
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?
Combine os conceitos com suas descrições:
Combine os conceitos com suas descrições:
Flashcards
Exclusão mútua
Exclusão mútua
O acesso de apenas um processo de cada vez a um recurso físico, garantindo que a informação seja consistente.
FileLock
FileLock
Objeto em Java utilizado para implementar a exclusão mútua no acesso a um canal de comunicação.
Protocolo de comunicação
Protocolo de comunicação
Conjunto de campos definidos para a troca de informação entre processos.
Processo leve ou Tarefa
Processo leve ou Tarefa
Signup and view all the flashcards
Pseudo-paralelismo
Pseudo-paralelismo
Signup and view all the flashcards
Paralelismo
Paralelismo
Signup and view all the flashcards
Compartilhamento de recursos em tarefas
Compartilhamento de recursos em tarefas
Signup and view all the flashcards
Modelo de memória Multitarefa
Modelo de memória Multitarefa
Signup and view all the flashcards
Sistemas Operativos Multi-Utilizador
Sistemas Operativos Multi-Utilizador
Signup and view all the flashcards
Unix
Unix
Signup and view all the flashcards
Linux
Linux
Signup and view all the flashcards
Windows
Windows
Signup and view all the flashcards
Camadas Funcionais
Camadas Funcionais
Signup and view all the flashcards
Gestão de Processos
Gestão de Processos
Signup and view all the flashcards
Gestão de Memória
Gestão de Memória
Signup and view all the flashcards
Comunicação
Comunicação
Signup and view all the flashcards
Comunicação entre processos (IPC)
Comunicação entre processos (IPC)
Signup and view all the flashcards
Memória Partilhada
Memória Partilhada
Signup and view all the flashcards
Memória mapeada em Java
Memória mapeada em Java
Signup and view all the flashcards
Protocolo TCP
Protocolo TCP
Signup and view all the flashcards
Protocolo UDP
Protocolo UDP
Signup and view all the flashcards
Sockets
Sockets
Signup and view all the flashcards
Runtime.getRuntime().exec() em Java
Runtime.getRuntime().exec() em Java
Signup and view all the flashcards
p.waitFor() em Java
p.waitFor() em Java
Signup and view all the flashcards
Comunicação entre Tarefas
Comunicação entre Tarefas
Signup and view all the flashcards
Ponto de Sincronismo
Ponto de Sincronismo
Signup and view all the flashcards
Recursos Não Partilhados
Recursos Não Partilhados
Signup and view all the flashcards
Canal Bluetooth como Recurso Único
Canal Bluetooth como Recurso Único
Signup and view all the flashcards
Classe controlarRobot2
como Runnable
Classe controlarRobot2
como Runnable
Signup and view all the flashcards
ArrayList comandos
na controlarRobot2
ArrayList comandos
na controlarRobot2
Signup and view all the flashcards
Criar e Iniciar Threads
Criar e Iniciar Threads
Signup and view all the flashcards
Recursos não partilháveis
Recursos não partilháveis
Signup and view all the flashcards
Semáforo
Semáforo
Signup and view all the flashcards
getAndSet(AtomicBoolean)
getAndSet(AtomicBoolean)
Signup and view all the flashcards
Espera
Espera
Signup and view all the flashcards
Liberação do Recurso
Liberação do Recurso
Signup and view all the flashcards
Condição de corrida
Condição de corrida
Signup and view all the flashcards
Semaforos em Java
Semaforos em Java
Signup and view all the flashcards
Operação P(s) (ou wait(s))
Operação P(s) (ou wait(s))
Signup and view all the flashcards
Deadlock
Deadlock
Signup and view all the flashcards
Código de acesso concorrente a canal Bluetooth em Java
Código de acesso concorrente a canal Bluetooth em Java
Signup and view all the flashcards
Inicialização do semáforo com valor 1
Inicialização do semáforo com valor 1
Signup and view all the flashcards
Operação release() do semáforo
Operação release() do semáforo
Signup and view all the flashcards
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.