2. Ementa da disciplina
Estruturas de Sistemas operacionais;
Sistemas multiprogramáveis;
Gerência de processos;
Gerência de memória física;
Gerência de memória virtual;
Gerência de sistemas de arquivos;
Gerenciamento de dispositivos;
Segurança e proteção;
Introdução aos sistemas operacionais distribuídos.
2
3. Bibliografia básica
Sistemas operacionais: Projeto e
implementação. Andrew S. Tanenbaum; Albert
S. Woodhull;
Sistemas operacionais: Conceitos e aplicações.
Abraham Sílberschatz; Peter Galvin; Greg
Gagne;
Arquitetura de sistemas operacionais. Francis B.
Machado, Luiz Paulo Maia.
3
4. Aula 1 – Introdução
O que é um sistema operacional?
Um programa de computador (software) que fica entre as
aplicações e o equipamento (hardware);
É um software que habilita as aplicações e interage com o
hardware do computador;
Qual o objetivo de um sistema operacional?
Gerenciar os componentes de hardware e fornecer aos
programas de usuário uma interface com o hardware mais
simples;
Utilizar hardware e software de maneira eficiente.
4
5. Introdução
Sistemas operacionais rodam em diversos tipos
de equipamentos:
Computadores pessoais;
Telefones celulares;
Automóveis;
Etc.
Exemplos de sistemas operacionais...
5
6. Introdução
Imagine se o programador tivesse que se preocupar com o
hardware...
• Qual o endereço físico da
memória da variável x?
• Qual a velocidade máxima de
rotação do HD?
• Qual a taxa de atualização do
monitor do usuário?
• Etc...
6
7. Introdução
Cada hardware tem sua particularidade;
É responsabilidade do sistema operacional
gerenciar essas particularidades:
Um processador de texto não precisa saber como
gravar um arquivo no HD, CD, etc;
Um sistema que apresenta um resultado para o
usuário não precisa saber como imprimir um
caractere no monitor;
Etc.
7
8. Introdução
Cabe ao sistema operacional definir as regras
para gerenciar o uso dos recursos de hardware
pelos aplicativos e resolver possíveis disputas e
conflitos por esses recursos:
Uso de processador pelas aplicações;
Acesso ao disco – Leitura, escrita;
Acesso à memória;
Etc.
8
12. Introdução
Podemos definir um Sistema Operacional
levando em consideração dois pontos de
vistas:
O S.O. como uma máquina estendida;
O S.O. como um gerenciador de recursos.
12
13. Introdução
O Sistema Operacional como uma máquina
estendida:
O sistema operacional é a camada de software que
oculta a complexidade do hardware;
Facilita a criação de novos sistemas, de forma que o
desenvolvedor ou usuário não necessite saber
detalhes de funcionamento dos periféricos.
13
14. Introdução
O Sistema Operacional como um gerenciador
de recursos:
O Sistema Operacional é responsável por organizar e
alocar de forma ordenada e eficiente os recursos de
hardware do computador;
Definir políticas de uso dos recursos de hardware
pelas aplicações e resolver disputas e conflitos que
venham a ocorrer.
14
15. Histórico
A evolução dos sistemas operacionais
está intimamente ligado à evolução do
hardware;
Aumento da complexidade do hardware
demanda uma abstração maior para as
camadas “superiores”;
15
16. Histórico
1ª Geração (1945 – 1955)
16
• Necessário conhecimento
do funcionamento do
hardware;
• Programação feita através
de linguagem de
máquina;
• Computadores utilizavam
válvulas;
• Inexistência do conceito
de Sistema Operacional.
18. Histórico
2ª Geração (1956 – 1965)
18
• Invenção do Transistor – Bell
Laboratories;
• Computadores mais rápidos e mais
eficientes;
• Cálculos que demoravam segundos
agora eram medidos em
milissegundos;
TRADIC TRADIC
22. Histórico
4ª Geração (1980 – 1990)
22
• Computadores pessoais - PC;
• Avanço da indústria de hardware
com a introdução de novos
circuitos integrados;
• Computação altamente interativa;
• Crescimento da indústria de
softwares;
• Dois sistemas operacionais
inicialmente dominaram o cenário:
MS-DOS (Microsoft) e Unix;
• Redes de computadores.
MD-DOS
Unix
24. Histórico
5ª Geração (1990 – *)
24
• Popularização dos PC’s;
• Processadores de alto
desempenho – 1993: Pentium;
• Evolução das redes de
computadores;
• Interfaces gráficas complexas;
• Interação com o usuário;
• Internet.
25. Tipos de Sistemas Operacionais
Três PRINCIPAIS tipos (não são os
únicos):
Sistemas Monotarefa;
Sistemas Multitarefa;
Sistemas Multiprocessadores.
25
26. Sistemas Monotarefa
Aloca o Sistema Operacional disponível
exclusivamente para um único programa;
O programa em andamento tem disponível
todos os dispositivos do computador;
Tipicamente relacionados aos primeiros
computadores, na década de 1960;
Provoca grande desperdício de hardware.
26
28. Sistemas Multitarefa
Evolução dos sistemas Monotarefas;
Recursos computacionais são compartilhados entre as
aplicações
Enquanto um programa aguarda por algum recurso,
outro pode estar utilizando o processador, por exemplo.
O sistema operacional é responsável por gerenciar o
acesso concorrente aos recursos de hardware entre as
aplicações, de forma ordenada e protegida;
Mais eficiente que sistemas monotarefa, porém sua
implementação é mais complexa.
28
30. Sistemas Multitarefa
Os sistemas multitarefa podem ser classificados
de acordo com:
Número de usuários que acessam o sistema
Sistema Monousuário;
Sistema Multiusuário.
Forma de gerenciamento das aplicações
Sistemas Batch ou Lote;
Sistemas de tempo compartilhado;
Sistemas de tempo real.
30
32. Sistemas Multitarefa - Monousuário
Apenas um usuário interage com o
sistema;
Por ser um sistema multitarefa, pode
processar mais de uma aplicação ao
mesmo tempo
Editor de texto e browser, por exemplo.
32
33. Sistemas Multitarefa - Multiusuário
Possibilita vários usuários simultâneos com
acesso ao sistema operacional;
Tem uma implementação mais complexa,
uma vez que deve permitir a
identificação de cada recurso, como
arquivos e processos, e impor regras de
controles de acesso.
33
35. Sistemas Multitarefa - Batch
Todos os programas são colocados em uma fila
para execução do processador;
Programas são processados em sequência;
Atualmente, BATCH é utilizado para definir um
conjunto de comandos que rodam sem
interferência do usuário;
Sistemas BATCH, se bem projetados, podem ser
bastante eficientes em alguns casos específicos;
Problemas: vazão, tempo de resposta – Exemplo.
35
37. Sistemas Multitarefa – Tempo
Compartilhado (Time Sharing)
Permitem que diversos programas sejam executados a
partir da divisão do processador em pequenos
intervalos (time slice)
Caso o tempo não seja suficiente para completar o
processamento, é interrompido e substituido por
outro, enquanto aguarda novo intervalo de tempo.
Há a impressão de que a máquina está dedicada ao
programa/usuário, como se ele fosse o único utilizador
dos recursos;
Permitem INTERAÇÃO COM O USUÁRIO – I/O – Teclado,
mouse, monitor, etc;
37
38. Sistemas Multitarefa – Tempo
Compartilhado (Time Sharing)
O sistema operacional gerencia a utilização dos
recursos pelos programas e usuários
Escalonamento.
Gerenciamento complexo dos processos, dependendo
da utilização do Sistema Operacional
Prioridades;
Tamanho do time slice;
Guardar estado atual;
Etc.
38
40. Sistemas Multitarefa – Tempo Real
Semelhante aos sistemas de tempo compartilhado;
Diferença está no tempo exigido para o processamento das
aplicações;
Tempo de processamento deve estar entre limites rígidos, definidos
no projeto;
Um programa utiliza o processador pelo tempo que for necessário,
até que apareça uma aplicação com uma PRIORIDADE maior
Prioridade é definida pela aplicação e não pelo S.O.
Utilização – Sistemas embarcados, aviões, etc
Exemplo: Avião – prioridade: pouso ou sistema de som?
40
41. Sistemas Multiprocessadores
Possuem uma ou mais CPUs interligadas e
trabalhando em conjunto;
Vários programas são REALMENTE executados
ao mesmo tempo;
Vantagens específicas:
Escalabilidade;
Disponibilidade;
Balanceamento de carga.
41
43. Sistemas Multiprocessadores
Podem ser classificados em:
Fortemente acoplados
Apenas uma memória compartilhada.
Fracamente acoplados
Cada sistema tem sua própria
memória.
43