1 / 38

Trabalho

Trabalho. Grupo 01 – Sistemas de arquivos (apresentação 29/04 e 06/05) Grupo 02 – Sistemas distribuídos (apresentação 29/04 e 06/05) Grupo 03 – Gerência de Processos; Conceito de processo (apresentação 13/05) Grupo 4 – O Núcleo do Sistema Operacional (apresentação 13/05). Sistema de arquivos.

gaura
Télécharger la présentation

Trabalho

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Trabalho • Grupo 01 – Sistemas de arquivos (apresentação 29/04 e 06/05) • Grupo 02 – Sistemas distribuídos (apresentação 29/04 e 06/05) • Grupo 03 – Gerência de Processos; Conceito de processo (apresentação 13/05) • Grupo 4 – O Núcleo do Sistema Operacional (apresentação 13/05)

  2. Sistema de arquivos • Todos nós sabemos que dados - sejam eles partes de programas ou dados propriamente dito, como um texto ou uma planilha - devem ser armazenados em um sistema de memória de massa, já que a memória (RAM) do micro é apagada quando desligamos o computador. Memória de massa é o nome genérico para qualquer dispositivo capaz de armazenar dados para uso posterior, onde incluímos disquetes, discos rígidos, CD-ROMs, ZIP drives, etc . • Dados são armazenados em forma de arquivos e a maneira com que os arquivos são armazenados e manipulados dentro de um disco (ou melhor dizendo, dentro de um sistema de memória de massa) varia de acordo com o sistema operacional.

  3. A capacidade de armazenamento • Na maioria das vezes, um disco é dividido em pequenas porções chamadas setores. Dentro de cada setor cabem 512 bytes de informação. Multiplicando-se o número total de setores de um disco por 512 bytes, teremos a sua capacidade de armazenamento. • No caso de um disco rígido, ele possui na verdade vários discos dentro dele. Cada face de cada disco é dividida em círculos concêntricos chamados cilindros ou trilhas. Em cada trilha temos um determinado número de setores. É claro que toda esta divisão é invisível, pois é feita magneticamente. Para sabermos qual o número total de setores de um disco rígido, basta multiplicarmos sua geometria, ou seja, o seu número de cilindros, lados e setores por trilha. Um disco rígido que possua a geometria 2448 cilindros, 16 cabeças e 63 setores por trilha, terá 2448 x 16 x 63 = 2.467.584 setores. Multiplicando-se o número total de setores por 512 bytes, teremos sua capacidade total, no caso 1.263.403.008 bytes.

  4. A capacidade de armazenamento Importante notar que 1 KB não representa 1.000 bytes, mas sim 1.024, assim como 1 MB não representa 1.000.000 de bytes, mas sim 1.048.576. Muita gente arredonda e acaba errando nas contas. Lembre-se: 1 KB = 210, 1 MB = 220 e 1 GB = 230. No exemplo dado, o disco rígido seria de 1,18 GB (basta dividir a capacidade que encontramos em bytes por 230 para encontrarmos o resultado em gigabytes) e não 1,26 GB como seria de se supor.

  5. O sistema de arquivos FAT-16 O sistema de arquivos utilizado pelo MS-DOS chama-se FAT-16. Neste sistema existe uma Tabela de Alocação de Arquivos (File Allocation Table, FAT) que na verdade é um mapa de utilização do disco. A FAT mapeia a utilização do espaço do disco, ou seja, graças à ela o sistema operacional é capaz de saber onde exatamente no disco um determinado arquivo está armazenado. Existem várias posições na FAT, sendo que cada posição aponta a uma área do disco. Como cada posição na FAT-16 utiliza uma variável de 16 bits, podemos ter, no máximo, 216 = 65.536 posições na FAT. Como em cada setor cabem apenas 512 bytes, concluímos que, teoricamente, poderíamos ter discos somente de até 65.536 x 512 bytes = 33.554.432 bytes ou 32 MB.

  6. O sistema de arquivos FAT-16 Por este motivo, o sistema FAT-16 não trabalha com setores, mas sim com unidades de alocação chamadas clusters, que são conjuntos de setores. Em vez de cada posição da FAT apontar a um setor, cada posição aponta para um cluster, que é um conjunto de setores que poderá representar 1, 2, 4 ou mais setores do disco.

  7. Desperdício: Um grave problema O tamanho do cluster é definido automaticamente pelo sistema operacional quando o disco é formatado, seguindo a tabela. Um disco rígido de 630 MB utilizará clusters de 16 KB, enquanto um de 1, 7 GB utilizará clusters de 32 KB. Como a menor unidade a ser acessada pelo sistema operacional será o cluster, isto significa que os arquivos deverão ter, obrigatoriamente, tamanhos múltiplos do tamanho do cluster. Isto significa que um arquivo de 100 KB em um disco rígido que utilize clusters de 8 KB obrigatoriamente ocupará 13 clusters, ou 104 KB, pois este é o valor mais próximo de 100 KB que conseguimos chegar utilizando clusters de 8 KB. Neste caso, 4 KB serão desperdiçados.

  8. Desperdício: Um grave problema Quanto maior o tamanho do cluster, maior o desperdício. Se o mesmo arquivo de 100 KB for armazenado em um disco rígido que utilize clusters de 16 KB, ele obrigatoriamente utilizará 7 clusters, ou 112 KB. E, para o caso de um disco rígido com clusters de 32 KB, este mesmo arquivo ocupará 4 clusters, ou 128 KB. O desperdício em disco é um dos maiores problemas do sistema FAT, característica que chamamos de slack space. Quando maior o tamanho do cluster, mais espaço em disco é desperdiçado. Para saber qual o tamanho do cluster que está sendo utilizado em seu disco rígido, basta utilizar o comando CHKDSK, observando a linha "xxxxxx bytes em cada unidade de alocação", onde "xxxxx" é o tamanho do cluster em bytes.

  9. Vimos que o grande vilão do sistema FAT-16 é o desperdício em disco. Há, contudo, outro grande problema: o sistema FAT-16 não reconhece diretamente discos maiores que 2 GB. Para que discos com mais de 2 GB possam ser utilizados, devemos particioná-los, ou seja, dividi-los logicamente em outros menores que 2 GB. No caso de um disco rígido de 2,5 GB devemos obrigatoriamente dividi-lo em dois, podendo esta divisão ser, por exemplo, uma unidade de 2 GB e outra de cerca de 500 MB. - multiprocessamento

  10. FAT-32 Junto com a última revisão do Windows 95 (chamado Windows 95 OSR2), a Microsoft lançou um novo sistema de arquivos, denominado FAT-32. Este sistema estará presente também no novo sistema operacional da Microsoft, o Memphis. Com o sistema FAT-32 o tamanho dos clusters é sensivelmente menor, o que faz com que haja bem menos desperdício. Este sistema permite, também, que discos rígidos de até 2 terabytes (1 TB = 2^40 bytes) sejam reconhecidos e acessados diretamente, sem a necessidade de particionamento.

  11. FAT- 32

  12. FAT- 32 O sistema FAT-32 apresenta, porém, uma série de pequenos problemas:   Disco que utilizem o sistema FAT-32 não são "enxergados" por outros sistemas operacionais que não sejam o Windows 95 OSR2. Até mesmo o Windows 95 tradicional não acessa discos que estejam formatados com o sistema FAT-32.   Utilitários de manutenção de disco rígido mais antigos também não acessam discos formatados em FAT-32, como, por exemplo, o Norton Utilities (a última versão do Norton Utilities já reconhece discos em FAT-32).   Não é mais rápido. No geral é cerca de 6 % mais lento que o sistema FAT-16. Quanto mais clusters o disco rígido tiver e quanto menor eles forem, mais lento será o sistema de armazenamento de dados.

  13. HPFS e NTFS: As verdadeiras soluções A verdadeira solução para o problema de desperdício em disco é a utilização de um outro sistema de arquivos que não o FAT. O sistema operacional OS/2, por exemplo, possui um excelente sistema de arquivos denominado HPFS (High Performance File System). O sistema operacional Windows NT também possui o seu próprio (e também excelente) sistema de arquivos, denominado NTFS (New Technology File System). No caso do OS/2 e do Windows NT, na hora de sua instalação o usuário pode optar em utilizar o sistema FAT-16 ou então o HPFS/NTFS. A vantagem destes sistemas de arquivo é que não há desperdício em disco, pois não há clusters: a menor unidade de alocação é o próprio setor de 512 bytes.

  14. HPFS e NTFS: As verdadeiras soluções A desvantagem óbvia destes sistemas de arquivos: só podem ser utilizados em conjunto com os seus sistemas operacionais. Ou seja, não há como instalar o HPFS no Windows 95... Outra desvantagem: assim como o sistema FAT-32, não são "enxergados" por outros sistemas operacionais diretamente (há, contudo, alguns "macetes" que permitem com que esta limitação seja transposta).

  15. Sistema distribuído Introdução O que é um sistema distribuído? É uma coleção de computadores independentes que aparenta ser um único computador aos seus usuários. Conceitos relacionados a hardware e software, respectivamente. Exemplos: Rede com estações de trabalho e processadores stand-alone alocados por demanda com um sistema de arquivos unificado. Sistema bancário com terminais espalhados geograficamente e um único banco de dados.

  16. Sistema distribuído Vantagens de sistemas distribuídos sobre sistemas centralizados. Lei de Grosch – O poder de computação de um computador é proporcional ao quadrado do seu preço. (Aplicável a mainframes). No caso de microprocessadores, é mais barato se comprar vários processadores e montá-los em um sistema multi-processador. (preço) Em alguns casos, é teoricamente impossível de se construir um computador centralizado que possa ser comparado a um sistema distribuído com uma grande quantidade de processadores. (velocidade) Algumas aplicações são inerentemente distribuídas - sistema de uma cadeia de lojas, jogos ou outras aplicações cooperativas. (distributividade inerente)

  17. Sistema distribuído Maior confiabilidade, útil em aplicações de alto risco. (confiabilidade) Crescimento incremental – acaba com necessidade da compra de mainframes cada vez maiores, agora o sistema pode ser trocado aos poucos. (crescimento incremental)

  18. Sistema distribuído Vantagens de sistemas distribuídos sobre micros independentes: Compartilhamento de dados. (colaboração e preço) Compartilhamento de dispositivos. (preço) Comunicação. Mistura de computadores pessoais e compartilhados pode permitir uma distribuição de tarefas mais eficiente. (flexibilidade)

  19. Sistema distribuído Desvantagens de sistemas distribuídos: Software – sistemas operacionais, linguagens de programação e aplicações. Comunicação – tratamento e recuperação de mensagens. Melhoria da rede pode acarretar em custos altos. Segurança – Compartilhamento de dados implica em esquemas especiais para proteção de dados sigilosos.

  20. Sistema distribuído Conceitos de Software A imagem que o sistema apresenta aos usuários é quase que completamente determinada pelo sistema operacional. Software fracamente acoplado (loosely-coupled) permite que máquinas e usuários sejam fundamentalmente independentes dos outros. Exemplo: LAN. Software fortemente acoplado (tightly-coupled) funciona como uma única máquina. Exemplo: Computador multiprocessador que executa um programa de xadrez em paralelo.

  21. Sistema distribuído Existem 8 possíveis combinações de hardware e software, entretanto somente quatro são distinguíveis pelos usuários já que os mesmos não tem a noção de qual tecnologia de interconexão está sendo utilizada (com barramento ou switches). Das 4 opções restantes, a combinação hardware fortemente acoplado e software fracamente acoplado não faz sentido, já que se estaria indo de encontro ao objetivo principal da construção de um SD.

  22. Conceito de Processo O conceito de processo é, certamente, o conceito mais importante no estudo de sistemas operacionais. Para facilitar o entendimento deste conceito, considere-se um computador funcionando em multiprogramação (isto é, tendo vários programas simultaneamente ativos na memória). Cada programa em execução corresponde a um procedimento (seqüência de instruções) e um conjunto de dados (variáveis utilizadas pelo programa). É conveniente ter-se instruções separadas dos dados, pois isso possibilita o compartilhamento do código do procedimento por vários programas em execução (neste caso diz-se que o procedimento e reentrante ou puro). Se cada programa em execução possui uma pilha própria, então os dados podem ser criados (alocados) na própria pilha do programa.

  23. Conceito de Processo Além das instruções e dados, cada programa em execução possui uma área de memória correspondente para armazenar os valores dos registradores da UCP, quando o programa, por algum motivo, não estiver sendo executado. Essa área de memória é conhecida como registro descritor (ou bloco descritor, bloco de contexto, registro de estado, vetor de estado) e, além dos valores dos registradores da UCP, contém outras informações. Assim, em um determinado sistema, cada programa em execução constitui um processo. Portanto, podemos definir processo como sendo um programa em execução, o qual é constituído por uma seqüência de instruções, um conjunto de dados e um registro descritor.

  24. Conceito de Processo Num ambiente de multiprogramação, quando existe apenas um processador na instalação, cada processo é executado um pouco de cada vez, de forma intercalada. O sistema operacional aloca a UCP um pouco para cada processo, em uma ordem que não é previsível, em geral, pois depende de fatores externos aos processos, que variam no tempo (carga do sistema, por exemplo). Um processo após receber a UCP, só perde o controle da execução quando ocorre uma interrupção ou quando ele executa um trap, requerendo algum serviço do sistema operacional.

  25. Conceito de Processo As interrupções são transparentes aos processos, pois o efeitos das mesmas é apenas parar, temporariamente, a execução de um processo, o qual continuará sendo executado, mais tarde, como se nada tivesse acontecido. Um trap, por outro lado, é completamente diferente, pois bloqueia o processo até que o serviço requerido pelo mesmo, ao sistema operacional, seja realizado. Deve ser observado que um processo é uma entidade completamente definida por si só, cujas operações (instruções executadas) se desenvolvem no tempo, em uma ordem que é função exclusiva dos valores iniciais de suas variáveis e dos dados lidos durante a execução.

  26. Conceito de Processo Em um sistema com multiprocessamento (com mais de uma UCP), a única diferença em relação ao ambiente monoprocessado é que o sistema operacional passa a dispôr de mais processadores para alocar os processos, e neste caso tem-se realmente a execução simultânea de vários processos.

  27. Conceito de Processo Processos paralelos são denominados concorrentes ou assíncronos e, de acordo com o tipo de interação existente entre eles, podem ser classificados como disjuntos (não interativos), quando operam sobre conjuntos distintos de dados, ou interativos, quando têm acesso a dados comuns. Processos interativos podem ser competitivos, se competirem por recursos, e/ou cooperantes, se trocarem informações entre si. No caso de computações realizadas por processos interativos, como a ordem das operações sobre as variáveis compartilhadas pode variar no tempo (pois as velocidades relativas dos processos dependem de fatores externos que variam no tempo), o resultado da computação pode não depender somente dos valores iniciais das variáveis e dos dados de entrada. Quando o resultado de uma computação varia de acordo com as velocidades relativas dos processos diz-se que existe uma condição de corrida (race condition). É necessário evitar condições de corrida para garantir que o resultado de uma computação não varie entre uma execução e outra. Condições de corrida resultam em computações paralelas errôneas, pois cada vez que o programa for executado (com os mesmos dados) resultados diferentes poderão ser obtidos. A programação de computações paralelas exige mecanismos de sincronização entre processos, e por isso sua programação e depuração é bem mais difícil do que em programas tradicionais.

  28. Conceito de Processo

  29. Conceito de Processo O componente do sistema operacional que, após o atendimento de uma interrupção ou trap, escolhe o próximo processo a ser executado é denominado escalonador de processos (scheduler) ou despachador de processos (dispatcher). Em geral, um trap faz com que o processo fique bloqueado. Entretanto, em algumas ocasiões especiais, quando o sistema operacional pode atender imediatamente a requisição de serviço, o processo pode ser novamente despachado, não ocorrendo o bloqueio.

  30. Conceito de Processo Quando um job é admitido no sistema, um processo correspondente é criado e normalmente inserido no final da ready list. O processo se move gradualmente para a cabeça da ready list, conforme os processos anteriores a ele forem sendo usados pela UCP. Quando o processo alcança a cabeça da lista, e quando a UCP torna-se disponível, o processo é dado à UCP e diz-se que foi feito uma transição do estado ready para o estado running. A transferência da UCP para o primeiro processo da ready list é chamada dispatching, e é executada pelo dispatcher (ou escalonador). Este transição de estado pode ser ilustrada da seguinte forma: Dispatch(processname): ready  running

  31. Conceito de Processo Para prevenir que um processo monopolize o sistema acidentalmente ou propositadamente, o S.O. (Sistema Operacional) tem um relógio interno (interrupting clock ou interval timer) que faz com que o processo execute somente por um intervalo de tempo específico ou quantum. Se o processo voluntariamente não libera a UCP antes de expirar seu intervalo de tempo, o interrupting clock gera uma interrupção, dando ao S.O. o controle novamente. O S.O. torna o processo corrente (running) em pronto (ready) e torna o primeiro processo da ready list em corrente. Estas transições de estado são indicadas como: TimerRunOut(processname): running  ready Dispatch(processname): ready  running

  32. Conceito de Processo Se um processo corrente iniciar uma operação de I/O antes de expirar o seu quantum, o processo corrente voluntariamente libera a UCP (isto é, ele se bloqueia, ficando pendente até completar a operação de I/O). Esta transição de estado é: Block(processname): running  blocked Quando é terminada a operação que fez com que o estado fique bloqueado, este passa para o estado pronto. A transição que faz tal operação é definida como: WakeUp(processname): blocked  ready

  33. Conceito de Processo Se um processo corrente iniciar uma operação de I/O antes de expirar o seu quantum, o processo corrente voluntariamente libera a UCP (isto é, ele se bloqueia, ficando pendente até completar a operação de I/O). Esta transição de estado é: Block(processname): running  blocked Quando é terminada a operação que fez com que o estado fique bloqueado, este passa para o estado pronto. A transição que faz tal operação é definida como: WakeUp(processname): blocked  ready

  34. O Núcleo do Sistema Operacional Todas as operações envolvendo processos são controladas por uma porção do sistema operacional chamada de núcleo, core, ou kernel. O núcleo normalmente representa somente uma pequena porção do código que em geral é tratado como sendo todo o sistema operacional, mas é a parte de código mais intensivamente utilizada. Por essa razão, o núcleo ordinariamente reside em armazenamento primário (memória RAM) enquanto outras porções do sistema operacional são chamadas da memória secundária quando necessário.

  35. O Núcleo do Sistema Operacional Uma das funções mais importantes incluídas no núcleo é o processamento de interrupções. Em grandes sistemas multiusuário, uma constante rajada de interrupções é direcionada ao processador. Respostas rápidas a essas interrupções são essenciais para manter os recursos do sistema bem utilizados, e para prover tempos de resposta aceitáveis pelos usuários.

  36. O Núcleo do Sistema Operacional O núcleo desabilita interrupções enquanto ele responde a uma interrupção; interrupções são novamente habilitadas após o processamento de uma interrupção estar completo. Com um fluxo permanente de interrupções, é possível que o núcleo mantenha interrupções desabilitadas por um grande porção de tempo; isto pode resultar em respostas insatisfatórias para interrupções. Entretanto, núcleos são projetados para fazer o “mínimo” processamento possível para cada interrupção, e então passar o restante do processamento de uma interrupção para um processo apropriado do sistema que pode terminar de tratá-las enquanto o núcleo continua apto a receber novas interrupções. Isto significa que as interrupções podem ficar habilitadas durante uma porcentagem muito maior do tempo, e o sistema torna-se mais eficiente em responder a requisições das aplicações dos usuários.

More Related