1. Camadas
1.1. Aplicações
1.2. Utilitários
1.3. Sistema Operacional
1.4. Linguagem de Máquina
1.5. Microprogramação
1.6. Circuitos Eletônicos
2. introdução
2.1. Um sistema operacional é um conjunto de rotinas executadas pelo processador, de forma semelhante aos outros programas utilizados. A principal função de um sistema operacional é controlar o funcionamento do computador, gerenciando a utilização eocompartilhamentodeformarganizadasdiversosrecursos,omoprocessadores, memórias e dispositivos de entrada e saída.
2.2. Funções basica
2.2.1. Fornecer uma interface com o usuário
2.2.2. Gerenciar e manter o sistema de arquivos
2.2.3. Dar suporte aos programas que são executados
3. Scheduler Activations
3.1. Os problemas apresentados no pacote de threads em modo híbrido existem devido à falta de comunicação entre threads em modo usuário e em modo kernel.
3.2. Gerenciar a operação dos dispositivos de hardware do computador
4. Estrutura
4.1. System Calls
4.2. Modos de Acesso
4.3. Arquiteturas do núcleo
4.4. Sistemas Monolíticos
4.5. Sistemas em Camadas
4.6. Máquinas Virtuais
4.7. Arquitetura Microkernel
5. Processos
5.1. Espaço de endereçamento
5.2. Bloco de controle do processo
5.3. Estados do Processo
5.3.1. Execução (running) – Um processo é dito no estado de execução quando está sendo processado pela CPU
5.3.2. Pronto (ready) – Um processo está no estado de pronto quando aguarda apenas para ser executado.
5.3.3. Espera (wait) – Um processo no estado de espera aguarda por algum evento externo ou por algum recurso para prosseguir seu processamento.
5.4. Mudanças de Estado de Processo
5.4.1. Pronto → Execução
5.4.2. Execução → Espera
5.4.3. Espera → Pronto
5.4.4. Execução → Pronto
5.5. Criação e Eliminação de Processos
5.6. Processos Independentes, Subprocessos e Threads
5.7. Processos Foreground e Background
5.7.1. Um processo foreground é aquele que permite a comunicação direta do usuário com o processo durante sua execução
5.7.2. Um processo background é aquele onde não existe a comunicação com o usuário durante seu processamento.
5.8. Processos do Sistema Operacional
5.9. Processos CPU-Bound e I/O-Bound
5.10. Sinais
6. THREAD
6.1. Ambiente Monothread
6.1.1. Um programa é uma seqüência de instruções, compostas de desvios, repetições e chamadas a procedimentos e funções.
6.2. Ambiente Multithread
6.2.1. Em um ambiente multithread, ou seja, com múltiplos threads, não existe a idéia de programas associados a processos, mas sim a threads
7. Operações de Entrada/Saída
7.1. UCP
7.2. Memória Principal
7.3. Canal de E/S
7.4. Dispositivos de Entrada e Saída
7.5. Dispositivos de Entrada e Saída
7.5.1. . Buffering
7.5.1.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.
7.5.1.1.1. UCP
7.5.1.1.2. Memória Principal
7.5.1.1.3. Controlador
7.6. Reentrância
7.6.1. É comum, em sistemasmultiprogramáveis, vários usuários executarem osmesmos utilitários do sistema operacional simultaneamente, como, por exemplo, um editorde textos. Se cada usuário que utilizasse o editor trouxesse o código do utilitário para amemória, haveria diversas cópias de um mesmo programa na memória principal, o queocasionaria um desperdício de espaço
8. MÁQUINA DE CAMADAS
8.1. Aplicações
8.1.1. O sistema computacional composto somente de hardware, tem pouca utilidade. É através do software que o usuário interage com a máquina.
8.2. Utilitários
8.3. Sistema Operacional
8.4. Linguagem de Máquina
8.4.1. Um computador para se adequar ao usuário, deve possuir não apenas dois níveis, mas quantos forem necessários para seu bom funcionamento.
8.5. Microprogramação
8.6. Circuitos Eletônicos
9. Evolução
9.1. A Primeira Geração (1945-1955): Válvulas e Painéis com Plugs
9.2. A Segunda Geração (1955 - 1965): Transistores e Sistemas Batch
9.3. A Terceira Geração (1965 - 1980): CIs e Multiprogramação
9.4. A Quarta Geração (1980-1990): Computadores Pessoais
9.4.1. O professor John Von Neumann, era onsultor do projeto do ENIAC e projetouuma máquina que tanto os dados quanto as instruções pudessem ser armazenados na mesma memória, tornando o processo de programação mais eficiente
9.4.1.1. Unidade de Memória
9.4.1.2. Unidade Aritmética e Lógica
9.4.1.3. Unidade de Entrada
9.4.1.4. Unidade de Saída
9.4.1.5. Unidade de Controle
9.5. A evolução dos sistemas operacionais está ligada ao desenvolvimento dos computadores
9.5.1. Foi em 1642 que Blaise Pascal inventou a máquina de somar para ajudar seu pai no processo de arrecadação de impostos. Em 1673, Gottfried Leibniz criou uma máquina capaz de somar e multiplicar. Mas foi só em 1820, que o francês Charles Colmar inventou uma máquina capaz de fazer as quatro operações aritméticas.
9.5.1.1. Em 1822 o matemático inglês Charles Baddage criou uma máquina para cálculos e equações polinomiais. Em 1833 Baddage evoluiu sua ideia e projetou a Máquina Analítica.
9.5.1.2. Em 1854, George Boole criou a lógica booleana. Base modelo da computação digital utilizada até hoje.
9.5.1.3. Em 1937, o matemático Alan Turing desenvolveu a Máquina Universal, capaz de executar qualquer sequência de instruções
9.5.1.4. Na década de 40 durante a segunda guerra mundial, desencadeou o desenvolvimento de máquinas para acelerar os procedimentos manuais realizados para fins militares. Surgiram os primeiros computadores eletromecânicos, formados por milhares de válvulas e eram tão grandes que ocupavam prédios inteiros. Nesta década, foi criado a máquina Colossus que foi utilizada para quebrar códigos nazistas.
10. Concorrência
10.1. Sistemas Monoprogramáveis X Multiprogramaveis
10.2. Interrupções e Exceções
10.3. Operações de Entrada/Saída
10.4. . Buffering
10.5. Spooling
10.6. Reentrância
11. Sistemas Monoprogramáveis X Multiprogramaveis
11.1. Devido a limitações dos sistemas monoprogramaveis, surgiram os sistemas operacionais multiprogramaveis.
11.2. No tipo de sistema monoprogramavel, existe bastante desperdício de processador, o tempo de espera entre uma instrução e outra é longo se comparada com a velocidade do processador em executar as instruções.
11.3. Nos sistemas multiprogramaveis, vários programas podem estar residentes em memória, concorrendo pela utilização do processador.
11.3.1. Interrupções e Exceções
11.3.1.1. Salva o conteudo dos registradores na pilha de controle
11.3.1.2. Identifica a origem do evento
11.3.1.3. Obtém o endereço da rotina de tratamento
11.3.1.4. Restaura o conteúdo dos registradores
12. ESTRUTURA DOS SISTEMAS OPERACIONAIS
12.1. System Calls
12.2. Modos de Acesso
12.3. Arquiteturas do núcleo
12.4. Sistemas Monolíticos
12.5. Sistemas em Camadas
12.6. Máquinas Virtuais
12.7. Arquitetura Microkernel
12.7.1. Deadlock
12.7.1.1. Prevenção do Deadlock
12.7.1.2. Detecção de Deadlock
12.7.1.3. Correção do Deadlock
13. GERÊNCIA DE MEMÓRIA / MEMÓRIA VIRTUAL
13.1. Funções
13.1.1. Como o processador somente executa o que está na memória principal
13.1.2. memórias secundárias é muito superior ao tempo de acesso à memória principal,
13.1.3. Memória Virtual
13.1.3.1. l é 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.