Podcast
Questions and Answers
Qual das opções abaixo descreve melhor uma 'tarefa' em um processo?
Qual das opções abaixo descreve melhor uma 'tarefa' em um processo?
- Uma implementação de uma atividade dentro de um processo. (correct)
- Um processo que não pode ser encerrado.
- Uma estrutura de dados que não é acessada por outros processos.
- Uma classe que não possui dependência de código.
Uma classe que deriva da classe Thread deve implementar o método run() para funcionar corretamente.
Uma classe que deriva da classe Thread deve implementar o método run() para funcionar corretamente.
True (A)
Qual biblioteca é utilizada para acessar a classe Thread em Java?
Qual biblioteca é utilizada para acessar a classe Thread em Java?
java.lang.Thread
Uma tarefa em Java é implementada como uma classe que herda da classe __________.
Uma tarefa em Java é implementada como uma classe que herda da classe __________.
Associe as definições às suas respectivas classes/métodos em Java:
Associe as definições às suas respectivas classes/métodos em Java:
Qual dos seguintes sistemas operativos é conhecido por seu uso em computadores pessoais na década de 80?
Qual dos seguintes sistemas operativos é conhecido por seu uso em computadores pessoais na década de 80?
Os sistemas operativos mono-utilizador permitem o uso simultâneo de vários utilizadores.
Os sistemas operativos mono-utilizador permitem o uso simultâneo de vários utilizadores.
Quais são os principais componentes de um computador, segundo a introdução sobre sistemas operativos?
Quais são os principais componentes de um computador, segundo a introdução sobre sistemas operativos?
O programa que mais utilização tem em qualquer computador é o __________.
O programa que mais utilização tem em qualquer computador é o __________.
Associe os seguintes sistemas operativos com sua característica principal:
Associe os seguintes sistemas operativos com sua característica principal:
Qual é o objetivo principal de um sistema operativo?
Qual é o objetivo principal de um sistema operativo?
O que é uma máquina virtual no contexto dos sistemas operativos?
O que é uma máquina virtual no contexto dos sistemas operativos?
Qual foi o primeiro sistema operativo multi-utilizador amplamente divulgado?
Qual foi o primeiro sistema operativo multi-utilizador amplamente divulgado?
O Linux é um sistema operativo proprietário.
O Linux é um sistema operativo proprietário.
Quais versões do Windows são mencionadas como evoluções do MS-DOS?
Quais versões do Windows são mencionadas como evoluções do MS-DOS?
O sistema operativo Unix serviu de suporte a aplicações de _____ como a edição de notícias.
O sistema operativo Unix serviu de suporte a aplicações de _____ como a edição de notícias.
Associe os sistemas operativos às suas características principais:
Associe os sistemas operativos às suas características principais:
Qual das seguintes opções não é um sistema operativo mencionado?
Qual das seguintes opções não é um sistema operativo mencionado?
A abordagem modular de um sistema operativo é composta por camadas funcionais que podem ser inteiramente disjuntas.
A abordagem modular de um sistema operativo é composta por camadas funcionais que podem ser inteiramente disjuntas.
Qual é a linguagem de programação utilizada para o desenvolvimento de aplicações na disciplina de Fundamentos de Sistemas Operativos?
Qual é a linguagem de programação utilizada para o desenvolvimento de aplicações na disciplina de Fundamentos de Sistemas Operativos?
Um sistema operativo é decomposto em camadas funcionais que gerenciam recursos _____ da máquina hardware.
Um sistema operativo é decomposto em camadas funcionais que gerenciam recursos _____ da máquina hardware.
Qual é a principal característica da linguagem Java em relação à portabilidade?
Qual é a principal característica da linguagem Java em relação à portabilidade?
Um processo em Java pode ser criado sem o uso da classe ProcessBuilder.
Um processo em Java pode ser criado sem o uso da classe ProcessBuilder.
O que significa o estado 'Pronto' em um processo?
O que significa o estado 'Pronto' em um processo?
Um processo em Java é criado chamando o método ______ da classe ProcessBuilder.
Um processo em Java é criado chamando o método ______ da classe ProcessBuilder.
Associe os tipos de aplicações com suas respectivas categorias:
Associe os tipos de aplicações com suas respectivas categorias:
Qual dos seguintes estados representa um processo que está aguardando algum evento ou comunicação?
Qual dos seguintes estados representa um processo que está aguardando algum evento ou comunicação?
Os editores de texto, como o Word, são considerados processos que partilham recursos físicos de uma máquina.
Os editores de texto, como o Word, são considerados processos que partilham recursos físicos de uma máquina.
O que acontece com um processo quando a sua execução termina?
O que acontece com um processo quando a sua execução termina?
Um processo no estado 'Inicialização' está esperando pela ______ de recursos.
Um processo no estado 'Inicialização' está esperando pela ______ de recursos.
Qual é o uso da classe ProcessBuilder em Java?
Qual é o uso da classe ProcessBuilder em Java?
Qual a principal finalidade da classe canalComunicacao
em Java?
Qual a principal finalidade da classe canalComunicacao
em Java?
A memória partilhada em Java é uma memória mapeada de um arquivo.
A memória partilhada em Java é uma memória mapeada de um arquivo.
Qual é a dimensão máxima em bytes do buffer utilizada na classe canalComunicacao
?
Qual é a dimensão máxima em bytes do buffer utilizada na classe canalComunicacao
?
A comunicação entre processos utiliza o ________ para mapear o buffer.
A comunicação entre processos utiliza o ________ para mapear o buffer.
Associe os componentes da comunicação entre processos com suas funções:
Associe os componentes da comunicação entre processos com suas funções:
Qual é um dos atributos privados da classe canalComunicacao
?
Qual é um dos atributos privados da classe canalComunicacao
?
O código da classe canalComunicacao
não contém um construtor.
O código da classe canalComunicacao
não contém um construtor.
Quais são as operações principais que podem ser realizadas no nível sistêmico na comunicação entre processos?
Quais são as operações principais que podem ser realizadas no nível sistêmico na comunicação entre processos?
A classe canalComunicacao
é construída para funcionar em ________ onde os processos estão localizados.
A classe canalComunicacao
é construída para funcionar em ________ onde os processos estão localizados.
Qual é a principal característica de um MappedByteBuffer
?
Qual é a principal característica de um MappedByteBuffer
?
Qual é a principal função de um autómato não bloqueante com estado final?
Qual é a principal função de um autómato não bloqueante com estado final?
A estrutura de um autómato não bloqueante é igual à de um autómato não bloqueante com estado final.
A estrutura de um autómato não bloqueante é igual à de um autómato não bloqueante com estado final.
Qual é a linguagem de programação utilizada para implementar a função de um autómato não bloqueante com estado final?
Qual é a linguagem de programação utilizada para implementar a função de um autómato não bloqueante com estado final?
O robot lego-mindstorms suporta até _____ sensores e pode ter _____ atuadores.
O robot lego-mindstorms suporta até _____ sensores e pode ter _____ atuadores.
Associe as partes do robot lego-mindstorms com suas características:
Associe as partes do robot lego-mindstorms com suas características:
Qual o método utilizado para listar os ficheiros da diretoria corrente em Java?
Qual o método utilizado para listar os ficheiros da diretoria corrente em Java?
O método Dir(String nome) verifica se um ficheiro existe antes de apresentar sua leitura.
O método Dir(String nome) verifica se um ficheiro existe antes de apresentar sua leitura.
O que deve fazer o método DirAll(String pathname)?
O que deve fazer o método DirAll(String pathname)?
Se o ficheiro não pode ser lido, a mensagem exibida é: 'O ________ não aceita leitura.'
Se o ficheiro não pode ser lido, a mensagem exibida é: 'O ________ não aceita leitura.'
Associa os métodos aos seus objetivos:
Associa os métodos aos seus objetivos:
Qual o primeiro passo do método Dir(String nome) após receber o parâmetro?
Qual o primeiro passo do método Dir(String nome) após receber o parâmetro?
O método BufferedReader é usado para escrever dados em um ficheiro na classe ListarDiretorias.
O método BufferedReader é usado para escrever dados em um ficheiro na classe ListarDiretorias.
Qual é uma vantagem da utilização de uma linguagem gráfica como a UML na modelação de aplicações multi-processo?
Qual é uma vantagem da utilização de uma linguagem gráfica como a UML na modelação de aplicações multi-processo?
Os diagramas de atividade da UML são usados apenas para representar processos orientados a objetos.
Os diagramas de atividade da UML são usados apenas para representar processos orientados a objetos.
O que representa a seta entre duas atividades em um diagrama de atividade?
O que representa a seta entre duas atividades em um diagrama de atividade?
Os diagramas de atividade contêm dois tipos de atividade: atividades de ação e atividades de __________.
Os diagramas de atividade contêm dois tipos de atividade: atividades de ação e atividades de __________.
Associe os tipos de diagramas da UML com suas funções:
Associe os tipos de diagramas da UML com suas funções:
Qual dos seguintes assuntos é abordado nos diagramas de atividade?
Qual dos seguintes assuntos é abordado nos diagramas de atividade?
Uma atividade em um diagrama de atividade pode representam operações e a transferência de objetos.
Uma atividade em um diagrama de atividade pode representam operações e a transferência de objetos.
Os diagramas de atividades da UML foram desenhados para representar um __________ de atividades.
Os diagramas de atividades da UML foram desenhados para representar um __________ de atividades.
Qual linguagem é utilizada para modelar aplicações multi-processo neste contexto?
Qual linguagem é utilizada para modelar aplicações multi-processo neste contexto?
Qual atividade é executada quando o estado é ATIVIDADE2?
Qual atividade é executada quando o estado é ATIVIDADE2?
O autômato bloqueante permite transições entre atividades sem condições.
O autômato bloqueante permite transições entre atividades sem condições.
Qual é a condição para transitar da ATIVIDADE1 para a ATIVIDADE2?
Qual é a condição para transitar da ATIVIDADE1 para a ATIVIDADE2?
Na estrutura do autômato, o estado inicial é ______________.
Na estrutura do autômato, o estado inicial é ______________.
Qual é o propósito da função 'açãoTransiçãoAtividade1ParaAtividade2'?
Qual é o propósito da função 'açãoTransiçãoAtividade1ParaAtividade2'?
O autômato utiliza um loop infinito (while true) para gerenciar os estados.
O autômato utiliza um loop infinito (while true) para gerenciar os estados.
Qual atividade é chamada quando o estado é ATIVIDADE3?
Qual atividade é chamada quando o estado é ATIVIDADE3?
A transição do estado ATIVIDADE3 de volta para ATIVIDADE1 é ativada pela condição ____________.
A transição do estado ATIVIDADE3 de volta para ATIVIDADE1 é ativada pela condição ____________.
Associe os estados do autômato com suas respectivas ações.
Associe os estados do autômato com suas respectivas ações.
Qual das seguintes opções descreve corretamente o que acontece quando as condições de transição não são atendidas?
Qual das seguintes opções descreve corretamente o que acontece quando as condições de transição não são atendidas?
Qual é a função de um 'join' em um fluxo de ações concorrentes?
Qual é a função de um 'join' em um fluxo de ações concorrentes?
A aplicação termina se houver sucesso no estabelecimento da comunicação com o robô.
A aplicação termina se houver sucesso no estabelecimento da comunicação com o robô.
Quais comportamentos são lançados após o sucesso na comunicação com o robô?
Quais comportamentos são lançados após o sucesso na comunicação com o robô?
Um ponto de comunicação entre tarefas diferentes é representado pelas __________.
Um ponto de comunicação entre tarefas diferentes é representado pelas __________.
Associe os comportamentos robóticos aos seus objetivos:
Associe os comportamentos robóticos aos seus objetivos:
Qual é o resultado de um insucesso na comunicação com o robô?
Qual é o resultado de um insucesso na comunicação com o robô?
As swimlanes têm apenas uma forma de partição em uma aplicação.
As swimlanes têm apenas uma forma de partição em uma aplicação.
Como as swimlanes são utilizadas em sistemas distribuídos?
Como as swimlanes são utilizadas em sistemas distribuídos?
Após a conclusão dos comportamentos de um robô, a aplicação deve __________ a comunicação.
Após a conclusão dos comportamentos de um robô, a aplicação deve __________ a comunicação.
O que acontece quando todos os fluxos concorrentes têm suas atividades concluídas?
O que acontece quando todos os fluxos concorrentes têm suas atividades concluídas?
Qual é a função do método acquire() no contexto de um semáforo?
Qual é a função do método acquire() no contexto de um semáforo?
Um semáforo deve ser iniciado com o valor 0 para evitar deadlock em processos concorrentes.
Um semáforo deve ser iniciado com o valor 0 para evitar deadlock em processos concorrentes.
O que ocorre quando dois processos tentam acessar um recurso simultaneamente e não há liberdade do recurso?
O que ocorre quando dois processos tentam acessar um recurso simultaneamente e não há liberdade do recurso?
Em Java, o código de inicialização de um semáforo deve ter um valor inicial de ________ para evitar deadlock.
Em Java, o código de inicialização de um semáforo deve ter um valor inicial de ________ para evitar deadlock.
Associe os termos associados ao semáforo com suas descrições:
Associe os termos associados ao semáforo com suas descrições:
Qual é a principal característica dos processos em Java?
Qual é a principal característica dos processos em Java?
Um processo no estado 'Executando' está à espera de interrupção de I/O ou evento.
Um processo no estado 'Executando' está à espera de interrupção de I/O ou evento.
O que é necessário para que um processo em Java seja iniciado?
O que é necessário para que um processo em Java seja iniciado?
Um processo aguardando a atribuição do processador está no estado __________.
Um processo aguardando a atribuição do processador está no estado __________.
Associe os estados de um processo com suas definições:
Associe os estados de um processo com suas definições:
Qual a função da classe ProcessBuilder em Java?
Qual a função da classe ProcessBuilder em Java?
Os editores de texto são considerados processos que compartilham recursos de uma máquina.
Os editores de texto são considerados processos que compartilham recursos de uma máquina.
Quais das seguintes opções são formas de comunicação entre processos independentes em Java?
Quais das seguintes opções são formas de comunicação entre processos independentes em Java?
A comunicação entre processos com TCP é realizada apenas em máquinas diferentes.
A comunicação entre processos com TCP é realizada apenas em máquinas diferentes.
Qual é o tempo de comunicação utilizando memória partilhada em um core de CPU?
Qual é o tempo de comunicação utilizando memória partilhada em um core de CPU?
A técnica de comunicação entre processos que utiliza ________ é considerada eficiente e é designada em Java como memória mapeada.
A técnica de comunicação entre processos que utiliza ________ é considerada eficiente e é designada em Java como memória mapeada.
Associe os seguintes tempos de comunicação com a técnica correspondente:
Associe os seguintes tempos de comunicação com a técnica correspondente:
Qual comando é utilizado para lançar um processo Java a partir do código apresentado?
Qual comando é utilizado para lançar um processo Java a partir do código apresentado?
O tempo de comunicação utilizando UDP é sempre menor que o tempo utilizando TCP.
O tempo de comunicação utilizando UDP é sempre menor que o tempo utilizando TCP.
Qual é a saída esperada após um processo T1 terminar na execução do código apresentado?
Qual é a saída esperada após um processo T1 terminar na execução do código apresentado?
A classe em Java para lançar processos é chamada de ________.
A classe em Java para lançar processos é chamada de ________.
Qual das seguintes opções descreve a principal finalidade da classe canalComunicacao em Java?
Qual das seguintes opções descreve a principal finalidade da classe canalComunicacao em Java?
A dimensão máxima em bytes do buffer utilizada na classe canalComunicacao é 50.
A dimensão máxima em bytes do buffer utilizada na classe canalComunicacao é 50.
Qual é o tipo de memória utilizada para a comunicação entre processos em Java?
Qual é o tipo de memória utilizada para a comunicação entre processos em Java?
A classe canalComunicacao utiliza um ______ para conectar o conteúdo do arquivo ao buffer.
A classe canalComunicacao utiliza um ______ para conectar o conteúdo do arquivo ao buffer.
Associe os componentes da classe canalComunicacao com suas funções:
Associe os componentes da classe canalComunicacao com suas funções:
Qual dos seguintes atributos privados não faz parte da classe canalComunicacao?
Qual dos seguintes atributos privados não faz parte da classe canalComunicacao?
O construtor da classe canalComunicacao é vazio e não realiza nenhuma inicialização.
O construtor da classe canalComunicacao é vazio e não realiza nenhuma inicialização.
Quantos processos podem utilizar a memória partilhada através da classe canalComunicacao?
Quantos processos podem utilizar a memória partilhada através da classe canalComunicacao?
A comunicação entre processos via memória partilhada é realizada utilizando ______.
A comunicação entre processos via memória partilhada é realizada utilizando ______.
Qual é o valor máximo da constante BUFFER_MAX definida na classe canalComunicacao?
Qual é o valor máximo da constante BUFFER_MAX definida na classe canalComunicacao?
Qual das seguintes opções descreve a maneira de iniciar uma tarefa em Java?
Qual das seguintes opções descreve a maneira de iniciar uma tarefa em Java?
Uma tarefa em Java pode ser implementada como uma classe que herda da classe Runnable.
Uma tarefa em Java pode ser implementada como uma classe que herda da classe Runnable.
Qual é a declaração necessária para uma classe que extende a classe Thread em Java?
Qual é a declaração necessária para uma classe que extende a classe Thread em Java?
Para criar uma instância da classe controlarRobot1, usa-se a seguinte linha de código: ________ cr1 = new controlarRobot1();
Para criar uma instância da classe controlarRobot1, usa-se a seguinte linha de código: ________ cr1 = new controlarRobot1();
Qual é o método que deve ser implementado na classe que herda de Thread?
Qual é o método que deve ser implementado na classe que herda de Thread?
Associe os componentes de um processo com suas características:
Associe os componentes de um processo com suas características:
A máquina virtual Java permite a execução de apenas uma única tarefa dentro de um processo.
A máquina virtual Java permite a execução de apenas uma única tarefa dentro de um processo.
As tarefas em Java são instâncias de classes que herdam da classe Thread e devem implementar o método ________.
As tarefas em Java são instâncias de classes que herdam da classe Thread e devem implementar o método ________.
Que estrutura de dados é utilizada pela classe controlarRobot1 para armazenar comandos?
Que estrutura de dados é utilizada pela classe controlarRobot1 para armazenar comandos?
Qual dos seguintes é um passo fundamental para iniciar uma tarefa em Java?
Qual dos seguintes é um passo fundamental para iniciar uma tarefa em Java?
Flashcards
Memória Partilhada
Memória Partilhada
Um mecanismo de comunicação entre processos que permite o compartilhamento direto de dados na memória.
canalComunicacao
canalComunicacao
Uma classe que permite comunicação entre processos JAVA através de memória partilhada.
Ficheiro (File)
Ficheiro (File)
Um arquivo que é usado para armazenar os dados compartilhados entre processos.
FileChannel
FileChannel
Signup and view all the flashcards
MappedByteBuffer
MappedByteBuffer
Signup and view all the flashcards
Buffer
Buffer
Signup and view all the flashcards
BUFFER_MAX
BUFFER_MAX
Signup and view all the flashcards
Comunicação por Memória Partilhada
Comunicação por Memória Partilhada
Signup and view all the flashcards
Comunicação entre Processos JAVA
Comunicação entre Processos JAVA
Signup and view all the flashcards
Processo
Processo
Signup and view all the flashcards
O que é um Sistema Operativo?
O que é um Sistema Operativo?
Signup and view all the flashcards
Sistemas Operativos Mono-Usuário
Sistemas Operativos Mono-Usuário
Signup and view all the flashcards
Linguagem Máquina
Linguagem Máquina
Signup and view all the flashcards
Máquina Virtual
Máquina Virtual
Signup and view all the flashcards
Nível de Abstração
Nível de Abstração
Signup and view all the flashcards
Objetivo do Sistema Operativo
Objetivo do Sistema Operativo
Signup and view all the flashcards
Sistemas Operativos Multi-Usuário
Sistemas Operativos Multi-Usuário
Signup and view all the flashcards
Sistemas Operativos Multi-utilizador
Sistemas Operativos Multi-utilizador
Signup and view all the flashcards
Windows 3.1
Windows 3.1
Signup and view all the flashcards
Camadas funcionais
Camadas funcionais
Signup and view all the flashcards
Tarefas em Java
Tarefas em Java
Signup and view all the flashcards
Abordagem modular
Abordagem modular
Signup and view all the flashcards
Classe Thread
Classe Thread
Signup and view all the flashcards
Gestão de Processos e Tarefas
Gestão de Processos e Tarefas
Signup and view all the flashcards
Sincronização
Sincronização
Signup and view all the flashcards
Criando Classes Thread
Criando Classes Thread
Signup and view all the flashcards
Gestão de Memória
Gestão de Memória
Signup and view all the flashcards
Iniciando uma Tarefa
Iniciando uma Tarefa
Signup and view all the flashcards
Método run()
Método run()
Signup and view all the flashcards
Comunicação
Comunicação
Signup and view all the flashcards
Ficheiros
Ficheiros
Signup and view all the flashcards
Gestão de processos
Gestão de processos
Signup and view all the flashcards
Estados de um processo
Estados de um processo
Signup and view all the flashcards
Inicialização de um processo (Java)
Inicialização de um processo (Java)
Signup and view all the flashcards
Processo pronto (Java)
Processo pronto (Java)
Signup and view all the flashcards
Processo em execução (Java)
Processo em execução (Java)
Signup and view all the flashcards
Processo em espera (Java)
Processo em espera (Java)
Signup and view all the flashcards
Processo terminado (Java)
Processo terminado (Java)
Signup and view all the flashcards
Criar um processo em Java
Criar um processo em Java
Signup and view all the flashcards
Método start() (Java)
Método start() (Java)
Signup and view all the flashcards
O que faz o método DirAll
?
O que faz o método DirAll
?
Signup and view all the flashcards
Qual parâmetro o método DirAll
recebe?
Qual parâmetro o método DirAll
recebe?
Signup and view all the flashcards
O que o método DirAll
mostra?
O que o método DirAll
mostra?
Signup and view all the flashcards
Qual é o objetivo do método Dir
?
Qual é o objetivo do método Dir
?
Signup and view all the flashcards
Como o método Dir
determina se o caminho é uma diretoria?
Como o método Dir
determina se o caminho é uma diretoria?
Signup and view all the flashcards
Como o método Dir
exibe os arquivos dentro da diretoria?
Como o método Dir
exibe os arquivos dentro da diretoria?
Signup and view all the flashcards
Como o método Dir
verifica se o arquivo pode ser lido?
Como o método Dir
verifica se o arquivo pode ser lido?
Signup and view all the flashcards
Autómato não bloqueante com estado final
Autómato não bloqueante com estado final
Signup and view all the flashcards
Exemplo de autómato não bloqueante com estado final
Exemplo de autómato não bloqueante com estado final
Signup and view all the flashcards
Estrutura do robot LEGO NXT Mindstorms
Estrutura do robot LEGO NXT Mindstorms
Signup and view all the flashcards
Funcionalidades do robot LEGO NXT Mindstorms
Funcionalidades do robot LEGO NXT Mindstorms
Signup and view all the flashcards
Conexão do robot LEGO NXT Mindstorms
Conexão do robot LEGO NXT Mindstorms
Signup and view all the flashcards
Join (Junção)
Join (Junção)
Signup and view all the flashcards
Swimlanes (Faixas de Natação)
Swimlanes (Faixas de Natação)
Signup and view all the flashcards
Iniciar uma Tarefa (start())
Iniciar uma Tarefa (start())
Signup and view all the flashcards
Autómato Bloqueante
Autómato Bloqueante
Signup and view all the flashcards
Estado no Autômato Bloqueante
Estado no Autômato Bloqueante
Signup and view all the flashcards
Transição no Autômato Bloqueante
Transição no Autômato Bloqueante
Signup and view all the flashcards
Ações de Transição
Ações de Transição
Signup and view all the flashcards
Estado Inicial
Estado Inicial
Signup and view all the flashcards
Estados Finais
Estados Finais
Signup and view all the flashcards
Ciclo de Vida do Autômato
Ciclo de Vida do Autômato
Signup and view all the flashcards
Estrutura Genérica
Estrutura Genérica
Signup and view all the flashcards
Atividades
Atividades
Signup and view all the flashcards
Condições de Transição
Condições de Transição
Signup and view all the flashcards
Diagramas de atividade da UML
Diagramas de atividade da UML
Signup and view all the flashcards
Aplicações multi-processo
Aplicações multi-processo
Signup and view all the flashcards
Swimlanes da UML
Swimlanes da UML
Signup and view all the flashcards
Diagramas de atividade para processos
Diagramas de atividade para processos
Signup and view all the flashcards
Atividades de ação
Atividades de ação
Signup and view all the flashcards
Atividades de subatividade
Atividades de subatividade
Signup and view all the flashcards
Transições em diagramas de atividade
Transições em diagramas de atividade
Signup and view all the flashcards
Representação de atividades
Representação de atividades
Signup and view all the flashcards
Padronização da UML
Padronização da UML
Signup and view all the flashcards
Memória Partilhada em JAVA
Memória Partilhada em JAVA
Signup and view all the flashcards
Classe canalComunicacao
Classe canalComunicacao
Signup and view all the flashcards
O que é o FileChannel
?
O que é o FileChannel
?
Signup and view all the flashcards
Para que serve o MappedByteBuffer
?
Para que serve o MappedByteBuffer
?
Signup and view all the flashcards
Para que serve o BUFFER_MAX
?
Para que serve o BUFFER_MAX
?
Signup and view all the flashcards
O que é o File
?
O que é o File
?
Signup and view all the flashcards
Para que serve o buffer
?
Para que serve o buffer
?
Signup and view all the flashcards
O que é o canal
?
O que é o canal
?
Signup and view all the flashcards
Para que serve o construtor da classe canalComunicacao
?
Para que serve o construtor da classe canalComunicacao
?
Signup and view all the flashcards
O que é a comunicação por memória partilhada?
O que é a comunicação por memória partilhada?
Signup and view all the flashcards
O que é um processo?
O que é um processo?
Signup and view all the flashcards
O que é uma tarefa?
O que é uma tarefa?
Signup and view all the flashcards
Como as tarefas são implementadas em Java?
Como as tarefas são implementadas em Java?
Signup and view all the flashcards
Como a JVM gerencia tarefas?
Como a JVM gerencia tarefas?
Signup and view all the flashcards
Como acessar a classe Thread?
Como acessar a classe Thread?
Signup and view all the flashcards
Quais são as maneiras de definir uma classe do tipo Thread?
Quais são as maneiras de definir uma classe do tipo Thread?
Signup and view all the flashcards
Qual é a função do método start()?
Qual é a função do método start()?
Signup and view all the flashcards
Qual é a função do método run()
?
Qual é a função do método run()
?
Signup and view all the flashcards
Como as tarefas compartilham recursos?
Como as tarefas compartilham recursos?
Signup and view all the flashcards
O que é memória compartilhada?
O que é memória compartilhada?
Signup and view all the flashcards
Como criar um processo em Java?
Como criar um processo em Java?
Signup and view all the flashcards
Estados e Transições de um Processo
Estados e Transições de um Processo
Signup and view all the flashcards
Comunicação entre Processos
Comunicação entre Processos
Signup and view all the flashcards
Threads em Java
Threads em Java
Signup and view all the flashcards
Sincronização de Threads
Sincronização de Threads
Signup and view all the flashcards
P(s) (ou 'acquire')
P(s) (ou 'acquire')
Signup and view all the flashcards
Deadlock
Deadlock
Signup and view all the flashcards
Semáforo
Semáforo
Signup and view all the flashcards
Release()
Release()
Signup and view all the flashcards
Swimlanes
Swimlanes
Signup and view all the flashcards
Sockets por TCP
Sockets por TCP
Signup and view all the flashcards
Sockets por UDP
Sockets por UDP
Signup and view all the flashcards
Transições no Autômato Bloqueante
Transições no Autômato Bloqueante
Signup and view all the flashcards
Study Notes
Fundamentos de Sistemas Operativos - 2024-2025
- O sistema operativo é o programa mais utilizado em qualquer computador, utilizado para todas as áreas de funcionalidade.
- Os sistemas operativos mais conhecidos são: UNIX, Linux, OSX e Microsoft Windows.
- Um computador é uma arquitetura hardware que engloba microprocessador, memória e portos de entrada/saída.
- Um exemplo de arquitetura é o Arduino, um microsistema já trabalhado em Computação Física.
- A programação ao nível da linguagem máquina de um microprocessador é complexa e consume muito tempo.
- O principal objetivo do sistema operativo é facilitar a gestão dos recursos hardware, criando um nível de abstração para o utilizador (máquina virtual).
- A máquina virtual permite uma forma mais intuitiva de manipular os dispositivos hardware.
Tipos de Sistemas Operativos
- Sistemas Operativos Mono-Utilizador - Foram os primeiros sistemas utilizados em computadores pessoais (anos 80), como CPM ou MS-DOS.
- Sistemas Operativos Multi-Utilizador - São utilizados em computadores de médio porte, onde várias pessoas podem utilizar um mesmo computador. Um exemplo é Unix e Linux, considerados os precursores dos sistemas modernos.
- Windows 3.1, 95, 98, XP, Vista, 7, 8 e 10 são exemplos de sistemas multi-utilizador e multi-processos.
Estudo de um Sistema Operativo
- Um sistema operativo pode ser decomposto em camadas funcionais, cada uma gerindo um recurso do hardware.
- As camadas não são inteiramente disjuntas, mas complementares.
- As camadas são estudadas de forma modular.
- Processos e tarefas são estudados numa linguagem Java, usando APIs, como a Java Virtual Machine, para facilitar a acessibilidade do código para vários hardware.
- Gestão de processos e tarefas envolve a partilha de recursos, como editores de textos, compiladores, outros programas, e dispositivos de entrada/saída.
Comunicação entre Processos em Java
- Comunicação entre processos em JAVA pode ser realizada por memória partilhada, ou sockets TCP (Transfer Control Protocol) ou UDP (User Datagram Protocol).
- A memória partilhada em JAVA é mapeada para uma área de memória virtual do conteúdo de um ficheiro.
- A troca de dados entre processos é mais rápida utilizando Memória partilhada.
- Os tempos de acesso para troca de dados utilizando memória partilhada e um core de CPU, são de 1,5 microsegundos e mais de 1 core de CPU são de 0,7 microsegundos.
- Os tempos de acesso utilizando TCP e um core de CPU são de 30 microsegundos e mais de 1 core de CPU são de 22 microsegundos.
- Os tempos de acesso utilizando UDP e um core de CPU são de 5 microsegundos e mais de 1 core de CPU são de 8 microsegundos.
Comunicação entre processos com Memória Partilhada
- Há um buffer de acesso direto com conteúdo igual ao de um ficheiro, permitindo acesso simultâneo.
- Qualquer processo Java pode alterar o conteúdo do buffer.
- Se um processo fecha ou trunca o buffer, outros processos deixam de ter acesso, gerando um erro de acesso.
- A manipulação de um buffer mapeado é semelhante à de um buffer convencional.
- As funções 'force()', 'isLoaded()' e 'load()' são específicas para buffers mapeados e permitem controlar o acesso à memória principal.
Comunicação entre Processos em Java (utilizando Memória Partilhada)
- Um programa Java pode executar um ficheiro .JAR.
- O método main() é a base de uma aplicação Java.
- As classes para execução de processos em Java são: lançarEEsperarProcessoWin32 e lancarEEsperarProcessoJAVA. Estas classes facilitam a criação e gestão de processos.
Tarefa em Java
- Um processo pode conter múltiplas tarefas (threads).
- Uma tarefa em Java é uma classe que deriva da classe Thread (e implementa Runnable).
- Várias tarefas podem ser executadas dentro do mesmo processo, permitindo concorrência.
- A classe ControlarRobot1 e ControlarRobot2 demonstram como criar e lançar tarefas em Java usando threads para executar diferentes ações.
Sincronização entre Tarefas
- A comunicação entre tarefas requer sincronização, devido ao processamento ser imprevisível em tempo real.
- A exclusão mútua garante que apenas uma tarefa aceda a um determinado recurso em simultâneo.
- Semáforos são um mecanismo para controlar o acesso concorrente, prevenindo problemas como o deadlock. É fundamental para impedir acessos simultâneos que poderiam gerar incoerências.
- A declaração e o uso adequado de semáforos são essenciais para prevenir deadlock e garantir consistência.
Monitores
- As tarefas são sincronizadas usando monitores, oferecendo exclusão mútua dentro da própria linguagem Java.
- Monitores geridos pela linguagem Java, onde cada objeto possui um monitor.
- O acesso aos monitores é controlado pela diretiva synchronized, garantindo exclusão mútua.
- Sincronização ao método - Permite que um processo aceda ao método somente quando seu monitor é desbloqueado (terminando sua execução ou usando wait()).
- Sincronização ao bloco - Limita o uso de
synchronized
dentro de um bloco específico, protegendovariáveis
.
Sistema de Ficheiros
- O sistema de ficheiros organiza os ficheiros numa estrutura hierárquica (árvore de subdiretoria), com diretoria raiz.
- O
Open-Read/Write-Close
é um padrão de modelo de acesso a ficheiros, onde o utilizador abre, lê/escreve e fecha o ficheiro. - Os ficheiros são estruturados em blocos (clusters) de dados.
- Usam uma tabela (FAT) que descreve o uso de cada bloco, incluindo cluster estragados, clusters livres e clusters usados, além de outras informações como tempo de criação, data e hora de acesso, e proteção.
- Um volume (disco) é dividido em partições com diferentes tipos (FAT, etc) e estrutura física, com o setor de inicialização, tabelas de alocação, e blocos de dados.
- O Master Boot Record (MBR) contém o código de arranque e informações sobre a partição e o sistema operacional.
Manipulação de Ficheiros em Java com Streams
- As classes
java.io.Reader
ejava.io.Writer
são usadas para manipulação de caracteres. - As classes
java.io.InputStream
ejava.io.OutputStream
são usadas para manipulação de bytes. - Classes como
BufferedReader
,BufferedWriter
,FileReader
,FileWriter
,FileInputStream
,FileOutputStream
facilitam a leitura e escrita de ficheiros de forma eficiente e gerenciando fluxos de dados com grande eficiência.
Diagramas de Atividade
- Os diagramas de atividade modelam fluxos de controlo concorrentes, especialmente importantes em aplicações multi-thread.
- Eles descrevem atividades, transições entre atividades, e condições (eventos) disparando as transiçoes.
- As swimlanes organizam atividades dentro de diferentes participantes (processos ou threads), facilitando a visualização clara da colaboração entre eles.
- Usados para representar fluxos de trabalho em aplicações multi-thread.
Outros Anexos
- Os anexos descrevem robôs (Lego NXT e EV3), seus componentes (computador, sensores, atuadores), e a interação entre o robô e o ambiente através de interfaces de programação, como a comunicação USB e Bluetooth, e consideram os tempos de processamento mínimos. Também detalham o modelo computadorn-robô.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Descubra os conceitos fundamentais dos sistemas operativos e suas aplicações em computação. Este quiz cobre arquiteturas de hardware, tipos de sistemas operativos e a importância da máquina virtual na gestão de recursos. Teste seu conhecimento sobre sistemas conhecidos como UNIX, Linux e Windows.