Sistemas Operacionais V1

Mapa Conceitual feito para atividade na disciplina de Sistemas Operacionais, Curso de Ciência da Computação, Universidade de Santa Cruz do Sul - UNISC

Começar. É Gratuito
ou inscrever-se com seu endereço de e-mail
Sistemas Operacionais V1 por Mind Map: Sistemas Operacionais V1

1. Multiprogramação

1.1. Execução de várias tarefas alternadas muito frequentemente, permitindo interação do usuário com programas;

1.2. Utilização de escalonamento de CPU e multiprogramação.

1.3. Torna mais eficiente o aproveitamento dos recursos computacionais

1.3.1. Tempo de processador

1.3.2. Tempo de periférico

1.3.3. Espaço na memória

1.4. Várias tarefas mantidas simultaneamente em memória;

1.4.1. Processador não fica ocioso enquanto E/S está sendo atendida

1.4.2. Periféricos podem ser utilizados enquanto processamento é executado

1.4.3. Memória é melhor aproveitada com a presença de vários programas

1.5. Programa

1.5.1. Programa é uma sequência de instruções, passivo, não altera seu próprio estado

1.6. Processo

1.6.1. Processo é ativo, altera seu estado à medida que executa um programa, faz chamadas de sistema

1.6.2. Um processo pode ser definido como um programa em execução

1.6.3. Estados de um Processo

1.6.3.1. Criação

1.6.3.1.1. SO destina um descritor para o processo

1.6.3.2. Apto

1.6.3.2.1. Processador pode estar ocupado com outro processo

1.6.3.2.2. Diversos processos podem estar nesse mesmo estado

1.6.3.2.3. Criação de fila de aptos para espera pelo processador

1.6.3.3. Executando

1.6.3.3.1. Processo único que ocupa o processador num determinado instante e pode fazer chamadas de sistema.

1.6.3.4. Bloqueado

1.6.3.4.1. Processo não pode continuar execução até a chamada de sistema ser atendida

1.6.3.4.2. Fica bloqueado e só volta a disputar o processador após a conclusão da chamada

1.6.3.5. Destruição

1.6.3.5.1. Processo termina sua execução

1.6.4. Transição de estado

1.6.4.1. Apto para executando

1.6.4.2. Executando para bloqueado

1.6.4.3. Bloqueado para apto

1.6.4.4. Executando para destruição

1.6.4.5. Destruição do processo

1.6.5. Processos independentes

1.6.5.1. Não apresentam relacionamentos com outros processos

1.6.5.2. Operações devem ser realizadas sobre cada processo individualmente.

1.6.6. Gerência de Finlas

1.6.6.1. Ocupar os periféricos

1.6.6.1.1. Se a fila estiver vazia, periférico está livre

1.6.6.1.2. Se fila não estiver vazia, periférico está ocupado

1.6.6.2. Interromper o periférico

1.6.6.2.1. Primeiro pedido da fila pode ser removido

1.6.6.2.2. Processo volta para a fila de aptos para disputar o processador

1.6.6.2.3. Se fila do periférico ficou vazia, periférico está livre

1.6.6.2.4. Caso contrário, envia-se para o controlador do periférico o primeiro pedido da fila

1.6.7. Mecanismo de Interrupções

1.6.7.1. Ocorrência de interrupção

1.6.7.1.1. Processador verifica se o tipo de interrupção sinalizado está habilitado

1.6.7.2. Interrupções por erro

1.6.7.2.1. Interrupções de exceção

1.6.7.2.2. Geradas pelo processador

1.6.7.2.3. Acontecem quando o processador detecta algum tipo de erro na execução do processo

1.6.7.3. Interrupções de software

1.6.7.3.1. Traps

1.6.7.3.2. Causadas pela execução de uma instrução específica

1.6.7.3.3. Têm como parâmetro o número da interrupção que deve ser ativada

1.6.7.3.4. Chamadas de sistema

1.6.7.3.5. Não é possível/preciso desabilitá-las

1.6.8. Cliclos dos processos

1.6.8.1. Criação

1.6.8.1.1. Número fixo de processos

1.6.8.1.2. Associado a uma sessão de trabalho

1.6.8.1.3. Processos são criados livremente

1.6.8.2. Execução

1.6.8.2.1. Processos apresentam dois ciclos básicos de operação

1.6.8.2.2. Primeiro ciclo é sempre de processador

1.6.8.3. Termino

1.6.8.3.1. Nomal

1.6.8.3.2. Erros

1.6.8.3.3. Intervenção de outros processos

1.6.9. Processos com relacionamento

1.6.9.1. Apresentam algum tipo de relacionamento

1.6.9.2. Operações aplicadas sobre todo um conjunto de processos

1.6.9.3. Hierarquia de processos

1.6.9.3.1. Processos (nodos) são criados por outros processos por chamada de sistema

1.6.9.3.2. Representação através de uma árvore

2. Evolução

2.1. 1ª. geração (1945 – 1955) – válvulas e painéis de programação:

2.2. 2ª. geração (1955 – 1965) – transistores e sistemas em lote (batch):

2.3. 3ª. geração (1965 – 1980) – CIs e multiprogramação:

2.4. 4ª. geração (1980 – ) – computadores pessoais:

3. Gerência do Processador

3.1. Políticas de escalonamento

3.1.1. Define os critérios da utilização do processador.

3.1.2. Busca manter o processador ocupado a maior parte do tempo.

3.1.3. Balancear o uso do processador entre os processos.

3.1.4. Privilegiar a execução das atividades críticas.

3.2. Escalonador

3.2.1. Rotina do SO que implementa os critérios de escalonamento

3.3. Utilização do processador

3.3.1. Throughput: número de processos em execução num intervalo de tempo.

3.3.2. Tempo de processador: tempo que o processo passa com a CPU.

3.3.3. Tempo de espera: tempo que o processo fica na fila de pronto.

3.3.4. Tempo de turnaround: tempo de criação até o término do processo.

3.3.5. Tempo de resposta: tempo entra a requisição e a resposta do processador.

3.4. Políticas

3.4.1. Não preemptiva: nenhum evento externo ccausa perda do uso do processador.

3.4.2. Preemptiva: o SO pode interromér o uso do processador.

3.5. Tipos de escalonamento.

3.5.1. FIFO

3.5.2. Shortest-job-firts

3.5.3. COOPERATIVO: próprio processo em execução libera o uso do processador.

3.5.4. CIRCULAR(round-Robin-scheduling)Cada processo tem tempo limite para usar CPU.

3.5.5. POR PRIORIDADES: Cada processo recebe um valor de prioridade.

3.5.6. CIRCULAR COM PRIORIDADE

4. Gerência de memória

4.1. Função de gerenciar eficientemente a memória:

4.1.1. Controlar quais partes estão sendo usadas;

4.1.2. Alocar memória para processos quando eles precisam

4.1.3. Liberar memória quando processos não precisam mais.

4.2. Técnicas de Gerência de Memória

4.2.1. Partição simples

4.2.1.1. Memória dividida entre sistema operacional e somente um processo de usuário

4.2.1.2. Memória subutilizada

4.2.1.3. Gerenciamento extremamente fácil para sistema operacional

4.2.1.4. Mas muito desperdício, tanto de memória quanto de processamento

4.2.2. Partições fixas

4.2.2.1. Memória dividida entre sistema operacional e mais de um processo de usuário

4.2.2.2. Memória melhor utilizada

4.2.2.3. Partições com tamanhos diferentes, mas que não podem ser alterados

4.2.2.4. Gerenciamento ainda é fácil para sistema operacional

4.2.2.5. Mas apresenta fragmentações interna e externa

4.2.3. Partições variáveis

4.2.3.1. Memória dividida entre sistema operacional e mais de um processo de usuário

4.2.3.2. Memória melhor utilizada

4.2.3.3. Cada processo recebe exatamente a quantia de memória que precisa para executar

4.2.3.4. Ideia original é livre de fragmentação interna

4.2.3.5. Gerenciamento é fácil para sistema operacional, mas complexidade começa a aumentar

4.2.3.6. Algoritmos para decidir como se dará a ocupação das partições

4.2.3.6.1. First-fit: aloca no primeiro espaço livre da lista que processo couber

4.2.3.6.2. Best-fit: aloca no primeiro espaço livre da lista que processo couber e que sobre menos espaço (gere a menor lacuna possível)

4.2.3.6.3. Worst-Fit: aloca no primeiro espaço livre da lista que o processo couber e que sobre mais espaço (gere a maior lacuna possível)

4.2.3.7. Processos são alocados e desalocados frequentemente, causando “buracos” na memória, que nem sempre podem ser utilizados por outros processos por serem muito pequenos

4.2.3.8. Estratégia passa a definir unidade mínima de alocação (parágrafos) para minimizar o problema

4.2.3.9. Fragmentação interna volta a existir

4.2.4. Paginação

4.2.4.1. Como saber quais páginas estão livres e podem ser ocupadas por um processo?

4.2.4.1.1. Mapa de bits

4.2.4.2. Como saber quais páginas estão livres e podem ser ocupadas por um processo?

4.2.4.2.1. Lista de páginas livres

4.2.4.2.2. página que fica livre deve ser inserida na lista de acordo com seu número, mantendo a lista ordenada

4.2.4.2.3. quando processo precisa ser alocado, Sistema Operacional percorre a lista e pode atribuir quaisquer páginas livres ao processo, mesmo que elas não sejam contíguas

4.2.4.3. As técnicas anteriores gastavam muita memória pois exigiam que as unidades de memória que fossem alocadas para um processo tinham que estar dispostas de maneirasequencial(contígua)

4.2.4.3.1. Com paginação essa exigência desaparece

4.2.4.4. Vida do sistema operacional é dificultada

4.2.4.4.1. precisa manter atualizada a indicação de páginas livres e ocupadas para evitar que um processo receba uma página que já pertence a outro processo

4.2.4.5. Como ficam as fragmentações? Desaparecem?

4.2.4.5.1. ao tirar a exigência de alocação contígua de memória, o problema da fragmentação externa está resolvido, o que já é um grande ganho

4.2.4.5.2. porém, a fragmentação interna (dentro de uma página) ainda continua existindo na última página destinada ao processo, pois dificilmente um processo terá o tamanho exato correspondente a um múltiplo do tamanho da página (mas é melhor perder um pouco de memória com fragmentação interna do que tentar resolvê-la ou gerenciá-la).

4.2.4.6. Se um processo foi alocado nas páginas que estavam livres, como saber quais páginas pertencem ao processo agora?

4.2.4.6.1. TABELA DE PÁGINAS

4.2.4.6.2. E onde fica armazenada a tabela de páginas do processo (lembrando que toda vez que ocorre troca de contexto, a tabela de páginas dos processos envolvidos devem ser atualizadas):

4.3. Hierarquia de memórias:

4.3.1. Alguns megabytes de memória cache volátil, cara e muito rápida

4.3.2. Alguns gigabytes de memória principal volátil de velocidade e custo médios;

4.3.3. Alguns terabytes de armazenamento em estado não volátil, barato e lento (HD)

4.3.4. Alguns megabytes de armazenamento em SSDs (Solid State Drivers), não voláteis, caros e rápidos.

5. Oque faz?

5.1. Dispositivo de software, que gerencia CPU, memória e dispositivos de entrada/saída (E/S) e fornece aos programas do usuário uma interface mais simples com o hardware.

5.1.1. Visão do Usuário

5.1.1.1. Facilidade de uso e desempenho

5.1.1.2. Utilização eficiente e justa de recursos

5.1.1.3. Facilidade de uso individual e utilização de recursos compartilhados

5.1.2. Visão do Sistema

5.1.2.1. Gerenciador de recursos

5.1.2.1.1. Fornece alocação ordenada e controlada de processadores, memórias e dispositivos de E/S entre vários programas que competem por eles;

5.1.2.1.2. Mantém o controle sobre quem está usando qual recurso, garantindo suas requisições, controlando as contas e mediando conflitos de requisições entre diferentes programas e usuários;

5.1.2.1.3. Compartilhamento de recursos no tempo e no espaço.

5.1.2.2. Máquina estendida

5.1.2.2.1. Programa que oculta do programador a “verdade” sobre o hardware e apresenta uma visão simples e agradável de nomes de arquivos, interrupções, temporizadores, gerenciamento de memória, entre outros;

5.1.2.2.2. Mais fácil de programar;

5.1.2.2.3. Fornece variedade de serviços que os programas podem obter usando instruções especiais (chamadas ao sistema).

6. Melhor utilização de CPU, memória, periféricos

7. História

7.1. Primeiro computador digital projetado pelo matemático inglês Charles Babbage

7.2. A maquina não funcionou de modo apropriado, pois não tinha SO, então viu a necessidade de contratar a primeira programadora do mundo, Ada Lovelace