Sistema Operacional

Get Started. It's Free
or sign up with your email address
Sistema Operacional by Mind Map: Sistema Operacional

1. Evolução Sistema Operacional

1.1. 1969 - UNIX

1.2. 1977 - BSD

1.3. 1978 - Apple DOS

1.4. 1979 - Atari DOS

1.5. 1980 - Apple SOS

1.6. 1980 – Xenix

1.7. 1980 - 86-DOS (Q-DOS)

1.8. 1981 - MS-DOS / IBM PC DOS

1.9. 1982 – SunOS

1.10. 1983 - Apple ProDOS

1.11. 1983 - Lisa OS

1.12. 1984 - Mac OS

1.13. 1985 – AmigaOS

1.14. 1985 - Windows 1.0

1.15. 1986 - LynxOS

1.16. 1989 – NeXTSTEP

1.17. 1990 - Windows 3.0

1.18. 1991 - Linux

1.19. 1991 - System 7

1.20. 1991 - BeOS

1.21. 1991 - Workplace OS

1.22. 1992 - Windows 3.1

1.23. 1992 – Solaris

1.24. 1993 – Debian

1.25. 1993 – FreeBSD, NetBSD

1.26. 1993 – Slackware

1.27. 1994 - Copland (System 8)

1.28. 1994 - SUSE

1.29. 1995 - Windows 95

1.30. 1996 - Rhapsody

1.31. 1997 - Symbian

1.32. 1998 - Windows 98

1.33. 1999 - Windows 98 SE

1.34. 1999 - Yellow Dog Linux

1.35. 2000 - Windows 2000

1.36. 2000 - Knoppix

1.37. 2001 - Windows XP

1.38. 2001 - OS X

1.39. 2002 - Gentoo Linux

1.40. 2003 - Kurumin

1.41. 2004 - Ubuntu

1.42. 2006 - OpenSUSE

1.43. 2006 - Windows Vista

1.44. 2007 - iOS

1.45. 2008 - OpenSolaris

1.46. 2008 - Android

1.47. 2009 - Mac OS X Snow Leopard

1.48. 2010 - Windows Phone

1.49. 2011 - Chrome OS

1.50. 2011 - Mac OS X Lion

1.51. 2012 - Tizen

1.52. 2012 - Windows 8

1.53. 2013 - Ubuntu Touch

1.54. 2013 - Firefox OS

1.55. 2013 - Orbis OS

1.56. 2015 - Windows 10 versão 6.4.9879

1.57. 2016 Windows 10 versão10.0.14393

1.58. 2018 - Windows 10 versão10.0.17134

1.59. 2018 - Windows 10 versão10.0.17134

1.60. 2018 - Windows 10 versão10.0.17134

1.61. 2019 - Windows 10 versão 10.0.18363

1.62. 2020 - Windows 10 versão10.0.19041

2. Introdução : Um sistema operacional é um conjunto de rotinas executadas pelo processador, de forma semelhante aos outros programas utilizados

2.1. Funções Básicas

2.1.1. Fornecer uma interface com o usuário

2.1.2. Gerenciar a operação dos dispositivos de hardware do computador

2.1.3. Gerenciar e manter o sistema de arquivos;

2.1.4. Dar suporte aos programas que são executados.

3. Evolução

3.1. O Início da Computação

3.1.1. A Primeira Geração (1945-1955): Válvulas e Painéis com Plugs

3.1.2. A Segunda Geração (1955 - 1965): Transistores e Sistemas Batch

3.1.3. A Terceira Geração (1965 - 1980): CIs e Multiprogramação

3.1.4. A Quarta Geração (1980-1990): Computadores Pessoais

4. Concorrência

4.1. Sistemas Operacionais podem ser vistos como um conjunto de rotinas executadas de forma concorrente e ordenada

4.1.1. Sistemas Monoprogramáveis X Multiprogramaveis

4.1.1.1. Monoprogamavél :sistema monoprogramavel, existe bastante desperdício de processador

4.1.1.2. Multiprogramaveis: vários programas podem estar residentes em memória, concorrendo pela utilização do processador

4.2. Interrupções e Exceções

4.2.1. Durante a execução de um programa podem ocorrer alguns eventos inesperados, ocasionado um desvio forçado no seu fluxo de execução.

4.3. Operações de Entrada/Saída

4.3.1. Um canal de E/S pode controlar múltiplos dispositivos através de diversos controladores. Cada dispositivo, ou conjunto de dispositivos, é manipulado por um único controlador. O canal atua como um elo de ligação entre a UCP e o controlador

4.4. Buffering

4.4.1. A técnica de buffering consiste na utilização de uma área de memória para a transferência de dados entre os periféricos e a memória principal denominada buffer.

4.5. Spooling

4.5.1. foi introduzida no final dos anos 50 para aumentar a produtividade e a eficiência dos sistemas operacionais.

4.5.1.1. A solução foi armazenar os vários programas e seus dados, também chamados de jobs, em uma fita magnética e, em seguida, submetê-los a processamento.

4.6. Reentrância

4.6.1. a é a capacidade de um código de programa (código reentrante) poder ser compartilhado por diversos usuários, exigindo que apenas uma cópia do programa esteja na memória.

5. Estrutura Dos Sistemas Operacionais

5.1. System Calls

5.2. Modos de Acesso

5.3. Arquiteturas do núcleo

5.4. Sistemas Monolíticos

5.5. Sistemas em Camadas

5.6. Máquinas Virtuais

5.7. Arquitetura Microkernel

6. Processo

6.1. O processo é a base para implantação de um sistema operacional multiprogramável

6.2. Estrutura do Processo

6.2.1. O processador foi projetado para executar as instruções a partir do ciclo de busca e execução

6.3. Contexto de hardware

6.3.1. O contexto de hardware guarda o conteúdo dos registradores do processador

6.4. Contexto de software

6.4.1. Identificação

6.4.1.1. Cada processo criado pelo sistema recebe uma identificação única (chamada de PID – Process IDentification)

6.4.2. Quotas

6.4.2.1. As quotas são os limites de cada recurso do sistema que um processo pode alocar

6.4.3. Privilégios

6.4.3.1. Os privilégios ou direitos definem as ações que um processo pode fazer em ralação a ele mesmo, aos demais processos e ao sistema operacional

6.5. Espaço de endereçamento

6.5.1. O espaço de endereçamento é a área de memória pertencente ao processo onde as instruções e dados do programa são armazenados para execução

6.6. Bloco de controle do proceso

6.6.1. processo é implementado pelo SO através de uma estrutura de dados chamada Bloco de controle de processos (Process Control Block – PCB)

6.7. Estados do Proceso

6.7.1. um proceso não deve alocar o processador com exclusividade, de forma que possa ser compartilhado

6.7.1.1. Execução (running

6.7.1.2. Pronto (ready)

6.7.1.3. Espera (wait)

6.8. Mudanças de Estado de Proceso

6.8.1. Pronto → Execução

6.8.2. Execução → Espera

6.8.3. Espera → Pronto

6.8.4. Execução → Pronto

6.9. Criação e Eliminação de Procesos

6.9.1. Processos são criados e eliminados por diversas razões. A criação de um processo ocorre quando o sistema operacional adiciona um novo PCB à sua estrutura e reserva espaço na memória para uso

6.9.1.1. Criação (new)

6.9.1.2. Terminado (exit)

6.10. Processos Independentes, Subprocesos e Threads

6.10.1. Subprocessos

6.10.1.1. são criados dentro de uma estrutura hierárquica. E neste caso, o processo criador é denominado processo pai e o novo processo é chamado de subprocesso ou processo filho.

6.10.2. thread

6.10.2.1. foi estabelecido com a intenção de reduzir o tempo gasto na criação, eliminação e troca de contexto de processos nas aplicações concorrentes, bem como economizar recursos do sistema como um todo

6.11. Processos Foreground e Background

6.11.1. processo possui sempre associado à sua estrutura, pelo menos dois canais de comunicação por onde são realizadas todas as entradas e saídas de dados ao longo do seu processamento

6.12. Processos do Sistema Operacional

6.12.1. auditoria e segurança;

6.12.2. serviços de rede;

6.12.3. contabilização do uso de recursos;

6.12.4. contabilização de erros;

6.12.5. gerência de impressão;

6.12.6. gerência de jobs match;

6.12.7. temporização;

6.12.8. comunicação de eventos;

6.12.9. interface de comandos.

6.13. Processos CPU-Bound e I/O-Bound

6.13.1. CPU-Bound

6.13.1.1. quando passa a maior parte do tempo no estado de execução, ou seja, utilizando o processador. Este tipo de processo realiza poucas operações de leitura e gravação e é encontrado em aplicações científicas que efetuam muitos cálculos

6.13.2. I/O-Bound

6.13.2.1. passa a maior parte do empo no estado de espera, pois realiza grande número de operações de E/S.

6.14. Sinais

6.14.1. são mecanismos que permitem notificar processos de eventos gerados pelo sistema operacional ou por outros processos

7. Sincronização e comunicação entre processos

7.1. Aplicações Concorrentes

7.1.1. pode ser necessário que os processos comuniquem-se entre si.

7.2. Especificação de Concorrência em Programas

7.2.1. Técnicas mais recentes tentam expressar a concorrência no código dos programas de uma forma mais clara e estruturada.

7.3. Problemas de Compartilhamento de Recursos

7.3.1. Para melhor compreensão da importância da sincronização entre processos concorrentes, são apresentados alguns exemplos-problema de compartilhamento de recursos.

7.4. Exclusão Mútua

7.4.1. A exclusão mútua deverá agir apenas sobre os processos que estão concorrendo em um determinado recurso

7.5. Starvation

7.5.1. Quem determina as prioridades dos processos é o sistema operacional. Neste caso existem duas formas do sistema operacional determinar qual será a vez de quem. Ou por escolha aleatória ou por prioridades

7.6. Sincronização condicional

7.6.1. é uma situação onde o acesso a um recurso compartilhado exige a sincronização de processos vinculada a uma condição de acesso.

7.7. Soluções de Hardware

7.7.1. Desabilitação de interrupções

7.7.2. Instrução test-and-set

7.8. Soluções de software

7.8.1. Diversos algoritmos foram propostos na tentativa de implementar a exclusão mútua através de soluções de software.

7.9. Semáforos

7.9.1. O semáforo é uma variável que fica associada a um recurso compartilhado, indicando quando este está sendo acessado por um outro processo

7.10. Monitores

7.10.1. são mecanismos de sincronização de alto nível que tornam mais simples o desenvolvimento de aplicações concorrentes

7.11. Deadlock

7.11.1. O Deadlock existe em qualquer sistema multiprogramável

7.11.1.1. Dizemos que um processo está em Deadlock quando este para de responder porque está esperando por um evento que nunca ocorrerá.

7.11.2. Detecção de Deadlock

7.11.2.1. A Detecção do Deadlock é um mecanismo que determina a existência deste e identifica os recursos envolvidos no problema

7.11.3. Correção do Deadlock

7.11.3.1. Geralmente o problema é resolvido eliminando os processos envolvidos e desalojando os recursos para ele já garantidos

8. Gerência do processador

8.1. Funções

8.1.1. onde múltiplos processos poderiam permanecer na memória e disputar o uso de um único processador, a gerência do processador tornou-se uma das atividades mais importantes em um sistema operacional.

8.2. Critérios de escalonamento

8.2.1. Utilização do processador

8.2.1.1. corresponde a uma taxa de utilização, que na maioria dos sistemas varia entre 30 e 90%.

8.2.2. Throughput:

8.2.2.1. : é o número de processos executados em um determinado intervalo de tempo

8.2.3. Tempo de Processador

8.2.3.1. é o tempo que um processo leva no estado de execução, durante seu processamento

8.2.4. Tempo de Espera (pela CPU)

8.2.4.1. : é todo o tempo que o processo permanece na fila de pronto, aguardando a liberação da CPU para ser executado.

8.2.5. Tempo de Turnaround

8.2.5.1. : é o tempo total que o processo permaneceu no sistema, desde sua criação até o momento em que é encerrado

8.2.6. Tempo de Resposta

8.2.6.1. é o tempo decorrido entre uma requisição ao sistema e o instante em que a resposta começa a ser exibida.

8.3. Escalonamentos Não-Preemptivos e Preemptivos

8.3.1. não-preemptivos

8.3.1.1. são aqueles onde o sistema operacional não pode interromper o processo em execução para retirá-lo da CPU

8.3.1.1.1. São escalonamentos não-preemptivos

8.3.2. preemptivos

8.3.2.1. são caracterizados pela possibilidade de o sistema operacional interromper o processo em execução para retirá-lo da CPU e dar lugar a outro.

8.3.2.1.1. São escalonamentos preemptivos

9. Gerência de memória / Memória Virtaul

9.1. Alocação Contígua Simples

9.1.1. Este tipo de alocação foi implementado nos primeiros sistemas operacionais, embora ainda nos dias de hoje esteja presente em alguns sistemas monoprogramáveis

9.2. Segmentação de Programas

9.2.1. Na alocação contígua simples todos os programas estão limitados ao tamanho da memória principal disponível para o usuário

9.3. Alocação Particionada Estática

9.3.1. Os sistemas operacionais evoluíram para proporcionar melhor aproveitamento dos recursos. Nos sistemas monoprogramáveis o processador fica grande parte do tempo ocioso e a MP é sub-utilizada.

9.4. Alocação Particionada Dinâmica

9.4.1. foi eliminado o conceito de partições de tamanho fixo. Nesse esquema, cada programa, ao ser carregado, utilizaria o espaço necessário à sua execução, tornando esse espaço a sua partição

9.5. Estratégias de Alocação de Partição

9.5.1. Os sistemas operacionais implementam basicamente três estratégias para determinar em qual área livre um programa será alocado para execução.

9.6. Swapping

9.6.1. É uma técnica aplicada à gerência de memória que visa dar maior taxa de utilização à memória principal, melhorando seu compartilhamento. Visa também resolver o problema da falta de memória principal num sistema.

9.7. Memória Virtual

9.7.1. é uma técnica sofisticada e poderosa de gerência de memória onde as memórias principal e secundária são combinadas, dando ao usuário a impressão de que existe muito mais memória do que a capacidade real de memória principal.

9.8. Algoritmos de substituição de páginas

9.8.1. O maior problema na gerência de memória virtual por paginação não é decidir quais páginas carregar para a memória real, mas sim quais páginas liberar.

10. Gerência de sistemas de arquivos

10.1. Estrutura de Diretórios

10.1.1. Nível único

10.1.1.1. é a implementação mais simples de uma estrutura de diretórios, onde existe um único diretório contendo todos os arquivos do disco

10.1.2. Diretório pessoal

10.1.2.1. Evolução do modelo anterior, permite a cada usuário ter ser “diretório” particular, sem a preocupação de conhecer os outros arquivos do disco.

10.1.3. Múltiplos níveis (ÁRVORE)

10.1.3.1. É o modelo utilizado hoje em dia em quase todos os Sistemas Operacionais.

10.2. Sistemas de alocação de arquivos

10.2.1. FAT

10.2.1.1. sistema criado no MS-DOS e depois utilizado no Windows.

10.2.2. FAT32

10.2.2.1. igual ao FAT no que diz respeito a organização e desempenho, mas pode trabalhar com partições de até 2TB.

10.2.3. NTFS

10.2.3.1. NT File System, original da plataforma Windows NT/2000/XP

10.2.4. UNIX

10.2.4.1. Usa diretório hierárquico, com um raiz e outros diretórios subordinados

10.3. Gerência de espaço livre

10.3.1. Alocação contígua

10.3.1.1. armazena o arquivo em blocos seqüencialmente dispostos no disco

10.3.2. Alocação encadeada

10.3.2.1. nesta modalidade o arquivo é organizado como um conjunto de blocos ligados logicamente no disco, independente de sua localização física, onde cada bloco possui um ponteiro para o bloco seguinte.

10.3.3. Alocação indexada

10.3.3.1. esta técnica soluciona a limitação da alocação encadeada, no que diz respeito ao acesso, pois permite acesso direto aos blocos do arquivo.

10.4. Proteção de acesso

10.4.1. Considerando-se que os meios de armazenamento são compartilhados por vários usuários, é fundamental que mecanismos de proteção sejam implementados para garantir a integridade e proteção individual dos arquivos e diretórios

10.4.1.1. Senha de acesso

10.4.1.1.1. mecanismo de simples implementação

10.4.1.2. Grupos de usuário

10.4.1.2.1. é muito utilizada em muitos Sistemas Operacionais

10.4.1.3. Lista de controle de acesso

10.4.1.3.1. é uma lista associada ao arquivo onde são especificados quais os usuários e os tipos de acesso permitidos.