Sistemas Operacionais

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

1. Conceitos

1.1. Funções

1.1.1. Definiçao da Interface de Usuario

1.1.2. Compartilhamento de Hardware

1.1.3. Compartilhamento de Dados

1.1.4. Tratamento e Recuperação de Erros

1.2. Gerencia

1.2.1. Recursos

1.2.1.1. Processamento

1.2.1.2. Armazenamento

1.2.1.3. Memoria

1.2.1.4. Dispositivos de E/S

1.2.1.5. Perifericos

1.3. Comunica-se

1.3.1. Usuarios

1.3.2. Hardware

1.3.3. Programas

1.3.4. Outros Computadores

2. Estrutura

2.1. Usuarios

2.2. Aplicações

2.3. Kernel/Nucleo

2.3.1. tratamento de interrupções e exceções

2.3.2. Criação e eliminação de processos e threads

2.3.3. sincronização e comunicação entre processos e threads;

2.3.4. gerencia de memória

2.3.5. gerencia do sistema de arquivos

2.3.6. gerencia de dispositivos de entrada e saída

2.3.7. suporte a redes locais e distribuídas

2.4. Hardware

3. Arquiteturas

3.1. Monoliticos

3.1.1. Rotinas

3.1.1.1. Procedimento Principal

3.1.1.2. Procedimento de Serviço

3.1.1.3. Procedimento Utilitario

3.2. Camadas

3.2.1. Hierarquia de Chamadas

3.2.1.1. Usuario

3.2.1.2. Aplicação

3.2.1.3. Gerenciamento de E/S

3.2.1.4. Comunicaçao Usuario-Processo

3.2.1.5. Gerenciamento de Memoria e Armazenamento

3.2.1.6. Alocaçao de Processador

3.3. Cliente-Servidor

3.3.1. Micro Kernel

3.3.1.1. Processo Cliente

3.3.1.2. Servidor de Processos

3.3.1.3. Servidor de Terminais

3.3.1.4. Servidor de Arquivos

3.3.1.5. Servidor de Memoria

3.4. Virtualizaçao

3.4.1. Hyper-V

3.4.2. Virtualbox

3.4.3. VMWare

3.4.4. KVM

4. Gestao de Tarefas

4.1. Processos

4.1.1. Escalonador

4.1.1.1. Preemptivo

4.1.1.1.1. Interrompe temporariamente uma tarefa sendo executada por um sistema computacional, sem exigir sua cooperação, e com a intenção de retomar à tarefa posteriormente.

4.1.1.2. Cooperativo

4.1.1.2.1. O processo está em execução libera voluntariamente o processador, retornando para a fila de pronto, cooperando com os outros processos.

4.1.1.3. FIFO

4.1.1.3.1. O processo que chegar primeiro, é o primeiro a ser selecionado para a execução. Necessário apenas uma fila de processos prontos, esperando pelo uso do processador.

4.1.1.4. Shortest-Job-First

4.1.1.4.1. Associa cada processo (JOB) ao seu tempo de execução. Quando o processador está livre, o processamento que ocupar menos tempo da CPU para terminar seu processamento é selecionado.

4.1.1.5. Round-Robin

4.1.1.5.1. Implementado por um algoritmo semelhante ao FIFO, porém, quando um processo passa para o estado de execução, existe um tempo-limite (quantum ou time-slice) para sua utilização de forma contínua. Se o processo não terminou a execução, volta ao estado de pronto.

4.1.2. Ordem de Execução

4.1.2.1. Tempo Real

4.1.2.1.1. Fator de tempo crítico, pequeno tempo de resposta obrigatório.

4.1.2.2. Interativas

4.1.2.2.1. Recebem eventos externos (do usuário ou através da rede) e devem respondê-los rapidamente, embora sem os requisitos de previsibilidade das tarefas de tempo real.

4.1.2.3. Lote

4.1.2.3.1. sem requisitos temporais explícitos, que normalmente executam sem intervenção do usuário, como procedimentos de backup, varreduras de antivírus, cálculos numéricos longos, tratamentos de grandes massas de dados em lote, renderização de animações, etc.

4.1.2.4. CPU-Bound

4.1.2.4.1. Depende mais do processador do que das entradas e saídas, fazendo assim com que atrapalhe o tempo total de processamento, a citar alguns jogos eletrônicos que utilizam recursos gráficos em 3D de alta complexidade.

4.1.2.5. IO-Bound

4.1.2.5.1. Uso intensivo de entrada/saída (I/O). Todos os sistemas operacionais executam processos de entrada e saída, como por exemplo algum usuário querendo copiar um arquivo para o Pen Drive. Esses processos são conhecidos como I/O bound porque fazem pouco uso da CPU.

4.1.2.6. Tempo de Vida

4.1.2.6.1. Cumprimento dos prazos para evitar a perda de dados e evitar a degradação da qualidade em sistemas multimídias.

4.1.2.7. Tempo de Espera

4.1.2.7.1. processo cujo o tempo de execução restante seja o menor.

4.1.2.8. Tempo de Resposta

4.1.2.8.1. Para um processo interativo, este é o tempo desde a submissão de uma requisição até a sua resposta. A disciplina de escalonamento deverá maximizar o número de usuários interativos em um tempo de resposta aceitável;

4.1.3. Metricas

4.1.3.1. Uso de Processador

4.1.3.2. Tempo de Vida

4.1.3.3. Tempo de Espera

4.1.3.4. Tempo de Resposta

4.1.4. Elementos

4.1.4.1. Identificador

4.1.4.2. Estado

4.1.4.3. Prioridade

4.1.4.4. Program Counter

4.1.4.5. Ponteiros

4.1.4.6. Dados

4.1.4.7. Informaçoes de E/S

4.1.5. Execução

4.1.5.1. Modo Usuario

4.1.5.1.1. Menos privilégios

4.1.5.1.2. Acesso a Recursos Basicos

4.1.5.1.3. Processos a Nivel de Usuario

4.1.5.2. Modo Sistema

4.1.5.2.1. Mais privilégios

4.1.5.2.2. Acesso a recursos de mais baixo nível

4.1.5.2.3. Processos a Nivel de Kernel/Nucleo

4.2. Thread

4.2.1. Muitos-Para-Um

4.2.1.1. Threads de nível de usuário para threads do kernel. O gerenciamento dos threads é realizado no espaço do usuário e assim é eficiente, mas o processo inteiro ficará bloqueado. Além disso, como somente um thread pode acessar o kernel de cada vez, múltiplos threads são incapazes de executar em paralelo em multiprocessadores.

4.2.2. Um-Para-Um

4.2.2.1. Mapeia cada thread de usuário para um thread de kernel, gera mais concorrência do que o modelo muitos-para-um. Permite a um outro thread ser executado, enquanto um thread realiza uma chamada de sistema de bloqueio, ele também permite que múltiplos threads executem em paralelo em multiprocessadores. A única desvantagem deste modelo é que a criação de um thread de usuário requer a criação do correspondente thread de kernel.

4.2.3. Muitos-Para-Muitos

4.2.3.1. Multiplexa muitos threads de nível de usuário para um número menor ou igual de threads de kernel. O número de threads de kernel pode ser específico tanto para uma aplicação em particular quanto para uma máquina em particular. Os desenvolvedores podem criar tantos threads de usuário quantos forem necessários, e os correspondentes threads de kernel podem executar em paralelo em um multiprocessador. Além disso, quando um thread realiza uma chamada de sistema de bloqueio, o kernel pode agendar um outro thread para execução.

5. Espera-se

5.1. Robustez

5.2. Segurança

5.3. Eficiencia

5.4. Escalabilidade

5.5. Extensibilidade

5.6. Portabilidade

5.7. Interatividade

5.8. Usabilidade

6. Livres

6.1. Linux

6.1.1. Android

6.1.1.1. Cyanogen

6.1.1.2. LineageOS

6.1.2. Arch Linux

6.1.2.1. Manjaro

6.1.2.2. ArchOne

6.1.3. Debian

6.1.3.1. Knoppix

6.1.3.1.1. Kurumin

6.1.3.1.2. Paipix

6.1.3.2. Ubuntu

6.1.3.2.1. Ubuntu Server

6.1.3.2.2. Gnome

6.1.3.2.3. Linux Mint

6.1.4. Fedora

6.1.4.1. Fox Linux

6.1.4.2. FreeDowns

6.1.4.3. RedHat

6.1.4.3.1. CentOS

6.1.4.3.2. Mandriva

6.1.5. Gentoo Linux

6.1.5.1. ChromeOS

6.1.5.2. Guaranix

6.2. Unix

6.2.1. MINIX

6.2.2. OpenBSD

6.2.3. XENIX

6.3. THE

7. Proprietario

7.1. Microsoft Windows

7.1.1. Windows Server

7.1.2. Windows XP

7.1.3. Windows 7

7.1.4. Windows 10

7.2. MacOS

7.2.1. Mojave

7.2.2. Catalina

7.2.3. Lion

7.2.4. Puma

7.2.5. Chetaah

7.3. iOS

7.3.1. iPhone OS 1

7.3.2. iOS 8

7.3.3. iOS 13

8. Pessoas Chave

8.1. Steve Jobs

8.2. Steve Wozniak

8.3. Bill Gates

8.4. Paul Allen

8.5. Linus Torvalds