2. Ementa
Introdução à Sistemas Operacionais.
Conceitos de processos.
Comunicação, Concorrência e Sincronização
de Processos.
Gerenciamento de Memória: Memória Virtual,
Paginação, Segmentação e “Swap”.
Gerenciamento de Arquivos.
Gerenciamento de Dispositivos de
Entrada/Saída.
Alocação de Recursos.
2
4. Histórico
1º computador:
Máquina analítica de Charles Babbage (1792-1871);
Primeira Geração (1945-1955):
Válvulas e painéis;
Segunda Geração (1956-1965):
Transistores e Sistemas Batch;
Terceira Geração(1966-1980):
Circuitos Integrados e Multiprogramação;
Quarta Geração(1981-1990):
Computadores Pessoais;
Quinta Geração (1991- 20??):
Atualidade; Sistemas Móveis
4
5. Estruturas dos Sistemas Operacionais Modernos
Um velho conhecido pelos usuários de microcomputadores é a famosa "tela azul".
Quem já utilizou sistemas operacionais antigos, como o Windows 95, certamente
já se deparou com este problema. A "tela azul" era de fato uma violação de
acesso que tornava o sistema instável.
5
6. Estruturas dos Sistemas Operacionais Modernos
A partir do 80386, esse problema foi solucionado em termos
de hardware através da possibilidade de 2 modos de
execução: o modo protegido (Windows rodando) e o modo
real. Ficava a cargo do sistema operacional a comutação
entre esses dois modos por questões de compatibilidade.
A instabilidade evidenciada pela "tela azul" tem razões
históricas. Os primeiros processadores da linha x86 possuíam
um único modo de operação: o modo real. Dessa forma,
todas as operações poderiam ser executadas diretamente
pelas aplicações que, ao produzir erros, geravam panes no
sistema.
6
7. Estruturas dos Sistemas Operacionais Modernos
Voltando à "tela azul"...
As aplicações podiam executar diretamente as funções do
kernel sem a proteção da mudança de modo, ou seja, o
erro acontecia após a execução de uma função do kernel.
Com a mudança de modo, se a execução não for segura,
a aplicação será impedida de continuar a execução e o
sistema permanecerá estável.
7
8. Sistema Operacional
Pode ser dividido em praticamente quatro componentes:
Hardware;
Sistema Operacional;
Programas Aplicativos;
Usuários.
8
9. Sistema Operacional
Hardware – unidade central de processamento (CPU),
memória e os dispositivos de entrada/saída fornece
recursos básicos de computação;
Sistema Operacional – controla e coordena o uso do
hardware entre vários programas aplicativos diferentes;
Programas aplicativos – processadores de texto, planilhas
eletrônicas, compiladores e navegadores Web definem as
maneiras que estes recursos serão usados.
9
11. Tarefas do sistema operacional
Gerenciamento do processador;
Gerenciamento de memória;
Gerenciamento de dispositivos;
Gerenciamento de armazenamento;
Interface de aplicativos;
Interface do usuário.
11
12. Conceitos Fundamentais de
Sistemas Operacionais
Cada parte (módulo ou função) de um Sistema Operacional
é responsável pelo gerenciamento de um recurso específico.
Esses recursos são:
Tempo de CPU;
Espaço em memória;
Espaço em disco;
Acesso aos dispositivos de comunicação;
Bibliotecas de software.
12
13. SO – Visão do Usuário
Gerenciar recursos é garantir a utilização compartilhada do
recurso sem que ocorram erros que possam gerar instabilidade
ou falha no sistema.
Sistema Operacional fornece:
Acesso ao sistema;
Possibilidade de criar e gerir arquivos e diretórios;
Ambiente para execução de programas;
Acesso aos dispositivos de E/S;
Acesso ao conteúdo de arquivos;
Detecção de erros.
13
14. Conceitos Iniciais
Camada de software localizada entre os
aplicativos e o hardware;
Formas de interação (SHELL):
CLI: Comand Line Interface (Linux).
GUI: Graphic User Interface (Windows).
14
17. Conceitos Iniciais – “SHELL”
O termo Shell é mais usualmente utilizado para se referir
aos programas de sistemas do tipo Unix que podem ser
utilizados como meio de interação entre interface de
usuário para o acesso serviços do kernel no sistema
operacional;
Este é um programa que recebe, interpreta e executa os
comandos de usuário, aparecendo na tela como uma
linha de comandos, representada por um interpretador
de comandos, que aguarda na tela os comandos do
usuário.
17
21. Classificação de Sistemas Operacionais
A classificação é utilizada como uma forma sintética de
apresentar, em poucas palavras, as características de um
Sistema Operacional.
21
Sistemas Monotarefa x Sistemas Multitarefa
Sistemas Monousuário x Sistemas Multiusuário
Sistemas Monoprocessados x Sistemas Multiprocessados
22. Classificação de Sistemas Operacionais
Aplicativos
Monotarefa: executa uma tarefa de cada vez.
Exemplo: DOS.
Multitarefa: processos podem ser executados
simultaneamente (+ que 1processador)
/concorrentemente.
Exemplo: Windows XP, Windows 7, Linux, MacOS.
22
23. Classificação de Sistemas Operacionais
23
Executa Espera Executa Espera
Monotarefa
Executa Espera Executa Espera
Espera Executa Espera Executa
Multitarefa
Programa A
Programa B
24. Classificação de Sistemas Operacionais
Usuários
Definem a capacidade de gerenciar mais de um usuário ao
mesmo tempo, compartilhando os mesmo recursos de software e
hardware.
Monousuário: Admite e gerencia apenas um usuário de cada vez
– não permite que mais de um usuário esteja "logado"
simultaneamente.
Multiusuário: Admite e gerencia vários usuários ao mesmo tempo
– permite que mais de um usuário esteja "logado"
simultaneamente.
24
25. Classificação de Sistemas Operacionais
Quantidade de Processadores
Monoprocessado: Somente reconhece e utiliza um
único processador.
Exemplo: Windows 98.
Multiprocessado: Reconhece e utiliza mais de um
processador ou mais de um núcleo.
Exemplo: Windows XP, Windows 7, Linux.
25
27. Hyper-threading
Hyper-Threading ou hiperprocessamento é uma tecnologia usada
em processadores que o faz simular dois processadores tornando o
sistema mais rápido quando se usa vários programas ao mesmo tempo;
Uma tecnologia desenvolvida pela Intel e foi primeiramente empregada
no processador Pentium 4 . Apesar do foco da tecnologia Hyper-
Threading ser os processadores para servidores de rede, os
processadores da série Intel® Core2™ (Extreme Edition) e Intel® Core™
(i3,i5 e i7) usufruem dessa tecnologia proporcionando até 12 núcleos
totais. Essa técnica foi criada para oferecer maior eficiência na
utilização dos recursos de execução do processador.
27
29. Hyper-threading -Modelos
Intel Pentium 4;
Intel Pentium 4 Extreme Edition;
Intel Pentium D Extreme Edition;
Todos os modelos e gerações do Intel Core i3;
Todos os modelos mobile e de todas as gerações do Core i5;
Alguns modelos desktop da primeira geração do Core i5;
Todos os modelos e gerações do Intel Core i7;
Intel Atom N450;
Intel Atom Z2480;
Intel Atom D510;
Intel Atom D525;
Intel Atom N270;
Intel Pentium Dual Core.
29
33. CPU
Unidades de Controle: Controla a operação do CPU e,
portanto, do computador;
Unidade Lógica e Aritmética (ULA): desempenha as
funções de processamento de dados;
Registradores: fornece o armazenamento interno de
dados para a CPU;
Interconexão da CPU: possibilita a comunicação entre
a unidade de controle, a ULA e os registradores.
33
34. Classificação de Sistemas Operacionais
Rede
Conjunto de módulos que ampliam os sistemas
operacionais, completando-os com um
conjunto de funções básicas que tornam
transparentes o uso de recursos compartilhados
da rede.
34
35. Classificação de Sistemas Operacionais
Rede
Suporte a operações em rede;
Compartilhamento de recursos em rede;
Usuário precisa saber onde estão os recursos;
Recursos pertencem a computadores específicos.
35
37. Classificação de Sistemas Operacionais
Distribuídos
Conjunto de computadores independentes que se
apresenta a seus usuários como um Sistema único e
coerente;
Coleção de computadores autonômos interconectados
por uma rede, com software projetado para produzir
uma aplicação integrada;
Sabemos que existe um sistema distribuído quando a
falha de um computador que você nunca ouviu falar
impede que você faça qualquer trabalho.
37
38. Classificação de Sistemas Operacionais
Distribuídos
Ambiente computacional virtual;
Visão unificada;
Localização abstrata de armazenamento e
processamento;
Tarefa processada em vários computadores.
38
39. Classificação de Sistemas Operacionais
Redes X Distribuídos
Rede:
Usuário precisa se preocupar com a localização
dos recursos.
Distribuído:
Usuário não tem que se preocupar com a
localização dos recursos. O próprio SO “se vira”.
39
40. Classificação de Sistemas Operacionais
Embarcados/Embutidos.
Inseridos em hardware com recursos limitados;
Portáteis;
Tarefas predefinidas;
Requisitos Específicos.
PC.
Uso doméstico.
Servidor.
Maior Robustez.
40
42. A inicialização do sistema operacional
Quando você liga o computador, o primeiro programa
executado é, geralmente, um conjunto de instruções
armazenadas na memória ROM (NV).
Este código examina o hardware do sistema para ter
certeza de que tudo está funcionando corretamente. Este
auto teste, é conhecido como POST (power-on self test)
ele verifica a CPU, a memória, a BIOS (Sistema de Entrada
e Saída Binário ), procura por erros e armazena o
resultado em uma memória especial.
42
43. A inicialização do sistema operacional
Ao completar o POST, o software é carregado na
memória ROM (às vezes chamado de BIOS ou
firmware) ativa as unidades de disco do
computador.
Na maioria dos computadores modernos, quando
o computador ativa o disco rígido ele encontra o
trecho inicial do sistema operacional, conhecido
como bootstrap loader (sistema de inicialização).
43
46. A inicialização do sistema operacional
O bootstrap loader é um pequeno programa que tem uma
única função. Ele carrega o sistema operacional na memória
e permite que ele comece a operar.
Em sua forma mais básica, ele configura os pequenos
programas de driver que fazem interface e controlam os
vários subsistemas de hardware do computador. Ele configura
as partes da memória que contêm o sistema operacional, as
informações de usuário e os aplicativos. Ele também
estabelece as estruturas de dados responsáveis pelos
inúmeros sinais, flags e semáforos que são usados para a
comunicação com (e entre) os subsistemas e aplicativos do
computador. Então ele entrega o controle do computador ao
sistema operacional.
46
47. Acompanhe em ordem cronológica as
etapas que ele percorre
1. Acessa a memória CMOS, um circuito integrado que
grava informações referentes ao hardware. Nela, o BIOS
estabelece reconhecimento e comunicação com
peças como placas de vídeo e memória RAM.
*CMOS é a abreviação de "Complementary Metal Oxide Semiconductor".
O CMOS é uma pequena área de memória volátil, alimentada por uma bateria,
que é usada para gravar as configurações do Setup da placa mãe.
47
48. Acompanhe em ordem cronológica as
etapas que ele percorre
2. A segunda fase, conhecida como Power-on Self
Test (POST) nada mais é do que um conjunto de teste
que a BIOS realiza para saber se tudo está se
inicializando da maneira correta. Quando alguns
componentes essenciais estão faltando, alguns beeps ou
mensagens na tela alertam o usuário.
48
49. Acompanhe em ordem cronológica as
etapas que ele percorre
3. A etapa seguinte consiste na procura de
alguma fonte para inicializar o sistema
operacional. Tal fonte é configurável e pode
ser um disco rígido (padrão), CD-ROM,
pendrive entre outros.
49
50. Acompanhe em ordem cronológica as
etapas que ele percorre
4. Agora, o BIOS lê o setor zero (que contém
apenas 512 bytes, denominado Master Boot
Record) do HD. Essa área contém um código
que alavanca a inicialização do sistema
operacional. Outros dispositivos de boot (CDs,
etc.) têm a capacidade de emular esse setor
zero.
50
51. Acompanhe em ordem cronológica as
etapas que ele percorre
5. No caso do Windows, o Master Boot
Record (MBR) verifica qual partição do HD está
ativa (configurada como Master) e inicializa o
“setor um” dela — essa área tem um código
com a simples missão de carregar o setor dois.
51
52. MBR – Master Boot Record
Setor do disco rígido também chamado de “Setor de Boot Mestre”,
onde é encontrada a tabela de partição do disco que dará boot;
É lida pela BIOS, que interpreta a tabela de partição e sem seguida
carrega um programa chamado “Bootstrap”, que é responsável pelo
carregamento do Sistema Operacional no setor de boot da partição
que dará o boot;
Tanto o gerenciador de boot quanto a tabela de particionamento do
HD são salvos no primeiro setor do HD (a famosa trilha MBR), que
contém apenas 512 bytes. Destes, 446 bytes são reservados para o
setor de boot, enquanto os outros 66 bytes guardam a tabela de
partição. 52
53. MBR – Master Boot Record
Ao trocar de sistema operacional, você geralmente
subscreve a MBR com um novo gerenciador de boot, mas a
tabela de particionamento só é modificada ao criar ou
deletar partições. Caso, por qualquer motivo, os 66 bytes da
tabela de particionamento sejam sobrescritos ou
danificados, você perde acesso a todas as partições do HD.
O HD fica parecendo vazio, como se tivesse sido
completamente apagado. Apesar disso, é quase sempre
possível recuperar as partições (e os dados dentro delas)
usando um programa de recuperação, como o TESTDISK.
53
54. MBR – Master Boot Record
Para manter dois ou mais sistemas instalados
no mesmo micro é necessário instalar um boot
manager, um pequeno programa que ficará
residente na trilha MBR e será carregado cada
vez que o micro é ligado.
54
55. MBR – Master Boot Record
O boot manager exibe então uma tela perguntando qual
sistema operacional deve ser inicializado. A maior parte dos
sistemas operacionais atuais trazem algum boot manager.
No Linux temos o Lilo e o Grub, que podem ser usados para
combinar Linux e Windows, ou mesmo várias versões
diferentes do Linux, de acordo com a configuração. Existem
ainda produtos comerciais, como o BootMagic, que faz
parte do PartitionMagic.
55
56. Acompanhe em ordem cronológica
as etapas que ele percorre
6. A etapa seguinte consiste na leitura de um
arquivo de configuração de boot, o Boot
Loader (quando falamos do Windows, trata-se
do NTLDR).
56
57. Acompanhe em ordem cronológica
as etapas que ele percorre
7. A partir dele, é inicializado o núcleo (kernel).
Assim como a BIOS estabelece a ligação entre
hardware e sistema, o kernel serve para firmar
uma comunicação estável entre hardware e
software. Nessa fase, é ele quem assume o
controle do computador.
57
58. Kernel
Significa “núcleo”. Em linhas gerais, o kernel é o “cérebro” do
computador. Peça fundamental dos sistemas operacionais, ele é a
ligação entre o processamento dos dados e os programas.
O kernel é responsável por ser o elo do hardware (parte física) com
o software (parte lógica) do computador. Em outras palavras, o
principal objetivo é gerenciar o computador e permitir que os
aplicativos sejam executados e façam uso dos recursos que a
máquina tem. O núcleo também tem que garantir, por exemplo,
que a memória RAM seja usada em seu potencial sem risco para o
computador.
58
59. Kernel
Assim que você liga o PC, o kernel é acionado e começa a
detectar todo o hardware que ele possui e o que precisa para
funcionar (monitor, placa de vídeo, etc.). Depois que o sistema
operacional é carregado, o núcleo assume outras funções:
gerenciar os processos, os arquivos, a memória e os dispositivos
periféricos, fazendo com que ele seja o “organizador” de tudo o
que acontece na máquina.
Tem ainda a responsabilidade de decidir, a qualquer momento,
qual dos programas que estão sendo executados no momento
devem ser alocados para o processador (ou processadores).
59
60. Kernel
Tratamento de interrupções;
criação e eliminação de processos;
sincronização e comunicação entre processos;
escalonamento e controle dos processos;
gerência de memória;
gerência do sistema de arquivos;
operações de entrada e saída
contabilização e segurança do sistema.
60
61. System Calls (Unix)
Application Program Interface (Windows)
Mecanismo de proteção ao núcleo do sistema e de acesso
aos seus serviços;
O usuário (ou aplicação), quando deseja solicitar algum
serviço do sistema, realiza uma chamada a uma de suas
rotinas (ou serviços) através da system calls (chamadas ao
sistema).
Ao invés de executar diretamente funções no kernel, a
aplicação executa uma função intermediária, que verifica
se o acesso ao kernel é seguro e, só então, completa a
operação.
61
63. Estruturas dos Sistemas Operacionais Modernos
Modo Usuário x Modo Kernel
As aplicações são executadas em modo usuário, ou seja, modo que
não possui privilégios para operações que coloquem o sistema em
risco, tais como, escrever no disco, criar novas tarefas, etc;
Quando essas aplicações precisam executar tarefas críticas, é
necessário que haja uma mudança para modo Kernel (núcleo do
Sistema Operacional, responsável pelas tarefas críticas do sistema). Essa
mudança ocorre através de uma "system call" (chamada ao sistema).
63
64. Estruturas dos Sistemas Operacionais Modernos
Modo Usuário: Aplicação só pode executar instruções
conhecidas como não-privilegiadas, tendo acesso a um
número reduzido de instruções;
Modo Kernel: Aplicação pode ter acesso ao conjunto
total de instruções do processador.
64
65. Estruturas dos Sistemas Operacionais Modernos
Instruções privilegiadas: Têm o poder de
comprometer o sistema;
Instruções não privilegiadas: não oferecem perigo
ao sistema;
O modo de acesso é um mecanismo para impedir
problemas de segurança e mesmo violação do
sistema.
65
66. Modo de Acesso
O modo de acesso é determinado por um
conjunto de bits, localizado no registrador de
status (PSW) do processador, que indica o modo
de acesso corrente;
Por intermédio desse registrador, o hardware
verifica se a instrução pode ou não ser
executada.
66
67. Registradores
Quando o processador executa as instruções, os dados são armazenados,
temporariamente, nas pequenas memórias rápidas de 8, 16, 32 ou 64 bits que
chamamos registros. Conforme o tipo do processador, o número global de
registros pode variar entre uma dezena e várias centenas.
Os principais registros são:
o registrador de dados ou acumulador (ACC), armazenando os resultados das
operações aritméticas e lógicas;
o registrador de status (PSW, Processador Status Word), armazenando os
indicadores sobre o estado do sistema (retenção, excesso, etc.);
o registrador de instrução (RI), com a instrução de processamento em curso;
o contador de programa (CO ou PC para Program Counter), com o endereço da
próxima instrução a ser processada;
o registro reserva, que armazena, temporariamente, um dado vindo da memória.
67
68. Aplicação necessita de um serviço que pode
colocar o sistema em risco, então...
1) Solicitação é realizada através de uma system call.
2) System Call altera o modo de acesso do processador para
um modo Kernel;
3) Se caso um programa tente executar uma instrução
privilegiada, sem o processador estar no modo Kernel, uma
exceção é gerada e o programa é encerrado.
4) Se for permitido ele executa a tarefa solicitada.
5) O modo de acesso é retornado para o modo usuário ao
término da rotina do sistema.
68
70. Acompanhe em ordem cronológica
as etapas que ele percorre
8. O kernel carrega os arquivos principais
e informações básicas do sistema
operacional (incluindo o registro), além
de relacionar os componentes de
hardware com as respectivas DLLs e
drivers.
70
71. Acompanhe em ordem cronológica
as etapas que ele percorre
9. No entanto, o kernel não carrega
todos os processos para não
sobrecarregar o sistema — somente as
operações essenciais são colocadas em
atividade para possibilitar o início do
Windows.
71
72. Acompanhe em ordem cronológica
as etapas que ele percorre
10. A tela de escolha de usuários é
exibida e, após o logon, os programas
relacionados para começar junto com o
sistema são carregados.
72
75. Modo de Segurança
O que o modo de segurança faz é, basicamente, filtrar
ainda mais as funções que entram em ação junto ao
carregamento do sistema operacional. O próprio
Windows sugere, em certos casos, que o usuário tente
reiniciar o computador em modo de segurança;
Nele, alguns componentes ficam desativados,
possibilitando que deficiências e erros no processo de
boot possam ser corrigidos. Da mesma maneira, drivers e
programas com problemas podem ser desinstalados ou
reinstalados.
75