Mostrando postagens com marcador SISTEMAS OPERACIONAIS. Mostrar todas as postagens
Mostrando postagens com marcador SISTEMAS OPERACIONAIS. Mostrar todas as postagens

quarta-feira, 18 de setembro de 2019

ATIVIDADE DE LABORATÓRIO 2

LABORATÓRIO 2 Abra o Netbeans no seu computador e descreva o contexto de software do processo. -Nome: - PID: -UID Execute os seguintes passos: 
1. Execute o simulador SOsim e identifique as quatro janelas que são abertas na inicialização. Para esta experiência você pode fechar ou minimizar a janela da Gerência de Memória 
2. Crie um processo: janela Gerência de Processos / Criar. Analise o seguinte: 

1. Na janela Gerência de Processos, observe algumas informações sobre o contexto de software do processo como PID, prioridade, estado do processo e tempo de processador. 

2. Na janela Gerência de Processador, observe o processo transicionando entre estados. 

3. Na janela Gerência de Processador, movimente a barra de Clock de UCP e observe as variações ocorridas. Tendo feito isto, você seria capaz de responder, com base na observação do comportamento do processo criado, se o processo é I/O-bound ou CPU-bound? Justifique a resposta. ____________________________________________________________________________________________________ ____________________________________________________________________________________________________ ____________________________________________________________________________________________________ ____________________________________________________________________________________________________ Execute os seguintes passos: 
1. Reinicialize o simulador.

2. Crie um processo do tipo CPU-bound: janela Gerência de Processos / Criar | janela Criação de Processos / Criar (tipo de processo deve ser CPU-bound). 

3. Crie outro processo do tipo I/O-bound: janela Gerência de Processos / Criar | janela Criação de Processos / Criar (tipo de processo deve ser I/O-bound).

 Analise o seguinte: 
1. Na janela Gerência de Processos, observe as mudanças de estado dos dois processos. 
2. Na janela Gerência de Processador, observe o comportamento dos processos e as mudanças de contexto em função do tipo I/O-bound e CPU-bound. 
3. Na janela Gerência de Processos, compare a taxa de crescimento do tempo de processador dos dois processos. Tendo feito isto, você seria capaz de analisar os efeitos gerados no caso de redução do tempo gasto na operação de E/S pelo processo I/O-bound. ____________________________________________________________________________________________________ ____________________________________________________________________________________________________ Melhore esta experiência refazendo-a com mais um processo, que seja misto, tanto CPU-Bound como IO-Bound.

sexta-feira, 6 de setembro de 2019

ATIVIDADE DE INTERRUPÇÃO E EXCEÇÃO

#include <iostream>
 
using namespace std;
 
float divide(float x, float y) {
    if (y == 0) {
        throw 1;
    } else {
        return x/y;
    }
}
 
int main() {
    int a, b;
    cout << "Digite os valores: ";
    cin >> a >> b;
 
    try {
        cout << divide(a, b);
    } catch(int erro) {
        if (erro == 1) {
            cout << "Erro de divisao por zero" << endl;
        }
    }
 
    return 0;
}

quarta-feira, 4 de setembro de 2019

MINI TRABALHO 1

https://docs.google.com/document/d/11WM4KxOAFs7SrsC93cbKnnzfDsoeA0gFxrMHVJlSuAM/edit?usp=sharing

quarta-feira, 5 de junho de 2019

EXERCÍCIO SOBRE GERENCIAMENTO DE ARQUIVO




1) Sobre a gerência de arquivos podemos afirmar que:


a) os arquivos são um conjunto de programas armazenados na memória principal.
b) os arquivos representam dados que são apenas programas.
c) uma característica importante da gerência de arquivos é que o SO deve ser capaz reconhecer a quase totalidade dos tipos de arquivos.
d) os arquivos podem ser apenas de tipo alfa-numérico.
e) mesmo sem reconhecer um tipo de arquivo o SO pode oferecer suporte a ele.

2) Qual desses elementos não é um atributo de arquivo?

a) Tamanho.
b) Dono.
c) Data de criação.
d) Hora de criação.
e) Fechamento.

3) Sobre gerência de espaço livre podemos afirmar que:

a) a criação de arquivos não exige um controle dos blocos dos discos livres.
b) quando um arquivo é eliminado, o espaço livre é removido da estrutura para que não seja reutilizado.
c) o modo mais simples de implementar o controle de espaço livre é por listas encadeadas.
d) outra solução para a gerência de espaço livre é que faz uso de uma tabela de blocos livres.
e) uma das desvantagens em mapas de bits é o consumo de espaço em disco para armazenamento do caminho de acesso.

4) Qual das ações abaixo não faz parte do gerenciador de arquivos?

a) Alocar e desalocar espaço na memória.
b) Criar e excluir arquivos.
c) Criar e excluir diretórios.
d) Mapear arquivos no armazenamento secundário.
e) Permitir Backup.

5) Sobre as técnicas de alocação de espaço em disco, podemos afirmar que:

a) na alocação contígua, cada bloco do arquivo pode estar armazenado em um setor distinto da unidade de disco.
b)na alocação não-contígua, o armazenamento físico não corresponde à organização lógica do arquivo.
c) na alocação contígua, o armazenamento físico não corresponde à organização lógica do arquivo.
d) na alocação não-contígua, os dados são organizados de maneira que o primeiro bloco de dados ocupa o primeiro setor alocado e assim sucessivamente.
e) na alocação contígua existe um elemento de controle chamado bloco de índice.

quarta-feira, 22 de maio de 2019

EXERCÍCIOS SOBRE GERENCIAMENTO DE MEMÓRIA

1) Qual a relação entre endereço físico e virtual ? Quem Gerencia?
2) Qual o tipo de fragmentação apresentado pelos métodos de gerência de
memória baseados em partições fixas e por partições variáveis?
3)Explique o que é a atividade de swapping e diga como ela pode
prejudicar o desempenho do sistema computacional.
4) Qual a importância do gerenciamento de memória para o programador,
avaliando o aspecto da programação utilizando sub-rotinas?

5) Em um sistema com gerenciamento de memória paginado o
endereço é composto por 32 bits, sendo 10 reservados para a
identificação da página. Cada endereço ocupa 16 bits.
Qual o tamanho máximo do processo?
6) (MEC 2008) Existem ferramentas para monitoramento e
diagnóstico de ambientes computacionais.
O monitoramento de memória pode ser realizado por meio de
estatísticas que possibilitam medir o fluxo de páginas da
memória do sistema para os dispositivos de armazenamento
de massa anexos.
Taxas altas podem significar que o sistema tem pouca memória
e está com problemas, gastando mais recursos do sistema para mover
páginas para dentro e para fora da memória do que rodar aplicações.
Esse problema é denominado:
7) Ao dividir a memória física em blocos de tamanho fixo (quadros)
e dividir a memória lógica (espaço de endereçamento de processos)
em blocos do mesmo tamanho (páginas) e permitir que as páginas
sejam carregadas em quaisquer quadro disponíveis, estaremos implementando:
Itens:
a)      Paginação de memória
b)      Alocação de memória
c)      Memória virtual
d)      Segmentação de memória
8)  Um processo referencia 5 páginas, A, B, C, D e E na
seguinte ordem:
A - B -C -D - A - B -E -A -B -C -D -E

Considerando que estarão alocadas 4 molduras para este processo e
que este sistema utiliza a estratégia FIFO (primeiro que entra é o primeiro que sai)
Qual a quantidade de page fault (falha de página) para esta execução?

quarta-feira, 8 de maio de 2019

Laboratório Deadlock- Sincronização de Procesos

public class TestThread {
   public static Object Lock1 = new Object();
   public static Object Lock2 = new Object();

   public static void main(String args[]) {
      ThreadDemo1 T1 = new ThreadDemo1();
      ThreadDemo2 T2 = new ThreadDemo2();
      T1.start();
      T2.start();
   }

   private static class ThreadDemo1 extends Thread {
      public void run() {
         synchronized (Lock1) {
            System.out.println("Thread 1: Adquirindo lock 1...");

            try { Thread.sleep(10); }
            catch (InterruptedException e) {}
            System.out.println("Thread 1: Esperando for lock 2...");

            synchronized (Lock2) {
               System.out.println("Thread 1: Adquirindo lock 1 & 2...");
            }
         }
      }
   }
   private static class ThreadDemo2 extends Thread {
      public void run() {
         synchronized (Lock2) {
            System.out.println("Thread 2: Adquirindo lock 2...");

            try { Thread.sleep(10); }
            catch (InterruptedException e) {}
            System.out.println("Thread 2: Esperando for lock 1...");

            synchronized (Lock1) {
               System.out.println("Thread 2: Adquirindo lock 1 & 2...");
            }
         }
      }
   } 
}
 
Visitas