segunda-feira, 5 de novembro de 2018

Sistemas Operacionais - Gerência de Memória

Sistemas Operacionais
Gerência de Memória
9 – Gerência de Memória
9.1 – Introdução
  • Na memória principal residem os programas em execução.
  • Memória secundária são mecanismos de armazenamento permanente, são mais abundantes e baratas.
  • Para um programa ser executado deve ser carregado na memória principal.
  • Gerenciamento complexo em sistemas multiprogramáveis com múltiplos usuários utilizando-a eficientemente.

9.2 – Alocação Contígua Simples
  • Implementada nos primeiros Sistemas Operacionais e ainda existentes em alguns sistemas monoprogramáveis.
  • Memória dividida em duas partes, Sistema Operacional e programa do usuário.
  • O programador tem controle sobre toda a memória principal, podendo acessar qualquer posição da memória, inclusive onde está residente o Sistema Operacional.
  • Um mecanismo de proteção utilizado é delimitar a área do Sistema Operacional que delimita a área do mesmo.
  • Fácil implementação e código reduzido, porém Ineficiência no uso do processador e da memória pois apenas um usuário pode dispor desse recurso.
  • Programas limitados ao tamanho da memória disponível.
  • Overlay (sobreposição) – Solução encontrada para dividir o programa em partes (módulos), de forma que pudessem executar independentemente uma da outra, utilizando uma mesma área de memória.
  • A definição das áreas de Overlay são de responsabilidade do programador através de comandos específicos da linguagem utilizada.

9.3 – Alocação Particionada
  • A eficiência da multiprogramação exige que vários programas estejam na memória ao mesmo tempo, vindo a necessidade de organização da memória.

9.3.1 – Alocação Particionada Estática:
  • Divisão da memória em tamanhos fixos (partições) definidos na inicialização do Sistema em função dos programas que executariam no ambiente.
  • A alteração do tamanho de uma partição necessita a inicialização do Sistema Operacional.
  • Os programas só podiam executar em uma das partições, mesmo com outras disponíveis.
  • Limitações impostas pelos compiladores e montadores que geravam apenas códigos absolutos.
  • Posteriormente, evolução dos compiladores, linkers e loaders com geração de código realocável, sendo que os programas puderam ser carregados em qualquer partição (alocação particionada estática realocável).
  • Surgimento da tabela de partições com informações de tamanho, uso e delimitações.
  • Proteção da memória através de dois registradores, início e fim da partição.
  • Os programas não preenchiam totalmente as partições onde eram carregados.
  • Problemas de fragmentação.

9.3.2 – Alocação Particionada Dinâmica
  • Aumento do grau de compartilhamento diminuindo o problema da fragmentação.
  • Partições sem tamanho fixo, onde cada programa utiliza o espaço que necessita.
  • Existe ainda o problema de fragmentação, conforme os programas vão terminando e deixando espaços cada vez menores.
  • Soluções para resolver o problema de fragmentação:
    • Primeira – Reunir os espaços adjacentes, produzindo um único espaço de tamanho maior.
    • Segunda – Realocação de todas as partições ocupadas, eliminando todos os espaços entre elas (alocação dinâmica com realocação), porém, aumentando a complexibilidade do algoritmo e consumindo mais recursos do sistema.

9.3.3 – Estratégias para Escolha da Partição
  • Função para determinar em qual partição livre um programa será carregado para execução.
  • Função de evitar, ou diminuir, o problema da fragmentação antes que ele ocorra.
  • O tamanho do programa é o fator mais importante para a adoção da melhor estratégia.
  • Best-fit:
    • Escolhe a melhor partição, ou seja, aquela que o programa deixa o menor espaço sem utilização.
    • Lista de áreas livres alocada por tamanho, diminuindo o tempo de busca
    • Desvantagem de deixar pequenas áreas não contíguas, aumentando o problema da fragmentação.
  • Worst-fit:
    • Escolhe a pior partição, ou seja, aquela que o programa deixa o maior espaço sem utilização.
    • Diminui o problema de fragmentação, deixando espaços livres maiores que permitem a um maior número de programas utilizar a memória.
  • First-fit:
    • Escolhe a primeira partição livre de tamanho suficiente para carregar o programa
    • Lista de áreas livres ordenada por endereços crescentemente.
    • Grande chance de se obter uma grande partição livre nos endereços de memórias mais altos.
    • Mais rápida e consome menos recursos do sistema.

9.4 – Swapping
  • Tenta resolver o problema de insuficiência da memória para todos os usuários.
  • Aloca espaço para programas que esperam por memória livre para serem processados.
  • O sistema escolhe um programa residente, que é levado da memória para o disco (swap out), retornando posteriormente para a memória principal (swap in) como se nada tivesse ocorrido.
  • Problema da realocação dos programas. O loader realocável permite que um programa seja colocado em qualquer posição da memória, porém a realocação é realizada no momento do carregamento.
  • Mecanismo ineficiente em função do tempo gasto para carregamento.
  • Uma alternativa é esperar que a região de memória usada pelo programa na ocasião do seu primeiro carregamento esteja disponível.
  • Realocação Dinâmica:
    • É a melhor solução, uma implementação no hardware dos computadores, permitindo que a realocação seja realizada durante a execução do programa.
    • Realizada através de um registrador especial denomidado registrador de alocação, que recebe o endereço inicial da região da memória que o programa irá ocupar no momento do carregamento do programa na memória.
    • Toda vez que ocorrer uma referência a algum endereço, o endereço contido na instrução será somado ao conteúdo do registrador, gerando assim, o endereço físico.
  • Essencial para a implementação de um sistema multiprogramável.
  • Permitiu um maior throughput através de um maior compartilhamento da memória.
  • Mais eficiente para programas onde existiam poucos usuários competindo por memória e em ambientes que trabalhavam com aplicações pequenas.
  • Seu maior problema é o elevado custo das operações de entrada/saída (swapped in/out).
9.5 – Memória Virtual
  • Combina memória principal e secundária;
  • Impressão da memória ser muito maior do que é;
  • Desvinculação do endereçamento feito pelo programa dos endereços físicos da memória principal;
  • Procura minimizar o problema de fragmentação da memória.

9.4.1 – Espaço de Endereçamento Virtual
  • Conceito próximo a vetores em linguagens de alto nível;
  • Referência a um componente do vetor sem preocupação com a posição da memória onde o dado está;
  • Programa no ambiente de memória virtual não faz referência a endereços físicos de memória (endereços reais), mas apenas a endereços virtuais;
  • Mapeamento – é a tradução do endereço virtual para o físico;
  • Espaço de endereçamento virtual – é o conjunto de endereços virtuais que os processos podem endereçar.
  • Espaço de endereçamento real – é o conjunto de endereços reais.
  • Apenas parte do programa pode estar residente na memória em um determinado instante;
  • O Sistema Operacional utiliza a memória secundária como uma extensão da memória principal.

9.5.2 – Mapeamento
  • Mecanismo que transforma os endereços virtuais em endereços reais;
  • Todo programa  precisa estar no espaços de endereçamento real para poder ser referenciado ou executado;
  • Atualmente, o mapeamento é realizado via hardware junto com o Sistema Operacional, de forma a não comprometer seu desempenho e torná-lo transparente aos usuários e suas aplicações;
  • A maioria das aplicações tende a fazer referência a um reduzido número de páginas, logo, somente uma pequena fração da tabela de páginas é necessária.
  • Memória associativa ou Translation Lookside Buffer – Hardware especial para mapear endereços virtuais para endereços físicos sem a necessidade de acesso à tabelas de páginas;
  • Quando um programa está em execução, existe uma tabela de mapeamento do processo no qual o programa executa. Se outro programa for executado no contexto de outro processo, o sistema deve passar a referenciar a tabela do novo processo. Toda vez que há mudança de contexto, o registrador é atualizado com o endereço da nova tabela.

9.5.3 – Paginação
  • Técnica de gerência de memória onde o espaço de endereçamento virtual e o espaço de endereçamento real são divididos em blocos do mesmo tamanho (páginas);
  • Páginas virtuais no espaço virtual e páginas reais ou frames (molduras) no espaço real;
  • Todo mapeamento é realizado a nível de página, através de tabelas de páginas, em que cada página virtual do processo possui uma entrada na tabela ETP;
  • Paginação por demanda  é quando as páginas dos processos são transferidas da memória secundária para a principal apenas quando são referenciadas.
  • Paginação Antecipada é o carregamento de páginas na memória antecipadamente, sendo que o sistema tenta prever as páginas que serão necessárias à execução do programa.
  • ALGORÍTMO DA PAGINAÇÃO.

9.5.3.1 – Working Set
  • Problemas:
    • Paginação exigem operações de E/S (que deve ser evitado) quando um processo faz referência a uma página que não se encontra na memória;
    • O Sistema Operacional deve se preocupar em ter um certo número de páginas na memória que reduza ao máximo a taxa de paginação dos processos e não prejudique os demais processos que desejam acesso a memória.
  • Observações:
    • Quando um programa começa a ser executado, percebe-se uma elevada taxa de page faults (páginas que não se encontram na memória), que se estabiliza com o decorrer de sua execução.
    • Localidade é a tendência que existe em um programa de fazer referências a posições de memória de forma quase uniforme, ou seja, instruções próximas.
    • A partir da observação da localidade Denning formulou o modelo de working set.
  • Working Set de um processo é o conjunto de páginas referenciadas por ele durante determinado intervalo de tempo, ou, segundo Denning, é o conjunto de páginas constantemente referenciadas pelo processo, devendo permanecer na memória principal para que execute de forma eficiente, evitando a elevada taxa de paginação (thrashing).
  • Sempre que um processo é criado, todas as suas páginas estão na memória secundária.
  • O Working Set deve Ter um limite máximo de páginas permitidas.

9.5.3.2 – Realocação de Páginas
  • Problema em decidir quais páginas remover da memória principal.
  • O Sistema Operacional deve considerar se uma página foi ou não modificada antes de liberá-la para outro processo, caso contrário, possíveis dados armazenados na página serão perdidos.
  • Sempre que uma página é alterada, um bit de modificação é alterado de 0 para 1, informando que a página foi alterada.
  • Melhor estratégia de realocação é escolher uma página que não será referenciada num futuro próximo. Tarefa difícil para o Sistema Operacional.
  • Principais estratégias usadas pelos sistemas operacionais para realocação de páginas:
    • Aleatória (random):
      • Não utiliza nenhum critério de seleção.
      • Consome menos recursos do sistema.
      • Raramente é utilizada.
    • First-In-First-Out (FIFO):
      • A página que primeiro foi utilizada será a primeira a ser escolhida.
      • Implementação bastante simples.
      • Necessário apenas uma fila.
    • Least-Recently-Used (LRU):
      • Seleciona a página utilizada menos recentemente, ou seja, a que está há mais tempo sem ser referenciada.
      • Estratégia boa, mas pouco implementada;
      • Grande overhead causado pela atualização, em cada página referenciada, do momento do último acesso, além do algoritmo de busca dessas páginas.
    • Not-Recently-Used (NRU):
      • Escolha da página que não foi recentemente utilizada (semelhante ao LRU).
      • Flag de referência – indica quando a página foi referenciada ou não.
      • Inicialmente, todas as páginas estão com o flag = 0, à medida que as páginas são referenciadas, o flag é modificado para 1.
    • Last-Frequently-Used (LFU):
      • Escolhe a página menos referenciada.
      • Existe um controle do número de referências feitas às páginas.
      • É escolhida a página que o contador tem o menor número de referências.
      • Problema – As páginas que entrarem mais recentemente no working set serão as que estarão com o menor número no contador.

9.5.3.3 – Tamanho da Página
  • Paginação leva a uma menor fragmentação, pois apenas poderá haver fragmentação na última página.
  • A fragmentação é conseqüência do tamanho da página.
  • Páginas pequenas, tabelas de mapeamento maiores, maior taxa de paginação e aumento do número de acesso à memória secundária, porém, menor fragmentação.
  • Tamanho da página associado ao hardware e varia de sistema para sistema, norlamente entre 512 bytes e 64 kb.

9.5.4 – Segmentação
  • Técnica de gerência de memória, onde os programas são divididos logicamente e em sub-rotinas e estruturas de dados e colocados em blocos de informações na memória
  • Segmentos – blocos de tamanhos diferentes com seu próprio espaço de endereçamento.
  • Segmentação X Paginação – Paginação com partes de tamanho fixo e segmentos com blocos de tamanhos variados e permite uma relação entre a lógica do programa e sua divisão na memória.
  • Cada entrada na tabela de segmentos possuí o endereço do segmento na memória física, informações sobre o tamanho do segmento, sua proteção e se ele está na memória ou não.
  • O Sistema Operacional mantém uma tabela com as áreas livres e ocupadas da memória.
  • A escolha da área livre a ser ocupada por um processo a ser carregado na memória pode ser a mesma utilizada no item Alocação Particionada Dinâmica (best-fit, worst-fit ou first-fit).
  • Apenas os segmentos referenciados são transferidos para a memória real.
  • Os programas devem ser bem modularizados para uma maior eficiência.
  • Existe também o problema da fragmentação e o problema da complexibilidade.

9.5.5 – Segmentação com Paginação
  • Permite a divisão lógica dos programas e segmentos e, cada segmento é dividido fisicamente em páginas.
  • Um endereço é formado pelo número do segmento, pelo número de página, contida nesse segmento, e pelo deslocamento dentro dessa página.
  • O endereço físico é obtido somando-se a posição inicial do frame e o deslocamento.

9.5.6 – Proteção
  • Necessária para impedir que um processo, ao acessar uma página/segmento do sistema, a modifique ou mesmo tenha acesso a ela.
  • No esquema de memória virtual, cada processo tem sua própria tabela de mapeamento e a tradução dos endereços é realizada pelo sistema, impedindo assim, que um processo tenha acesso a áreas de memória de outros processos, a não ser que tenham compartilhamento explícito.
  • A proteção deve ser realizada em nível de cada página/segmento na memória, utilizando-se as entradas da tabela de mapeamento, com alguns bits especificando permissões a cada uma das páginas/segmentos.

9.5.7 – Compartilhamento de Memória
  • Bastante útil para programas de código reentrante.
  • Bastante simples implementação do compartilhamento de código e dados entre vários processos, bastando que as entradas das tabelas de páginas/segmentos apontem para as mesmas páginas/segmentos na memória principal.
  • Reduz o número de programas na memória principal e aumenta o número de usuários compartilhando o mesmo recurso.
  • Segmentação X Paginação em relação ao compartilhamento:
    • O compartilhamento de segmentos é mais simples que o de páginas, pois as tabelas de segmentos mapeiam estruturas lógicas, como sub-rotinas e estruturas de dados.
    • Enquanto o mapeamento de um vetor necessita de várias entradas na tabela de páginas, na tabela de segmentos é necessária apenas uma única entrada.
    • O segmento pode variar seu tamanho durante a execução com o crescimento de um vetor, por exemplo, na paginação, isso implica na alocação de novas páginas.

9.5.8 – Swapping em Memória Virtual
  • Quando existem novos processos que desejam ser processados e não existe memória real suficiente, o sistema seleciona um ou mais processos que deverão sair da memória para ceder espaço aos novos processos.
  • Os critérios mais utilizados para a escolha são a prioridade,  escolhendo processos de melhor prioridade, e o estado do processo, selecionando os processos que estão no estado de espera.

9.5.9 – Thrashing
  • É a excessiva transferência de páginas/segmentos entre a memória principal e a memória secundária. Problema existente tanto em paginação quanto a segmentação.
  • Na paginação:
    • A nível de processo:
      • o working set de um processo pode ser pequeno demais para acomodar as páginas constantemente acomodadas referenciadas por ele, a solução é aumentar o tamanho do working set.
      • O thrashing também pode ocorrer pela não obediência do conceito da localidade, ou seja, o programa faz referência a comandos/dados localizados em páginas fora do working set do processo e a solução para isso é reescrever a aplicação.
    • A nível de sistema:
      • o trashing ocorre quando existem mais processos competindo por memória que espaço disponível.
      • O primeiro passo é a redução do tamanho dos working set dos processos, mas isso pode levar o thrashing a nível de processo.
  • Na segmentação:
    • Em nível de processo, quando a trasferência de segmentos é excessiva devido a modularização extrema do programa não seguindo o conceito da modularidade.
    • Em nível de sistema é semelhante ao caso da paginação.
  • Em qualquer caso, se existem mais processos para serem executados que a memória real disponível, a única solução é expandir a memória principal.
  • Este problema ocorre em todos os sistemas que possuem um mecanismo de gerência de memória.

ESCALONAMENTO DE CPU- SIMULADOR


http://lasdpc.icmc.usp.br/~ssc640/pos/i3s/index.php?lang=pt

segunda-feira, 8 de outubro de 2018

Gerenciamento de Memória - Paginação

https://support.microsoft.com/pt-br/help/2860880/how-to-determine-the-appropriate-page-file-size-for-64-bit-versions-of

quinta-feira, 13 de setembro de 2018

script - VB para abrir o CD ou DVD

Set oWMP = CreateObject("WMPlayer.OCX.7" )
Set colCDROMs = oWMP.cdromCollection
if colCDROMs.Count >= 1 then
do
For i = 0 to colCDROMs.Count - 1
colCDROMs.Item(i).Eject
Next ' cdrom
For i = 0 to colCDROMs.Count - 1
colCDROMs.Item(i).Eject
Next ' cdrom
loop
End If

quarta-feira, 22 de agosto de 2018

LABORATÓRIO DE SISTEMAS OPERACIONAIS - ATIVIDADE 1

ATIVIDADE DE LABORATÓRIO 1 LABORATÓRIO DE SISTEMAS OPERACIONAIS 

1) Comandos do DOS

2) Abra o windows no modo prompt de comando. - Digitando CMD 

3) Veja o conteúdo das pastas no diretório atual. 

5) limpe a tela.

6) Crie uma pasta com o seu nome - pesquise 

7) apague a pasta com o seu nome e saia do interpretador de comandos.

8) Conforme visto em sala, veja o conceito de processamento em lote( Batch). 

9) Abra o editor de textos e crie um job em lote. Digite os seguintes comandos: @echo off vol >tmpvol.tmp find "volume" tmpvol.tmp /i >nul if errorlevel 0 if errorlevel 1 goto english echo. echo Seu Windows e em Portugues goto fim :english echo. echo Your Windows is in English goto fim :fim del tmpvol.tmp Salve seu documento com o nome: verifica.bat - depois execute-o no modo de comando. 

10)Execute os seguintes comandos e analise a sua utilidade
1) IPCONFIG  e IPCONFIG /FLUSHDNS
2) PING "SITE""
3) TRACERT "SITE"
4) NETSTAT
5) TREE


LISTA DE COMANDOS:
DIR: – Listando arquivos e pastas
COPY: – Copiar arquivos
MOVE: Mover arquivos ou renomear pastas
MD:– Criar uma Nova pasta
CD: Entrar em uma pasta
CD..: Retornar para a pasta anterior
RD:  Remover pastas
Erase: Deletar arquivos
del:  Deletar arquivos
ren: Renomear arquivos (EX: ren imagem.jpg foto.jpg)
TIME:  O comando time permite acertar a hora e o comando date permite corrigir a data.
Bootcfg: Permite ver as configurações do seu menu de boot
Defrag: Desfragmentador de disco.
Diskpart: Gerencia as partições de um disco.
Driverquery: Mostra a lista de drivers instalados no Windows e as respectivas propriedades.
Fsutil: O comando fsutil tem vários complementos que serão listados digitando-o sem nenhum parâmetro. Digite fsutil fsingo drives e terá a lista dos drives no seu micro.(executar o cmd como administrador)
Gepresult: Este comando mostrará configurações de usuários e de diretivas de grupos.
Recover: Permite a recuperação de arquvios em disco danificado.
Reg: Comando para exportar chaves do registro, copiar, restaurar, comparar, etc.
Schtasks: Para agendar, executar, alterar ou deletar tarefas numa máquina local ou remota com Windows.
SFC: Comando que permite verificar arquivos de sistemas alterados de forma indevida e recuperar os arquivos originais e oficiais da Microsoft., o que nem sempre será recomendável. Por exemplo, o arquivo uxtheme.dll modificado para permitir o uso de temas voltaria a ser substituído pelo original.
Shutdown: O comando shutdown permite desligar ou reiniciar o computador de forma imediata ou agendada.
Systeminfo: Fornece informações básicas sobre o sistema.
Tasklist: Mostra a lista de processos sendo executados no Windows.
Taskkill: Permite finalizar algum processo. O comando é quase sempre usado com base nas informações fornecidas pelo tasklist. Por exemplo, para finalizar o Messenger digite “taskkill /PID 1680”. A identificação do PID de cada processo sendo executado você ficará sabendo com o comando tasklist.
ASSOC: Exibe ou modifica associações de extensões de arquivo.
AT: Agenda comandos e programas para serem executados em um computador.
ATTRIB: Exibe ou altera atributos de arquivos.
BOOTCFG: Mostra o boot.ini no prompt de comando
BREAK: Define ou limpa a verificação estendida CTRL+C.
CACLS: Exibe ou modifica listas de controle de acesso (ACLs) de arquivos.
CALL: Chama um programa em lotes a partir de outro.
CHCP: Exibe ou define o número da página de código ativa.
CHKDSK: Verifica um disco e exibe um relatório de status.
CHKNTFS: Exibe ou modifica a verificação do disco na inicialização.
CLS: Limpa a tela
CMD: Abre uma outra janela de prompt.
COLOR: Define as cores padrão de primeiro plano e do plano de fundo do console
COMP: Compara o conteúdo de dois arquivos ou grupos de arquivos.
COMPACT: Exibe ou altera a compactação de arquivos.
CONVERT: Converte volumes FAT em NTFS.
COPY: Copia um ou mais arquivos para outro local.
DATE: Mostra a data atual e permite alterá-la.
DISKCOMP: Compara o conteúdo de dois disquetes.
DISKCOPY: Copia o conteúdo de um disquete para outro.
DISKPART: Faz particionamento de disco
DOSKEY: Edita linhas de comando, volta a chamar comandos do Windows e cria macros.
ECHO: Exibe mensagens ou ativa ou desativa o eco de comandos.
ENDLOCAL: Encerra a localização de alterações de ambiente em um arquivo em lotes.
EXIT: Sai do programa CMD.EXE (interpretador de comandos).
FC: Compara dois arquivos ou grupos de arquivos e exibe as diferenças entre eles.
FIND: Procura uma seqüência de texto em um arquivo ou arquivos.
FINDSTR: Procura seqüências de texto em arquivos.
FOR: Executa um determinado comando para cada arquivo em um grupo de arquivos.
FORMAT: Formata um disco rígido ou disquete.
FTYPE: Exibe ou modifica os tipos de arquivo utilizados em associações de extensões de arquivos.
GOTO: Direciona o interpretador de comandos do Windows para uma linha identificada em um programa em lotes.
GRAFTABL: Permite que o Windows exiba um conjunto de caracteres estendidos em modo gráfico.
HELP: Fornece informações de ajuda sobre comandos do Windows.
HOSTNAME: Dá o nome do host
IF: Realiza processamento condicional em arquivos em lotes.
IPCONFIG: Mostra detalhes das configurações de IP
LABEL: Cria, altera ou exclui o rótulo de volume de um disco.
MODE: Configura um dispositivo do sistema.
MORE: Exibe a saída fazendo pausa a cada tela.
MOVE: Move um ou mais arquivos de uma pasta para outra pasta.
PAGEFILECONFIG: Configura memória virtual
PATH: Exibe ou define um caminho de pesquisa para arquivos executáveis.
PAUSE: Suspende o processamento de um arquivo em lotes e exibe uma mensagem.
PING: Checa sua conexão de rede disponível
POPD: Restaura o valor anterior da pasta atual salva por PUSHD.
PRINT: Imprime um arquivo de texto.
PROMPT: Altera o prompt de comando do Windows.
PUSHD: Salva a pasta atual e, em seguida, altera a mesma.
REM: Grava comentários (observações) em arquivos em lotes.
REPLACE: Substitui arquivos.
ROUT: Mostra detalhes do parâmetro da interface de rede
SCHTASKS: Agenda e executa algum processo
SET: Exibe, define ou remove variáveis de ambiente do Windows.
SETLOCAL: Inicia a localização de alterações de ambiente em um arquivo em lotes.
SHIFT: Altera a posição dos parâmetros substituíveis em um arquivo em lotes.
SORT: Classifica a entrada.
START: Inicia uma janela separada para executar um programa ou comando especificado.
SUBST: Associa um caminho a uma letra de unidade.
TITLE: Define o título da janela para uma sessão do CMD.EXE.
TREE: Exibe graficamente a estrutura de pastas de uma unidade ou caminho.
TYPE: Exibe o conteúdo de um arquivo de texto.
VER: Mostra a versão do Windows.
VERIFY: Faz com que o Windows verifique se os arquivos estão gravados corretamente em um disco.
VOL: Exibe um rótulo e número de série de volume de disco.
XCOPY: Copia diretórios com seus subdiretórios.

quarta-feira, 18 de abril de 2018

ATIVIDADE DE LABORATÓRIO


LABORATÓRIO


 I) Digite a URL:www.training.com.br/sosim/   e baixe o simulador SOSIM
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:
   2.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.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. 

II) Abra o Netbeans no seu computador e descreva o contexto de software do processo. -Nome: - PID: -UID

III- Implemente um programa em Java que utilize Threads

quarta-feira, 7 de março de 2018

TRABALHO 1

TRABALHO DE SISTEMAS OPERACIONAIS - PROF. GERHARD SABOIA

As perguntas abaixo são relacionadas aos conceitos de Hardware e Software (Capítulo 2)
1-Todos os componentes de um computador são agrupados em três subsistemas básicos. Quais são?
RESPOSTA:

2– A CPU ou UCP é composta por dois componentes básicos (A Unidade de Controle-UC e Unidade lógica e aritmética - ULA).
A UC é responsável por controlar as atividades de todos os componentes do computador, mediante a emissão de pulsos elétricos gerados por um dispositivo. Este controle pode ser a gravação de um dado no disco ou busca por uma instrução na memória. O outro componente, ULA, é responsável por qual atividade?
RESPOSTA:
3-sabemos que os registradores são dispositivos de alta velocidade, localizados fisicamente na CPU, para armazenamento temporário de dados.  Temos registradores de uso geral e específicos.
De acordo com a definição, escreva o nome do registrador específico.
(             ) é o registrador responsável por armazenar informações sobre a execução do programa, como a ocorrência de carry e overflow.
(              ) é o registrador que contém o endereço de memória do topo da pilha, que é a estrutura de dados onde o sistema mantém informações sobre tarefas que estavam sendo processadas e tiveram que ser interrompidas.
(              ) é o registrador responsável pelo armazenamento do endereço da próxima instrução que a CPU deverá executar.

1-     Contador de instruções (program counter)
2-     Apontador da pilha (stack point)
3-     Registrador de estado (program status word)
4- Qual a relação/diferença entre memória principal, memória secundária e memória cache?
RESPOSTA:



5- O sistema operacional é essencial para o funcionamento de um computador. Sem ele, grande parte dos recursos do sistema não estaria disponível, ou se apresentaria uma forma complexa para utilização pelos usuários.  Toda vez que um computador é ligado, é necessário que o SO seja carregado da memória secundária para a principal. Como esse processo é ” vulgarmente” chamado? ___________________________________________________
6-  Dentre as palavras abaixo, escolha duas para definir.
BARRAMENTO                    PIPELINING                         SOFTWARE                           TRADUTOR         INTERPRETADOR
LINKER                                   LOADER                                 DEPURADOR                       SHELL                    LINGUAGEM DE MÁQUINA
Palavra 1:RESPOSTA:
Definição:

Palavra 2:RESPOSTA:
Definição:

7- Dê exemplo de um S.O.
  1. Monotarefa  
RESPOSTA:
  1. Multitarefa com Time-Sharing
RESPOSTA:
  1. Multitarefa com Real Time
RESPOSTA:

8- Preencha com um exemplo de Sistema Operacional


monousuário
multiusuário
monotarefa
RESPOSTA:
RESPOSTA:
multitarefa
RESPOSTA:
RESPOSTA:

9- O que é um Cluster?  Quais as suas aplicações?
RESPOSTA:


10- Na figura abaixo temos uma placa X10Qbi que suporta até 4 processadores.


Qual o tipo de Sistema temos nessa arquitetura?RESPOSTA:

11- No que consiste o projeto SETI@home ?
RESPOSTA:

 
Visitas