sistemas operacional

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

1. Um sistema operacional é um conjunto de rotinas executadas pelo processador, de forma semelhante aos outros programas utilizados

1.1. A principal função de um sistema

1.2. operacional é controlar o funcionamento do computador, gerenciando a utilização e o

1.3. compartilhamento de forma organizada os diversos recursos, como processadores, memórias

1.4. e dispositivos de entrada e saída.

2. A diferença entre o sistema operacional e os outros programas, é a maneira como suas rotinas são executadas em função do tempo

2.1. Um sistema operacional não é executado

2.2. de forma linear como a maioria dos programas, com início, meio e fim

3. FUNÇÕES BÁSICAS

3.1. Fornecer uma interface com o usuário;

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

3.3. Gerenciar e manter o sistema de arquivos;

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

4. MÁQUINA DE CAMADAS

4.1. O sistema computacional composto somente de hardware, tem pouca utilidade. É

4.2. através do software que o usuário interage com a máquina.

4.3. Uma operação efetuada pelo software pode ser implementada no hardware,

4.4. enquanto uma instrução executada pelo hardware pode ser simulada via software. Tanto o

4.5. hardware quanto o software são logicamente equivalentes, interagindo de uma forma única

4.6. para o usuário

5. O Início da Computação

5.1. A evolução dos sistemas operacionais está ligada ao desenvolvimento dos computadores.

5.1.1. Antes da década de 40, foram feitos muitos esforços para desenvolver uma

5.1.2. máquina que pudesse realizar cálculos de forma rápida e precisa. Foi em 1642 que Blaise

5.1.3. Pascal inventou a máquina de somar para ajudar seu pai no processo de arrecadação de

5.1.4. impostos.

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

6.1. A máquina é

6.2. considerada de fato o primeiro computador da história. Desenvolvido pelos engenheiros na universidade da Pensilvânia. Foi desenvolvido para

6.3. calcular trajetórias balísticas.

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

7.1. A introdução do transistor em meados dos anos 50 mudou o quadro radicalmente.

7.2. Os computadores tornaram-se bastante confiáveis e puderam ser produzidos e vendidos

7.3. comercialmente na expectativa de que eles continuassem a funcionar por bastante tempo

7.4. para realizar algumas tarefas usuais.

8. Essas máquinas eram alocadas em salas especialmente preparadas com refrigeração e apoio de operadores profissionais.

8.1. Devido ao alto custo do equipamento, era de se esperar que as pessoas tentassem

8.2. reduzir o tempo desperdiçado. A solução geralmente adotada era o sistema em "batch"

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

9.1. Nos anos 60, muitos fabricantes de computadores tinham duas linhas de produto

9.2. distintas e totalmente incompatíveis.

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

10.1. Com o desenvolvimento de circuitos LSI (Large Scale Integration), chips

10.2. contendo milhares de transistores em um centímetro quadrado de silício, a era do

10.3. computador pessoal começava

11. Interrupções e Exceções

11.1. Durante a execução de um programa podem ocorrer alguns eventos inesperados,

11.2. ocasionado um desvio forçado no seu fluxo de execução. Estes tipos de eventos, são

11.3. conhecidos por Interrupção ou Exceção e pode ser consequência da sinalização de algum

11.4. dispositivo de hardware externo ao processador ou da execução de instruções do próprio

11.5. programa. A diferença entre interrupção e exceção é dada pelo tipo de evento ocorrido.

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

12.1. Em sistemas mais primitivos, a comunicação entre a UCP e os periféricos era

12.2. controlada por um conjunto de instruções especiais, denominadas instruções de entrada /

12.3. saída, executadas pela própria UCP. Essas instruções continham detalhes específicos de cada

12.4. periférico, como quais trilhas e setores de um disco deveriam ser lidos ou gravados em

12.5. determinado bloco de dados

13. Buffering

13.1. A técnica de buffering consiste na utilização de uma área de memória para a

13.2. transferência de dados entre os periféricos e a memória principal denominada buffer

14. Reentrância

14.1. É comum, em sistemas multiprogramáveis, vários usuários executarem os

14.2. mesmos utilitários do sistema operacional simultaneamente, como, por exemplo, um editor

14.3. de textos. Se cada usuário que utilizasse o editor trouxesse o código do utilitário para a

14.4. memória, haveria diversas cópias de um mesmo programa na memória principal, o que

14.5. ocasionaria um desperdício de espaço.

15. ESTRUTURA DOS SISTEMAS OPERACIONAIS

15.1. Existe uma grande dificuldade em compreender a estrutura e o funcionamento de

15.2. um sistema operacional, pois ele não é executado como uma aplicação tipicamente

15.2.1. ➢tratamento de interrupções;

15.2.2. ➢criação e eliminação de processos;

15.2.3. ➢sincronização e comunicação de processos;

15.2.4. ➢escalonamento e controle dos processos;

15.2.5. ➢gerência de memória;

15.2.6. ➢gerência do sistema de arquivos;

15.2.7. ➢operações de entrada e saída;

15.2.8. ➢contabilização e segurança do sistema

15.3. sequencial, com início, meio e fim.

16. System Calls

16.1. Uma preocupação que surge na grande maioria dos projetos de sistemas

16.2. operacionais é a implementação de mecanismos de proteção ao núcleo do sistema e de

16.3. acesso aos seus serviços. Caso uma aplicação, que tenha acesso ao núcleo, realize uma

16.4. operação que o danifique, todo o sistema poderá ficar comprometido e inoperante.

17. Modos de Acesso

17.1. Existem certas instruções que não podem ser colocadas diretamente à disposição

17.2. das aplicações, pois a sua utilização indevida ocasionaria sérios problemas à integridade do

17.3. sistema. Suponha que uma aplicação deseja atualizar um arquivo em disco

18. Arquiteturas do núcleo

18.1. A arquitetura do sistema é bastante complexa e deve atender aos requisitos de

18.2. confiabilidade, portabilidade, fácil manutenção, flexibilidade e desempenho.

19. Sistemas Monolíticos

20. PROCESSO

20.1. O processo é a base para implantação de um sistema operacional

20.1.1. Estrutura do Processo

20.1.1.1. O processador foi projetado para executar as instruções a partir do ciclo de busca

20.1.1.2. e execução. Imaginemos como os sistemas operacionais multiprogramáveis atendem os

20.1.1.3. diversos usuários e ainda mantém informações a respeito dos vários programas executados

20.1.1.4. ao mesmo tempo

20.2. multiprogramável.

21. Identificação

21.1. Cada processo criado pelo sistema recebe uma identificação única (chamada

21.2. de PID – Process IDentification), representada por um número e em alguns

21.3. casos também através de um nome.

22. Quotas

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

22.2. alocar. Caso uma quota seja insuficiente, o processo poderá ser executado

22.3. lentamente, interrompido ou mesmo não ser executado

23. Privilégios

23.1. Os privilégios ou direitos definem as ações que um processo pode fazer em

23.2. ralação a ele mesmo, aos demais processos e ao sistema operacional.

24. Espaço de endereçamento

24.1. O espaço de endereçamento é a área de memória pertencente ao processo onde as

24.2. instruções e dados do programa são armazenados para execução. Cada processo possui seu

24.3. próprio espaço de endereçamento, que deve ser devidamente protegido do acesso dos demais

24.4. processos, conforme é mostrado na figura abaixo

25. Bloco de controle do processo

25.1. O processo é implementado pelo SO através de uma estrutura de dados chamada

25.2. Bloco de controle de processos (Process Control Block – PCB

26. ESTRUTURA DOS SISTEMAS OPERACIONAIS

26.1. Existe uma grande dificuldade em compreender a estrutura e o funcionamento de um sistema operacional, pois ele não é executado como uma aplicação tipicamente sequencial, com início, meio e fim.

26.1.1. O sistema operacional é formado por um conjunto de rotinas (procedimentos) que

26.1.2. oferecem serviços aos usuários do sistema e suas aplicações, bem como a outras rotinas do

26.1.3. próprio sistema

27. As principais funções do núcleo

27.1. tratamento de interrupções;

27.2. criação e eliminação de processos;

27.3. sincronização e comunicação de processos;

27.4. escalonamento e controle dos processos;

27.5. gerência de memória;

27.6. gerência do sistema de arquivos;

27.7. operações de entrada e saída;

27.8. contabilização e segurança do sistema

28. System Calls

28.1. Uma preocupação que surge na grande maioria dos projetos de sistemas

28.2. operacionais é a implementação de mecanismos de proteção ao núcleo do sistema e de

28.3. acesso aos seus serviços. Caso uma aplicação, que tenha acesso ao núcleo, realize uma

28.3.1. Modos de Acesso

28.3.1.1. Existem certas instruções que não podem ser colocadas diretamente à disposição

28.3.1.2. das aplicações, pois a sua utilização indevida ocasionaria sérios problemas à integridade do

28.3.1.3. sistema. Suponha que uma aplicação deseja atualizar um arquivo em disco

28.4. operação que o danifique, todo o sistema poderá ficar comprometido e inoperante

29. Arquiteturas do núcleo

29.1. A arquitetura do sistema é bastante complexa e deve atender aos requisitos de

29.2. confiabilidade, portabilidade, fácil manutenção, flexibilidade e desempenho.

29.2.1. Sistemas Monolíticos

29.2.1.1. Essa arquitetura pode ser comparada com uma aplicação formada por vários

29.2.1.2. módulos que são compilados separadamentee depois unidos por links, formando um único

29.2.1.3. programa, onde os módulos podem interagir livremente

30. Sistemas em Camadas

30.1. Um sistema em camadas divide o sistema operacional em camadas sobrepostas.

30.2. Cada módulo oferece um conjunto de funções que podem ser utilizadas por outros módulos.

30.3. Módulos de uma camada podem fazer referência apenas a módulos das camadas inferiores

31. Mudanças de Estado de Processo

31.1. . Existem quatro mudanças de estados que podem ocorrer:

31.1.1.  Pronto → Execução – Após a criação de um processo, o sistema o coloca em

31.1.2. uma lista de processos no estado de pronto, aguardando para ser executado.

31.1.3. Cada sistema operacional tem sua política de escalonamento.

31.1.4.  Execução → Espera – Um processo passa para o estado de espera por

31.1.5. eventos gerados pelo próprio processo, como uma operação de E/S, ou por

31.1.6. eventos externos. Um evento externo é gerado, por exemplo, quando o

31.1.7. sistema operacional suspende por um período de tempo a execução de um

31.1.8. processo.

31.1.9.  Espera → Pronto – Ocorre quando uma operação solicitada é atendida ou o

31.1.10. recurso esperado é concedido. Não existe a mudança de espera para execução

31.1.11. diretamente.

31.1.12.  Execução → Pronto – Ocorre através de eventos gerados pelo sistema, como

31.1.13. o termino da fatia de tempo que o processo possui para sua execução. Então,

31.1.14. aguarda nova oportunidade para continuar seu processamento.

32. Criação e Eliminação de Processos

32.1. Processos são criados e eliminados por diversas razões. A criação de um processo

32.2. ocorre quando o sistema operacional adiciona um novo PCB à sua estrutura e reserva espaço

32.3. na memória para uso

33. processos independentes

33.1. é a maneira mais simples de se implementar

33.2. a concorrência em sistemas multiprogramáveis. Neste caso, não existe vínculo entre o

33.3. processo criado e seu criador.

34. Subprocessos

34.1. são criados dentro de uma estrutura hierárquica. E neste caso, o

34.2. processo criador é denominado processo pai e o novo processo é chamado de subprocesso

34.3. ou processo filho

35. thread

35.1. foi estabelecido com a intenção de reduzir o tempo gasto na

35.2. criação, eliminação e troca de contexto de processos nas aplicações concorrentes, bem como

35.3. economizar recursos do sistema como um todo

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

36.1. Os processos podem ser classificados como CPU-Bond ou I/O-Bond, de acordo

36.2. com a utilização do processador e dos dispositivos de E/S.

36.3. Um processo é definido como CPU-Bound (ligado à CPU), quando passa a maior

36.4. parte do tempo no estado de execução, ou seja, utilizando o processador

37. Programação Multithreads

38. Programação Multithreads

38.1. O desenvolvimento de aplicações multithread não é simples, pois exige que a

38.2. comunicação e o compartilhamento de recursos entre os diversos threads seja feito de forma

38.3. sincronizada para evitar problemas de inconsistências e deadlock

39. Arquitetura e Implementação

39.1. O conjunto de rotinas disponíveis para que uma aplicação utilize as facilidades

39.2. dos threads é chamado de pacote de threads.

40. Threads em Modo Usuário

40.1. Threads em modo usuário (TMU) são implementados pela aplicação e não pelo

40.2. sistema operacional.

41. Threads em Modo Kernel

41.1. Threads em Modo Kernel (TMK) são implementados diretamente pelo núcleo do

41.2. sistema opeacional, através de chamadas a rotinas do sistema que oferecem todas as funções

41.3. de gerenciamento e sincronização.

42. Threads em Modo Híbrido

42.1. combina as vantagens de threads

42.2. implementados em modo usuário (TMU) e threads em modo kernel (TMK). Um processo

42.3. pode ter vários TMKs, e por sua vez, um TMK pode ter vários TMUs.

43. Scheduler Activations

43.1. Os problemas apresentados no pacote de threads em modo híbrido existem

43.2. devido à falta de comunicação entre threads em modo usuário e em modo kernel. O modelo

43.3. ideal deveria utilizar as facilidades do pacote em modo kernel com o desempenho e

43.4. flexibilidade do modo usuário.

44. Aplicações Concorrentes

44.1. Em aplicações concorrentes, pode ser necessário que os processos comuniquemse entre si.

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

45.1. Existem varias notações para especificar quais partes de um programa que devem

45.2. ser executadas concorrentemente

46. StarvationStarvation

46.1. A primeira situação indesejada é conhecida como starvation (ou espera

46.2. indefinida).

47. Sincronização Condicional

47.1. é uma situação onde o acesso a um recurso

47.2. compartilhado exige a sincronização de processos vinculada a uma condição de acesso

48. Semáforos

48.1. O conceito de semáforos foi proposto em 1965, sendo apresentado como um

48.2. mecanismo de sincronização que permitia implementar, de forma simples, a exclusão mútua

48.3. sincronização condicional entre processos

49. Monitores

49.1. são mecanismos de sincronização de alto nível que tornam mais

49.2. simples o desenvolvimento de aplicações concorrentes.

50. Troca de mensagens

50.1. A troca de mensagens é um mecanismo de comunicação e sincronização entre os

50.2. processos, implementado pelo sistema operacional através de duas rotinas do sistema SEND

50.3. e RECEIVE.

51. Deadlock

51.1. O Deadlock existe em qualquer sistema multiprogramável. Dizemos que um

51.2. processo está em Deadlock quando este para de responder porque está esperando por um

51.3. evento que nunca ocorrerá. Esta situação é conseqüência do problema da exclusão mútua

51.4. Troca de mensagens

51.4.1. A troca de mensagens é um mecanismo de comunicação e sincronização entre os

51.4.2. processos, implementado pelo sistema operacional através de duas rotinas do sistema SEND

51.4.3. e RECEIVE.

52. Critérios de escalonamento

52.1. Utilização do processador: corresponde a uma taxa de utilização, que na maioria

52.2. dos sistemas varia entre 30 e 90%. Uma utilização abaixo dos 30% indicaria um

52.3. sistema ocioso, com carga de processamento baixa, enquanto uma taxa de utilização

52.3.1. Throughput: é o número de processos executados em um determinado intervalo de

52.3.1.1. Tempo de Processador: é o tempo que um processo leva no estado de execução,

52.3.1.2. durante seu processamento. As políticas de escalonamento não interferem neste

52.3.1.3. parâmetro, sendo este tempo função apenas do código executável e da entrada/saída

52.3.1.4. de dados

52.3.2. tempo.

52.4. acima dos 90% pode indicar um sistema bastante carregado, próximo da sua

52.5. capacidade máxima (em alguns casos tal situação pode levar a um crash – travamento

52.6. do sistema).

53. Escalonamentos Não-Preemptivos e Preemptivos

53.1. Escalonamentos do tipo não-preemptivos são aqueles onde o sistema operacional não pode interromper o processo em execução para retirá-lo da CPU

53.1.1. Já os escalonamentos preemptivos são caracterizados pela possibilidade de o

53.1.2. sistema operacional interromper o processo em execução para retirá-lo da CPU e dar lugar a

53.1.3. outro

54. São escalonamentos não-preemptivos

54.1. FIFO: o processo que chegar primeiro à fila de pronto é selecionado para execução,

54.1.1. SJF (Shortest Job First): este escalonamento seleciona o processo que tiver o

54.1.2. menor tempo de processador ainda por executar. Desta forma, o processo que estiver

54.1.3. na fila de pronto com menor necessidade de tempo de CPU para terminar o seu

54.1.4. processamento será o escolhido para ocupar a CPU.

54.1.5. Troca de mensagens

54.1.5.1. A troca de mensagens é um mecanismo de comunicação e sincronização entre os

54.1.5.2. processos, implementado pelo sistema operacional através de duas rotinas do sistema SEND

54.1.5.3. e RECEIVE.

54.1.6. Troca de mensagens

54.1.6.1. A troca de mensagens é um mecanismo de comunicação e sincronização entre os

54.1.6.2. processos, implementado pelo sistema operacional através de duas rotinas do sistema SEND

54.1.6.3. e RECEIVE.

54.2. e permanece utilizando o processador até terminar sua execução ou ser interrompido

54.3. por E/S

55. Aplicações Concorrentes

56. Cooperativo: este escalonamento busca aumentar o grau de concorrência no

57. processador. Neste caso, um processo em execução pode voluntariamente liberar o

58. processador retornando à fila de pronto, possibilitando que um novo processo seja

59. São escalonamentos preemptivos

59.1. Circular: é um tipo de escalonamento projetado especialmente para sistemas em

59.2. tempo compartilhado. É muito semelhante ao FIFO (obedece a ordem de chegada á

59.3. fila de PRONTO), mas quando um processo passa para o estado de execução há um

59.4. limite de tempo para o uso contínuo do processador, chamado fatia de tempo (timeslice) ou quantum. Assim, toda vez que um processo é selecionado para execução

59.5. uma nova fatia de tempo lhe é concedida.

60. escalonado, permitindo melhor distribuição do tempo do processador.

61. Por Prioridades: funciona com base num valor associado a cada processo,

62. Swapping

62.1. É uma técnica aplicada à gerência de memória que visa dar maior taxa de

62.2. utilização à memória principal, melhorando seu compartilhamento. Visa também resolver o

62.3. problema da falta de memória principal num sistema

63. Memória Virtual

63.1. é uma técnica sofisticada e poderosa de gerência de memória

63.2. onde as memórias principal e secundária são combinadas, dando ao usuário a impressão de

63.3. que existe muito mais memória do que a capacidade real de memória principal.

63.4. Troca de mensagens

63.4.1. A troca de mensagens é um mecanismo de comunicação e sincronização entre os

63.4.2. processos, implementado pelo sistema operacional através de duas rotinas do sistema SEND

63.4.3. e RECEIVE.

64. Estrutura de Diretórios

64.1. É como o Sistema organiza logicamente os arquivos

64.1.1. Nível único

64.1.1.1. Diretório pessoa

64.1.1.1.1. Múltiplos níveis (ÁRVORE

65. Sistemas de alocação de arquivos

65.1. FAT,FAT32,NTFS

66. denominado prioridade de execução