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
Um canal que conecta o conteúdo de um arquivo ao buffer de memória compartilhada.
Signup and view all the flashcards
MappedByteBuffer
MappedByteBuffer
Uma região específica de memória que permite a leitura e escrita de dados compartilhados.
Signup and view all the flashcards
Buffer
Buffer
Uma região de memória que armazena dados compartilhados.
Signup and view all the flashcards
BUFFER_MAX
BUFFER_MAX
O tamanho máximo em bytes que o buffer de memória compartilhada pode armazenar.
Signup and view all the flashcards
Comunicação por Memória Partilhada
Comunicação por Memória Partilhada
Um método que permite a comunicação entre processos utilizando memória partilhada.
Signup and view all the flashcards
Comunicação entre Processos JAVA
Comunicação entre Processos JAVA
Permite a comunicação entre processos na mesma máquina, permitindo que compartilhem dados e recursos.
Signup and view all the flashcards
Processo
Processo
Um processo que pode acessar e modificar dados na memória compartilhada juntamente com outros processos.
Signup and view all the flashcards
O que é um Sistema Operativo?
O que é um Sistema Operativo?
Um programa fundamental que administra os recursos de um computador, como o processador, memória e dispositivos de entrada e saída. Permite aos usuários interagir com o hardware de forma mais fácil.
Signup and view all the flashcards
Sistemas Operativos Mono-Usuário
Sistemas Operativos Mono-Usuário
Os Sistemas Operativos Mono-Usuário eram utilizados em computadores pessoais antigos. Exemplos: CPM e MS-DOS.
Signup and view all the flashcards
Linguagem Máquina
Linguagem Máquina
Linguagem de baixo nível compreendida pelo processador. É uma sequência de instruções. Cada instrução manipula os dados diretamente.
Signup and view all the flashcards
Máquina Virtual
Máquina Virtual
Os Sistemas Operativos facilitam o uso do hardware, criando uma abstração chamada máquina virtual.
Signup and view all the flashcards
Nível de Abstração
Nível de Abstração
Refere-se à camada de software que torna o hardware acessível aos usuários. Cria uma interface de usuário amigável, gerenciando o acesso aos recursos.
Signup and view all the flashcards
Objetivo do Sistema Operativo
Objetivo do Sistema Operativo
O objetivo principal do sistema operativo é facilitar e maximizar o uso dos recursos do hardware do computador.
Signup and view all the flashcards
Sistemas Operativos Multi-Usuário
Sistemas Operativos Multi-Usuário
Modelos modernos que permitem que múltiplos usuários acessem e utilizem o mesmo computador ao mesmo tempo, como Windows, Linux e macOS.
Signup and view all the flashcards
Sistemas Operativos Multi-utilizador
Sistemas Operativos Multi-utilizador
Sistemas operativos projetados para serem usados por vários usuários simultaneamente, permitindo que diferentes processos compartilhem recursos do sistema, como a CPU e memória.
Signup and view all the flashcards
Windows 3.1
Windows 3.1
Um sistema operacional proprietário que deu origem a uma série de evoluções e versões, incluindo Windows 95, 98, XP, Vista, 7, 8 e 10.
Signup and view all the flashcards
Camadas funcionais
Camadas funcionais
Camadas funcionais, que representam módulos de gerenciamento de recursos do sistema, cada camada é responsável pela gestão eficiente de um recurso físico da máquina hardware.
Signup and view all the flashcards
Tarefas em Java
Tarefas em Java
Um processo pode ser dividido em múltiplas tarefas. Cada tarefa é uma atividade executada dentro do processo, possuindo código e dados independentes das outras tarefas. Uma tarefa em Java é implementada como uma classe que deriva da classe Thread, herdando seus métodos.
Signup and view all the flashcards
Abordagem modular
Abordagem modular
Uma abordagem estrutural que organiza o sistema operacional em módulos independentes, permitindo que cada módulo seja desenvolvido, testado e depurado separadamente.
Signup and view all the flashcards
Classe Thread
Classe Thread
A classe Thread é a base para criar e gerenciar tarefas em Java. Ela está disponível na biblioteca java.lang.Thread e implementa a interface Runnable. Ao estender a classe Thread, sua classe se torna uma tarefa que pode ser executada dentro de um processo.
Signup and view all the flashcards
Gestão de Processos e Tarefas
Gestão de Processos e Tarefas
Gerenciamento de Processos e Tarefas, uma parte fundamental do sistema operacional que é responsável por controlar a execução de processos e tarefas, garantindo que seus recursos sejam alocados e gerenciados de forma eficiente.
Signup and view all the flashcards
Sincronização
Sincronização
Sincronização, um mecanismo que garante que os processos compartilhem recursos de forma segura, evitando conflitos e garantindo a consistência dos dados.
Signup and view all the flashcards
Criando Classes Thread
Criando Classes Thread
Existem duas formas de definir uma classe do tipo Thread em Java: herdar diretamente da classe Thread ou implementar a interface Runnable. Ambas permitem criar tarefas, mas a primeira oferece métodos para gerenciamento de threads diretamente na classe da tarefa.
Signup and view all the flashcards
Gestão de Memória
Gestão de Memória
Gerenciamento de Memória, uma camada crucial que aloca e gerencia a memória disponível no sistema, garantindo que os processos tenham acesso à quantidade de memória que precisam para funcionar corretamente.
Signup and view all the flashcards
Iniciando uma Tarefa
Iniciando uma Tarefa
O método start() da classe Thread inicia a execução da tarefa, permitindo que ela seja executada em paralelo com o código principal do processo. Ao usar start(), você chama o método run() da classe Thread, que é a base da execução da tarefa.
Signup and view all the flashcards
Método run()
Método run()
O método run() é o coração da classe Thread. Ele define as ações que a tarefa realiza. Quando o método start() é chamado, o método run() da classe Thread é executado como uma thread separada.
Signup and view all the flashcards
Comunicação
Comunicação
Comunicação, um mecanismo que permite que diferentes processos se comuniquem entre si e com dispositivos externos, facilitando a troca de informações.
Signup and view all the flashcards
Ficheiros
Ficheiros
Gerenciamento de Ficheiros, um componente que organiza e administra os arquivos do sistema, garantindo que a informação seja armazenada e recuperada de forma segura e eficiente.
Signup and view all the flashcards
Gestão de processos
Gestão de processos
A gestão de processos é o mecanismo pelo qual o sistema operativo permite que múltiplos programas (processos) partilhem os recursos físicos da máquina, permitindo que sejam executados em simultâneo.
Signup and view all the flashcards
Estados de um processo
Estados de um processo
Um processo pode passar por diferentes estados de funcionamento, como inicialização (criado, mas ainda não em execução), pronto (esperando por sua vez para executar), execução (a executar), espera (aguardando um evento) e terminado (execução concluída).
Signup and view all the flashcards
Inicialização de um processo (Java)
Inicialização de um processo (Java)
A inicialização é a primeira fase de um processo onde o programa é criado, mas ainda precisa obter os recursos necessários para começar a executar.
Signup and view all the flashcards
Processo pronto (Java)
Processo pronto (Java)
Um processo está em estado pronto quando está pronto para começar a executar, mas está esperando sua vez na fila de espera para obter o CPU.
Signup and view all the flashcards
Processo em execução (Java)
Processo em execução (Java)
Um processo em estado de execução está a usar o CPU e a executar tarefas específicas.
Signup and view all the flashcards
Processo em espera (Java)
Processo em espera (Java)
Um processo em estado de espera está a aguardar que um evento ocorra, como a entrada do utilizador, dados de uma rede ou a conclusão de uma operação I/O.
Signup and view all the flashcards
Processo terminado (Java)
Processo terminado (Java)
Um processo está em estado terminado quando a execução é concluída e os recursos do sistema são libertados.
Signup and view all the flashcards
Criar um processo em Java
Criar um processo em Java
Em Java, pode-se criar um processo utilizando a classe ProcessBuilder, um objeto que recebe como parâmetro o nome do programa e path.
Signup and view all the flashcards
Método start() (Java)
Método start() (Java)
O método start() da classe ProcessBuilder é usado para iniciar a execução do processo, ativando o programa especificado.
Signup and view all the flashcards
O que faz o método DirAll
?
O que faz o método DirAll
?
O método DirAll
é chamado com um nome de diretoria. Se o nome for uma diretoria, o método lista todos os arquivos dentro da diretoria e os arquivos dentro das subdiretorias, referindo as subdiretorias.
Qual parâmetro o método DirAll
recebe?
Qual parâmetro o método DirAll
recebe?
O método DirAll
recebe o caminho para uma diretoria como parâmetro.
O que o método DirAll
mostra?
O que o método DirAll
mostra?
O método DirAll
lista os arquivos dentro da diretoria e as subdiretorias, fornecendo o caminho completo de cada arquivo.
Qual é o objetivo do método Dir
?
Qual é o objetivo do método Dir
?
O método Dir
recebe um nome, geralmente um nome de arquivo. Se o nome for uma diretoria, o método mostra a lista de arquivos dentro dessa diretoria.
Como o método Dir
determina se o caminho é uma diretoria?
Como o método Dir
determina se o caminho é uma diretoria?
O método Dir
usa File.isDirectory()
para verificar se o caminho fornecido é uma diretoria. Se for, o método mostra os arquivos dentro da diretoria.
Como o método Dir
exibe os arquivos dentro da diretoria?
Como o método Dir
exibe os arquivos dentro da diretoria?
O método Dir
usa File.listFiles()
para obter uma lista de arquivos dentro da diretoria. Em seguida, itera pela lista e mostra o nome de cada arquivo.
Como o método Dir
verifica se o arquivo pode ser lido?
Como o método Dir
verifica se o arquivo pode ser lido?
O método Dir
usa File.canRead()
para verificar se o arquivo pode ser lido. Se não, o método mostra uma mensagem indicando que o arquivo não pode ser lido.
Autómato não bloqueante com estado final
Autómato não bloqueante com estado final
Um autómato não bloqueante com estado terminal difere de um autómato não bloqueante sem estado terminal, pois retorna uma informação sobre a conclusão da atividade através de uma função.
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
No exemplo do diagrama de atividades com 2 atividades completamente ligadas, o código retorna true
quando a atividade final é concluída e false
caso contrário.
Estrutura do robot LEGO NXT Mindstorms
Estrutura do robot LEGO NXT Mindstorms
O robot LEGO NXT Mindstorms tem uma estrutura modelar com duas rodas de tração independentes na frente e uma roda livre atrás.
Signup and view all the flashcards
Funcionalidades do robot LEGO NXT Mindstorms
Funcionalidades do robot LEGO NXT Mindstorms
O robot LEGO NXT Mindstorms pode suportar até 4 sensores (por exemplo, de distância, cor, som) e 3 atuadores, como motores.
Signup and view all the flashcards
Conexão do robot LEGO NXT Mindstorms
Conexão do robot LEGO NXT Mindstorms
O robot LEGO NXT Mindstorms pode ser ligado a um computador através de uma ligação USB ou Bluetooth, permitindo programar e controlar suas ações.
Signup and view all the flashcards
Join (Junção)
Join (Junção)
Um ponto de sincronização entre dois ou mais fluxos concorrentes de ações, onde a execução de uma sequência depende da conclusão de todas as outras.
Signup and view all the flashcards
Swimlanes (Faixas de Natação)
Swimlanes (Faixas de Natação)
Mecanismo para modelar a comunicação e sincronização entre tarefas diferentes dentro de uma aplicação. Representam a colaboração e interdependência.
Signup and view all the flashcards
Iniciar uma Tarefa (start())
Iniciar uma Tarefa (start())
Processo de executar uma tarefa. A tarefa é iniciada para executar em paralelo com o código principal.
Signup and view all the flashcards
Autómato Bloqueante
Autómato Bloqueante
O autómato bloqueante é um tipo de máquina de estados finitos que é usado para implementar diagramas de atividades. Ele possui um número finito de estados e transições entre esses estados. A estrutura do autómato é definida pelas ações a serem realizadas em cada estado (atividades) e pelas condições que determinam a transição de um estado para outro.
Signup and view all the flashcards
Estado no Autômato Bloqueante
Estado no Autômato Bloqueante
Cada estado no autómato bloqueante representa uma atividade do diagrama de atividades. Cada atividade possui um conjunto de ações a serem executadas quando o autómato estiver nesse estado.
Signup and view all the flashcards
Transição no Autômato Bloqueante
Transição no Autômato Bloqueante
As transições no autómato bloqueante são definidas por condições que devem ser satisfeitas para que ocorra a mudança de estado. A condição para cada transição representa um evento ou condição que desencadeia a mudança do estado atual para outro.
Signup and view all the flashcards
Ações de Transição
Ações de Transição
Ações de transição são ações executadas quando ocorre uma transição de um estado para outro. Estas ações podem ser usadas para atualizar o estado do sistema, enviar mensagens ou executar outras tarefas.
Signup and view all the flashcards
Estado Inicial
Estado Inicial
O estado inicial do autómato bloqueante, onde o processo começa a ser executado.
Signup and view all the flashcards
Estados Finais
Estados Finais
O conjunto de estados finais do autómato bloqueante, onde o processo termina sua execução.
Signup and view all the flashcards
Ciclo de Vida do Autômato
Ciclo de Vida do Autômato
O ciclo de vida do autómato bloqueante é definido pelo loop infinito, que continua até que o processo seja interrompido. O loop é responsável por verificar as condições de transição e executar as ações correspondentes.
Signup and view all the flashcards
Estrutura Genérica
Estrutura Genérica
A estrutura genérica do autómato bloqueante é uma estrutura que descreve a lógica do sistema. Ela define a estrutura básica do autómato e é reutilizável em diferentes diagramas de atividades.
Signup and view all the flashcards
Atividades
Atividades
As ações a serem realizadas em cada estado são chamadas de atividades. As atividades são parte fundamental do processo definido pelo diagrama de atividades.
Signup and view all the flashcards
Condições de Transição
Condições de Transição
Condições que definem as transições entre os estados são usadas para determinar quando as atividades devem mudar. As transições são disparadas quando as condições forem satisfeitas.
Signup and view all the flashcards
Diagramas de atividade da UML
Diagramas de atividade da UML
Os diagramas de atividade da UML (Unified Modelling Language) são ferramentas poderosas para modelar o comportamento de sistemas, incluindo aplicações multi-processo. Eles permitem visualizar o fluxo de atividades, transições entre estados e interações entre diferentes componentes do sistema.
Signup and view all the flashcards
Aplicações multi-processo
Aplicações multi-processo
Uma aplicação multi-processo ou multi-tarefa consiste em vários processos ou tarefas que trabalham em conjunto para realizar uma função específica.
Signup and view all the flashcards
Swimlanes da UML
Swimlanes da UML
Swimlanes são um elemento de diagramas UML que representam diferentes processos ou partes de um sistema, separando visualmente as atividades que cada um executa.
Signup and view all the flashcards
Diagramas de atividade para processos
Diagramas de atividade para processos
Os diagramas de atividade podem ser adaptados para modelar cada processo dentro de uma aplicação multi-processo. Cada processo é representado como um conjunto de atividades conectadas por transições, que representam o fluxo de execução do processo.
Signup and view all the flashcards
Atividades de ação
Atividades de ação
As actividades de ação representam uma operação individual dentro de um diagrama de atividade, como uma operação matemática, uma requisição de dados ou uma atualização de um estado.
Signup and view all the flashcards
Atividades de subatividade
Atividades de subatividade
As atividades de subatividade no diagrama de atividade representam um conjunto de ações ou operações dentro de um processo, que podem até ser modeladas por outros diagramas de atividade.
Signup and view all the flashcards
Transições em diagramas de atividade
Transições em diagramas de atividade
As transições entre atividades em um diagrama de atividade podem ser condicionais ou incondicionais, dependendo de uma condição específica ou de um evento que precisa ocorrer para a próxima atividade acontecer.
Signup and view all the flashcards
Representação de atividades
Representação de atividades
As atividades podem representar operações, métodos, transferência de objetos entre processos e especificação dos objetos a transferir. Isso permite modelar de forma mais rica e precisa a interação entre os processos.
Signup and view all the flashcards
Padronização da UML
Padronização da UML
A linguagem gráfica standard para modelar aplicações multi-processo é a UML, o que facilita a comunicação entre desenvolvedores e a colaboração na criação de soluções para aplicações complexas.
Signup and view all the flashcards
Memória Partilhada em JAVA
Memória Partilhada em JAVA
A memória partilhada em JAVA é uma memória mapeada de um ficheiro que tem de ser conhecido dos vários processos através do path e nome do ficheiro.
Signup and view all the flashcards
Classe canalComunicacao
Classe canalComunicacao
A classe canalComunicacao
é uma classe que permite a comunicação entre processos JAVA através de memória partilhada. Permite partilhar dados entre diferentes processos.
O que é o FileChannel
?
O que é o FileChannel
?
O FileChannel
é um canal que conecta o conteúdo de um ficheiro ao buffer de memória compartilhada. Permite o acesso direto aos bytes do ficheiro.
Para que serve o MappedByteBuffer
?
Para que serve o MappedByteBuffer
?
O MappedByteBuffer
é uma região específica de memória que permite a leitura e escrita de dados compartilhados. É como uma janela para ver e editar os dados.
Para que serve o BUFFER_MAX
?
Para que serve o BUFFER_MAX
?
O BUFFER_MAX
é a dimensão máxima em bytes que o buffer de memória compartilhada pode armazenar. Controla a quantidade de dados que podem ser partilhados.
O que é o File
?
O que é o File
?
O File
é um objeto que representa um ficheiro no sistema. Define o caminho e nome do ficheiro.
Para que serve o buffer
?
Para que serve o buffer
?
O buffer
é uma região de memória que armazena dados compartilhados. É como um recipiente para armazenar os dados antes de serem partilhados.
O que é o canal
?
O que é o canal
?
O canal
é um objeto que permite a comunicação entre o buffer
e o File
. Ele permite que a memória compartilhada seja sincronizada com o ficheiro.
Para que serve o construtor da classe canalComunicacao
?
Para que serve o construtor da classe canalComunicacao
?
O construtor da classe canalComunicacao
é usado para inicializar os membros da classe, incluindo o ficheiro, FileChannel
e MappedByteBuffer
. É como a primeira etapa para configurar a comunicação.
O que é a comunicação por memória partilhada?
O que é a comunicação por memória partilhada?
A comunicação por memória partilhada é um método que permite a comunicação entre processos utilizando memória partilhada. É como uma área comum onde todos os processos podem trocar informações.
Signup and view all the flashcards
O que é um processo?
O que é um processo?
Um processo é uma unidade básica de execução em um sistema operacional. Ele representa um programa em execução, que possui seu próprio espaço de endereço e recursos, como memória e arquivos.
Signup and view all the flashcards
O que é uma tarefa?
O que é uma tarefa?
Uma tarefa é um bloco de trabalho dentro de um processo, geralmente representada por uma função (ou uma série de funções) que manipula dados do processo.
Signup and view all the flashcards
Como as tarefas são implementadas em Java?
Como as tarefas são implementadas em Java?
Um processo pode ser desenhado para conter múltiplas tarefas. Cada tarefa é implementada como uma classe Java que deriva da classe Thread
.
Como a JVM gerencia tarefas?
Como a JVM gerencia tarefas?
A máquina virtual Java (JVM) permite a execução de múltiplas tarefas ('Threads') dentro de um processo. Isso permite que um programa execute diferentes partes de sua lógica simultaneamente.
Signup and view all the flashcards
Como acessar a classe Thread?
Como acessar a classe Thread?
A classe Thread
é acessada através da biblioteca java.lang.Thread
e tem a declaração: public class Thread extends Object implements Runnable
Quais são as maneiras de definir uma classe do tipo Thread?
Quais são as maneiras de definir uma classe do tipo Thread?
Existem duas maneiras de definir uma classe do tipo Thread: 1. Herdando diretamente da classe Thread
2. Implementando a interface Runnable
.
Qual é a função do método start()?
Qual é a função do método start()?
O método start()
inicia a execução da tarefa, permitindo que ela seja executada em paralelo com o código principal do processo.
Qual é a função do método run()
?
Qual é a função do método run()
?
O método run()
é o coração da classe Thread
, definindo as ações que a tarefa realiza quando ela é executada.
Como as tarefas compartilham recursos?
Como as tarefas compartilham recursos?
A JVM permite que múltiplas tarefas compartilhem os recursos do processo-pai, o que requer mecanismos de sincronização para garantir que as tarefas não interfiram umas com as outras ao acessar dados compartilhados.
Signup and view all the flashcards
O que é memória compartilhada?
O que é memória compartilhada?
A memória compartilhada é um mecanismo de comunicação entre processos e tarefas onde os processos podem acessar e modificar diretamente os dados na memória.
Signup and view all the flashcards
Como criar um processo em Java?
Como criar um processo em Java?
Em Java, o processo pode ser criado utilizando a classe ProcessBuilder. O nome do processo e o caminho para o executável são parâmetros de entrada para a classe. A criação do processo ocorre através da instanciação da classe ProcessBuilder e chamada do método start()
. Exemplo:
ProcessBuilder pb = new ProcessBuilder("nomeProcesso");
Process p = pb.start(); // inicia o processo
Signup and view all the flashcards
Estados e Transições de um Processo
Estados e Transições de um Processo
Um processo pode estar em diferentes estados dependendo do momento. O diagrama de estados mostra as diferentes fases do ciclo de vida de um processo. As transições entre estados são representadas por setas que indicam os eventos que causam a mudança de estado.
Signup and view all the flashcards
Comunicação entre Processos
Comunicação entre Processos
A comunicação entre processos permite que diferentes processos compartilhem dados, recursos e controlem a sua execução. Em Java, a comunicação pode ser realizada através de vários mecanismos, como memória compartilhada ou mensagens.
Signup and view all the flashcards
Threads em Java
Threads em Java
Em Java, um processo pode ser dividido em múltiplas tarefas, chamadas de threads. Cada thread pode executar uma tarefa específica dentro do processo, tornando-o mais eficiente.
Signup and view all the flashcards
Sincronização de Threads
Sincronização de Threads
A sincronização entre threads é crucial para garantir a consistência e integridade dos dados. Por exemplo, em um sistema de banco, várias threads podem acessar a mesma conta bancária. A sincronização garante que as operações sejam executadas em ordem e de forma segura.
Signup and view all the flashcards
P(s) (ou 'acquire')
P(s) (ou 'acquire')
Uma operação que decrementa o valor de um semáforo quando este é maior do que zero.
Signup and view all the flashcards
Deadlock
Deadlock
Uma situação em que dois ou mais processos ficam bloqueados indefinidamente, esperando que um recurso seja libertado pelo outro.
Signup and view all the flashcards
Semáforo
Semáforo
Um objeto que controla o acesso concorrente a recursos em um sistema multi-processo.
Signup and view all the flashcards
Release()
Release()
Uma operação que permite a um processo liberar um recurso, sinalizando que ele está disponível para outros processos.
Signup and view all the flashcards
Swimlanes
Swimlanes
A função Swimlanes em um diagrama de atividade, representada por faixas de natação, serve para destacar visualmente os processos ou componentes do sistema que desempenham diferentes tarefas. Ela ajuda a visualizar a colaboração entre processos e a divisão de responsabilidades dentro do sistema.
Signup and view all the flashcards
Sockets por TCP
Sockets por TCP
A comunicação entre processos em Java pode ser realizada através de Sockets por TCP (Transfer Control Protocol), que fornece um mecanismo confiável e orientado à conexão para troca de dados entre processos em uma rede.
Signup and view all the flashcards
Sockets por UDP
Sockets por UDP
A comunicação entre processos em Java pode ser realizada através de Sockets por UDP (User Datagram Protocol), que oferece um protocolo leve e sem conexão para troca de dados entre processos em uma rede. É ideal para aplicações com baixa latência e onde a confiabilidade não é crítica.
Signup and view all the flashcards
Transições no Autômato Bloqueante
Transições no Autômato Bloqueante
As transições no autómato bloqueante são representadas como setas no diagrama de atividade, indicando a mudança de um estado para outro, dependendo de uma condição específica. Essas transições definem o fluxo de trabalho e determinam como o processo progride de uma etapa para a próxima.
Signup and view all the flashcardsStudy 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.