SlideShare uma empresa Scribd logo
1 de 40
Aula 01 – Introdução aos Sistemas
Operacionais
Por Sediane Carmem Lunardi
Hernandes
1
1. Visão geral
• Um Sistema Operacional (SO) atua como um
intermediário entre o usuário de um computador e o
hardware do computador
2
Hardware
Sistema Operacional
usuários
1. Visão geral (cont.)
• Finalidade:
– fornecer um ambiente no
qual o usuário possa
executar programas
3
programadores
e analistas
memória discos
UCP
Usuários
Hardware
Sistema Operacional
fitas
impressoras monitores
programas,
sistemas e
aplicativos
usuários
2. Definição
• Um Sistema Operacional, por mais complexo que
possa parecer, “é apenas um conjunto de rotinas
executado pelo processador, de forma semelhante
aos programas de usuário.” (MACHADO, MAIA,
2007).
• Principal função:
▫ Controlar o funcionamento de um computador,
gerenciando a utilização e o compartilhamento dos
seus diversos recursos, como processadores, memória
e dispositivos de entrada e saída
4
2. Definição (cont.)
• Um SO não é executado de forma linear como a
maioria das aplicações, com início, meio e fim
▫ Suas rotinas são executadas concorrentemente em
função de eventos assíncronos, ou seja, eventos que
podem ocorrer a qualquer momento
5
3. Histórico
• Década de 50
▫ Primeiro SO
🞄 chamado de MONITOR
🞄 desenvolvido em 1953
🞄pelos usuários do IBM
701 do Centro de
Pesquisas da General
Motors
🞄 reescrito posteriormente
para o computador IBM 704
6
IBM 701
IBM 704
transistor, memória magnética, fitas
3. Histórico (cont.)
• Década de 50
▫ Linguagens de programação de alto nível permitiram que
outros SO fossem implementados
🞄SOS (SHARE Operating System)
🞄FMS (FORTRAN Monitor System)
🞄IBSYS  máquinas IBM
🞄criaram o conceito de independência de dispositivos
▫ programador não implementa rotina específica de leitura e
gravação para cada dispositivo
🞄Atlas
🞄Desenvolvido pela Universidade de Manchester (Inglaterra)
▫ Memória hierarquizada
▫ Paginação por demanda para transferir informações da memória
secundária para a principal
7
3. Histórico (cont.)
▫ Multiprogramação
▫ SO MCP (Master Control
Program)
🞄 desenvolvido para o
computador B-5000
▫ SO OS/360
🞄 desenvolvido para
computadores das linhas
System/360 da IBM
 ainda não existia interação
do usuário com sistema
▫ Tempo compartilhado
• Década de 60
circuitos integrados
8
3. Histórico (cont.)
• Década de 60
▫ SO CTSS (Compatible Time-Sharing System)
🞄Desenvolvido para computador IBM 7094
🞄suportava 32 usuários interativos
🞄através de comandos interativos permitia compilar e executar
programas
🞄base MULTICS
▫ SO MULTICS (Multiplexed
Information and Computing Service)
🞄Desenvolvido para computador
GE 645
▫ SO Unix (1969)
🞄Desenvolvido para PDP-7 por
Ken Thompson
9
GE 645
3. Histórico (cont.)
• Década de 70
▫ Microprocessadores (Intel 4004, Intel
8080, Apple II)
▫ SO CP/M (Control Program Monitor)
da Digital Research
🞄 SO predominante nos primeiros SOs
▫ Curiosidades:
🞄 1971: Niklaus Wirth desenvolve a
linguagem Pascal
🞄 1975: Dennis Ritchie desenvolve a
linguagem C e, junto com Ken
Thompson, portam o SO Unix para o
computador PDP-11
10
PDP 11
3. Histórico (cont.)
• Década de 80, 90, 2000
▫ SO DOS (Disk Operating System)
▫ SO SunOS e Sun Solaris
▫ HP-UX, IBM-AIX
▫ Linux FreeBSD
▫ SOs para celulares, palmtops .....
11
4. Papel do Sistema Operacional
• O Sistema Operacional controlar o hardware e
coordenar seus uso pelos diversos programas
aplicativos de vários usuários
12
Usuário
1
Usuário
2
Usuário
3
Usuário
n
. . .
Compilador Editor de
texto
Browser Quake
Sistema Operacional (infraestrutura)
Hardware
Sistema Computacional
4. Papel do Sistema Operacional (cont.)
• Sistema Computacional:
▫ Hardware (CPU, memória e dispositivos de I/O)
🞄fornece os RECURSOS BÁSICOS de computação do
sistema
▫ Sistema Operacional
▫ Programas aplicativos
🞄definem as formas pelas quais esses recursos são
utilizados para resolver os problemas computacionais dos
usuários
▫ Usuários
13
3. Papel do Sistema Operacional (cont.)
Papel do SO – ponto de vista do
computador
• Programa mais intimamente envolvido
com o hardware
▫ Alocador de recursos: administra e
aloca recursos (tempo de CPU,
espaço de memória, espaço de
armazenamento em disco,
dispositivos de I/O – input/output,
entre outros) necessários a
resolução de um problema
▫ Programa de controle: gerencia a
execução dos programas de usuário
para evitar erros e o uso impróprio
do computador. Se preocupa
principalmente com a operação e o
controle de dispositivos de I/O
Papel do SO – ponto de vista do
usuário
• PC projetado para um único usuário: SO
projetado para facilidade de uso
• Terminal conectado a um mainframe, no
qual, outros usuários acessam o mesmo
computador por intermédio de outros
terminais: SO projetado para maximizar o
uso de recursos
▫ assegura que todo o tempo de CPU,
memória e I/O disponíveis sejam
utilizados eficientemente e que
nenhum usuário individual ocupe mais
do que sua cota
• Estações de trabalho conectadas a rede
com outras estações de trabalho e
servidores: SO projetado para estabelecer
um compromisso entre usabilidade
individual e utilização de recursos
14
Importante saber:
• Para que um computador comece a operar, precisa
dispor de um programa inicial para executar (programa
bootstrap)
▫ Programa armazenado na ROM (BIOS – Basic Input Otput
System)
▫ Inicializa todos os aspectos do sistema, dos registradores da
CPU, dos controladores de dispositivos e conteúdos da
memória
▫ Necessita saber como carregar o SO e como iniciar sua
execução
🞄Programa deve alocar e carregar na memória o kernel (núcleo)
do SO. SO começa a executar o primeiro processo e aguarda
que ocorra algum evento interrrupção de hardware ou
software (chamada de sistema)
15
5. Tipos de Sistemas Operacionais
16
Tipos de
Sistemas Operacionais
Sistemas
Monoprogramáveis/
Monotarefa
Sistemas
com Múltiplos
Processadores
Sistemas
Multiprogramáveis/
Multitarefa
5.1 Sistemas
Monoprogramáveis/monotarefa
• Sistema voltado a execução de um
único programa/tarefa (primeiros
SOs – década de 60 e 70)
▫ Qualquer outra aplicação, para
ser executada, deve aguardar o
término da corrente
• Processador, memória e
periféricos exclusivamente
dedicados a execução de um único
programa
• Tarefa do SO passa a ser
unicamente transferir o controle de
um job (programa e dados) para
outro
• Desvantagem: memória
subutilizada, processador ocioso
17
Memória
Principal
Dispositivos
de E/ S
UCP
programa/
tarefa
5.2 Sistemas
Multiprogramáveis/Multitarefa
• Implementa o conceito de Multiprogramação:
▫ SO mantém vários jobs na memória simultaneamente, e a
CPU é dividida entre eles
🞄Parte deles fica em uma fila de jobs no disco (todos os
processos residentes em disco aguardando alocação na
memória principal)
▫ SO seleciona e começa a executar um dos jobs na memória
🞄Se job pode ter de aguardar que alguma tarefa seja concluída
🞄SO passa para um novo job e o executa
▫ Se job tem que aguardar, CPU seleciona outro job e assim por
diante  CPU nunca ficará ociosa
18
5.2 Sistemas
Multiprogramáveis/Multitarefa (cont.)
Sistemas Multiprogramáveis/
Multitarefa fornecem um
ambiente em que os diversos
recursos do sistema (p. e.,
CPU, memória e dispositivos
periféricos) são utilizados
eficientemente
19
Memória
Principal
Dispositivos
de E/ S
UCP
programa/
tarefa
programa/
tarefa
programa/
tarefa
programa/
tarefa
programa/
tarefa
20
Sistemas
Multiprogramados
Sistemas
Monoprogramados
Sistemas Multiprogramáveis/Multitarefa X
Sistemas Monoprogramáveis/Monotarefa
5.2 Sistemas
Multiprogramáveis/Multitarefa (cont.)
• A partir do número de usuários que interagem com o
sistema, os sistemas multiprogramáveis são
classificados como:
▫ Monousuário
▫ Multiusuário
21
Um usuário Dois ou mais
usuário
Sistema Monoprogramado Monousuário Não
Sistema Multiprogramado Monousuário Multiusuário
5.2 Sistemas
Multiprogramáveis/Multitarefa (cont.)
• Classificados pela forma com que suas aplicações são
gerenciadas
22
Sistemas
Multiprogramáveis/
Multitarefa
Sistemas
Batch
Sistemas de
Tempo Real
Sistemas de
Tempo Compartilhado
5.2.1 Sistemas Batch
• Sistema Operacional em lote, era utilizado por terminais de
máquinas de grande porte, que reuniam um “lote de
programas” para enviar para execução
• Com o passar do tempo, a palavra batch passou a designar
um processo onde o usuário não interage com o seu
programa
• Todas a entradas e saídas de dados da aplicação são
implementadas por algum tipo de memória secundária
• Exemplos de aplicações:
▫ Programas envolvendo cálculo numérico
▫ Compilações
▫ Backups
▫ Outras que não exigem interação com o usuário
23
5.2.1 Sistemas Batch (cont.)
24
Processamento
Processamento
Processamento
(a)
(b)
(c)
fita de entrada
fita de entrada
cartões perfurados
fita de saída
fita de saída
job 2
job n
relatório 1
relatórios
relatório 2
relatório n
job 1
5.2.2 Sistemas de tempo compartilhado
(Time-Sharing)
• Permitem que diversos programas sejam executados a
partir da divisão do tempo do processador em pequenos
intervalos, denominados fatia de tempo (time-slice)
• Caso fatia de tempo insuficiente para conclusão do
programa
▫ Programa interrompido pelo SO e substituído por outro
▫ Enquanto isso .... aguarda por nova fatia de tempo
• Sistema cria um ambiente de trabalho próprio, dando a
impressão de que todo o sistema está dedicado,
exclusivamente para cada usuário
25
5.2.2 Sistemas de tempo compartilhado
(Time-Sharing) (cont.)
• Permitem a interação do usuário com o sistema
através de terminais que incluem vídeo, teclado e
mouse
▫ Usuário interage com sistema através de comandos
🞄Possível verificar arquivos armazenados em disco ou
cancelar a execução de um programa
▫ Sistema responde em poucos segundo a execução dos
comandos
• Aplicações comerciais utilizam esses sistemas
26
5.2.3 Sistemas de tempo real
• Implementados de forma semelhante aos Sistemas de
tempo real, exceto que:
▫ Não existe a ideia de fatia de tempo
🞄Programa utiliza o processador o tempo que for necessário ou
até que apareça outro mais prioritário (definida pela
aplicação)
• Sistemas presentes em aplicações de controle de
processos
▫ Monitoramento de refinarias de petróleo
▫ Controle de tráfego aéreo
▫ Controle de usinas termoelétricas e nucleares
▫ Qualquer aplicação onde tempo de resposta é fator
fundamental
27
5.2.4 Sistemas com múltiplos
processadores
• Caracterizam-se por possuir dois ou mais processadores
interligados e trabalhando em conjunto
• Vantagem:
▫ Vários programas executando ao mesmo tempo, ou;
▫ Mesmo programa subdividido em partes para serem
executadas simultaneamente em mais de um processador
• Possibilidade de implementação de aplicações voltadas
para processamento científico
▫ Simulações
▫ Processamento de imagens
▫ Desenvolvimento aeroespacial
28
5.2.4 Sistemas com múltiplos
processadores (cont.)
• Características:
▫ Multiprogramação
▫ Escalabilidade
🞄Capacidade de ampliar o poder computacional do
sistema adicionando novos processadores
▫ Disponibilidade
🞄Capacidade de manter o sistema em operação mesmo
diante de falhas
▫ Balanceamento de carga
🞄Possibilidade de distribuir o processamento entre os
diversos processadores
29
5.2.4 Sistemas com múltiplos
processadores (cont.)
• Classificação quanto a forma de comunicação entre
os processadores e o grau de compartilhamento da
memória e os dispositivos de entrada e saída
▫ Sistemas fortemente acoplados
▫ Sistemas fracamente acoplados
30
a) Sistemas fortemente acoplados
31
UCP UCP
Memória
Principal
Dispositivos
de E/ S
Dispositivos
de E/ S
Um único SO
b) Sistemas fracamente acoplados
32
UCP UCP
Memória
Principal
Memória
Principal
Dispositivos
de E/ S
link de comunicação
Dispositivos
de E/ S
Cada sistema possui seu próprio SO
b) Sistemas fracamente acoplados (cont.)
• Sistemas Operacionais de Rede
▫ Permitem que um computador (host) compartilhe seus
recursos (p.e., impressora, diretório) com os demais hosts
da rede.
▫ Usados em redes locais (estação oferece serviços de
impressão e arquivos para as demais estações da rede,
entre outros)
▫ Exemplo: Windows 2000, Novell Netware, Linux
• Sistemas Operacionais Distribuídos
▫ Sistema operacional esconde os detalhes dos hosts
individuais e passa a tratá-los como um conjunto único
▫ Exemplo: Amoeba  Tanembaum, 1991
33
6. Partes de um Sistema Operacional
• Gerência de processos
• Gerência de memória
• Gerência de armazenamento em massa
• Gerência do sistema de arquivos
• Gerência de dispositivos
34
6.1 Gerência de processos
• Processo é um programa em execução
• Atividades relacionadas ao gerenciamento de
processos:
▫ Escalonamento de processos e threads;
▫ Criação e exclusão de processos de usuário e de
sistema;
▫ Suspensão e retomada de processos;
▫ Fornecimento de mecanismos de sincronização entre
processos;
▫ Fornecimento de mecanismos de comunicação entre
processos.
35
6.2 Gerência de memória
• Para executar programa necessita estar na memória
• Atividades relacionadas ao gerenciamento de
memória:
▫ Controlar que partes da memória estão em uso
corrente e quem as está usando;
▫ Decidir que processos (ou parte deles) e dados devem
ser transferidos para dentro e fora da memória;
▫ Alocar e desalocar espaço na memória conforme
necessário.
36
6.3 Gerência de armazenamento em
massa
• Atividades relacionadas ao gerenciamento de disco:
▫ Gerenciamento do espaço livre;
▫ Alocação de espaço de armazenamento;
▫ Escalonamento de alocação de disco.
37
6.4 Gerência do sistema de arquivos
• Atividades relacionadas ao gerencimento de
arquivos:
▫ Criar e apagar arquivos;
▫ Criar e apagar diretórios para organizar arquivos;
▫ Suportar a manipulação de arquivos e diretórios;
▫ Mapear arquivos para a memória secundária;
▫ Criar cópias de arquivos em mídias de armazenamento
secundárias.
38
6.5 Gerência de dispositivos
• Ocultar dos usuários as peculiaridades dos
dispositivos de hardware específicos
39
Bibliografia
• SILBERSCHATZ, Abraham, GALVIN, Peter, GAGNE,
Greg. Fundamentos de Sistemas Operacionais. 8ª.
Ed. Rio de Janeiro : LTC, 2010.
• MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura
de Sistemas Operacionais. 3ª ed. Rio de Janeiro :
LTC, 2002.
40

Mais conteúdo relacionado

Semelhante a Aula 01 - Introducao aos Sistemas Operacionais.pptx

[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionaisSuperTec1
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisVirgínia
 
Infraestrutura de Software - Introdução
Infraestrutura de Software - IntroduçãoInfraestrutura de Software - Introdução
Infraestrutura de Software - IntroduçãoRodrigo Rodrigues
 
Revsão sobre sistemas operacionais
Revsão sobre sistemas operacionaisRevsão sobre sistemas operacionais
Revsão sobre sistemas operacionaisRodrigo Rodrigues
 
Aula 1 aed - introdução à computação
Aula 1   aed - introdução à computaçãoAula 1   aed - introdução à computação
Aula 1 aed - introdução à computaçãoElaine Cecília Gatto
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelPablo Mariano
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelPablo Mariano
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelPablo Mariano
 
M1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptxM1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptxDoraestevao
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisAdir Kuhn
 
Aula 2 sistemas operacionais
Aula 2 sistemas operacionaisAula 2 sistemas operacionais
Aula 2 sistemas operacionaisCarlos Melo
 
Sistema Operacional - Aula001
Sistema Operacional - Aula001Sistema Operacional - Aula001
Sistema Operacional - Aula001Cláudio Amaral
 

Semelhante a Aula 01 - Introducao aos Sistemas Operacionais.pptx (20)

[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
 
02 04 2012__15_10_03resp_exercicios_sistema_operacional
02 04 2012__15_10_03resp_exercicios_sistema_operacional02 04 2012__15_10_03resp_exercicios_sistema_operacional
02 04 2012__15_10_03resp_exercicios_sistema_operacional
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Infraestrutura de Software - Introdução
Infraestrutura de Software - IntroduçãoInfraestrutura de Software - Introdução
Infraestrutura de Software - Introdução
 
Revsão sobre sistemas operacionais
Revsão sobre sistemas operacionaisRevsão sobre sistemas operacionais
Revsão sobre sistemas operacionais
 
Gercacoes
GercacoesGercacoes
Gercacoes
 
Capitulo1
Capitulo1Capitulo1
Capitulo1
 
Aula 01-introducao-ao-so
Aula 01-introducao-ao-soAula 01-introducao-ao-so
Aula 01-introducao-ao-so
 
Aula 1 aed - introdução à computação
Aula 1   aed - introdução à computaçãoAula 1   aed - introdução à computação
Aula 1 aed - introdução à computação
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgel
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgel
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgel
 
Introdução a computação
Introdução a computaçãoIntrodução a computação
Introdução a computação
 
M1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptxM1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptx
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Aula 2 sistemas operacionais
Aula 2 sistemas operacionaisAula 2 sistemas operacionais
Aula 2 sistemas operacionais
 
SO001.pdf
SO001.pdfSO001.pdf
SO001.pdf
 
Introdução à Computação
Introdução à ComputaçãoIntrodução à Computação
Introdução à Computação
 
Sistema Operacional - Aula001
Sistema Operacional - Aula001Sistema Operacional - Aula001
Sistema Operacional - Aula001
 
Portugues
PortuguesPortugues
Portugues
 

Aula 01 - Introducao aos Sistemas Operacionais.pptx

  • 1. Aula 01 – Introdução aos Sistemas Operacionais Por Sediane Carmem Lunardi Hernandes 1
  • 2. 1. Visão geral • Um Sistema Operacional (SO) atua como um intermediário entre o usuário de um computador e o hardware do computador 2 Hardware Sistema Operacional usuários
  • 3. 1. Visão geral (cont.) • Finalidade: – fornecer um ambiente no qual o usuário possa executar programas 3 programadores e analistas memória discos UCP Usuários Hardware Sistema Operacional fitas impressoras monitores programas, sistemas e aplicativos usuários
  • 4. 2. Definição • Um Sistema Operacional, por mais complexo que possa parecer, “é apenas um conjunto de rotinas executado pelo processador, de forma semelhante aos programas de usuário.” (MACHADO, MAIA, 2007). • Principal função: ▫ Controlar o funcionamento de um computador, gerenciando a utilização e o compartilhamento dos seus diversos recursos, como processadores, memória e dispositivos de entrada e saída 4
  • 5. 2. Definição (cont.) • Um SO não é executado de forma linear como a maioria das aplicações, com início, meio e fim ▫ Suas rotinas são executadas concorrentemente em função de eventos assíncronos, ou seja, eventos que podem ocorrer a qualquer momento 5
  • 6. 3. Histórico • Década de 50 ▫ Primeiro SO 🞄 chamado de MONITOR 🞄 desenvolvido em 1953 🞄pelos usuários do IBM 701 do Centro de Pesquisas da General Motors 🞄 reescrito posteriormente para o computador IBM 704 6 IBM 701 IBM 704 transistor, memória magnética, fitas
  • 7. 3. Histórico (cont.) • Década de 50 ▫ Linguagens de programação de alto nível permitiram que outros SO fossem implementados 🞄SOS (SHARE Operating System) 🞄FMS (FORTRAN Monitor System) 🞄IBSYS  máquinas IBM 🞄criaram o conceito de independência de dispositivos ▫ programador não implementa rotina específica de leitura e gravação para cada dispositivo 🞄Atlas 🞄Desenvolvido pela Universidade de Manchester (Inglaterra) ▫ Memória hierarquizada ▫ Paginação por demanda para transferir informações da memória secundária para a principal 7
  • 8. 3. Histórico (cont.) ▫ Multiprogramação ▫ SO MCP (Master Control Program) 🞄 desenvolvido para o computador B-5000 ▫ SO OS/360 🞄 desenvolvido para computadores das linhas System/360 da IBM  ainda não existia interação do usuário com sistema ▫ Tempo compartilhado • Década de 60 circuitos integrados 8
  • 9. 3. Histórico (cont.) • Década de 60 ▫ SO CTSS (Compatible Time-Sharing System) 🞄Desenvolvido para computador IBM 7094 🞄suportava 32 usuários interativos 🞄através de comandos interativos permitia compilar e executar programas 🞄base MULTICS ▫ SO MULTICS (Multiplexed Information and Computing Service) 🞄Desenvolvido para computador GE 645 ▫ SO Unix (1969) 🞄Desenvolvido para PDP-7 por Ken Thompson 9 GE 645
  • 10. 3. Histórico (cont.) • Década de 70 ▫ Microprocessadores (Intel 4004, Intel 8080, Apple II) ▫ SO CP/M (Control Program Monitor) da Digital Research 🞄 SO predominante nos primeiros SOs ▫ Curiosidades: 🞄 1971: Niklaus Wirth desenvolve a linguagem Pascal 🞄 1975: Dennis Ritchie desenvolve a linguagem C e, junto com Ken Thompson, portam o SO Unix para o computador PDP-11 10 PDP 11
  • 11. 3. Histórico (cont.) • Década de 80, 90, 2000 ▫ SO DOS (Disk Operating System) ▫ SO SunOS e Sun Solaris ▫ HP-UX, IBM-AIX ▫ Linux FreeBSD ▫ SOs para celulares, palmtops ..... 11
  • 12. 4. Papel do Sistema Operacional • O Sistema Operacional controlar o hardware e coordenar seus uso pelos diversos programas aplicativos de vários usuários 12 Usuário 1 Usuário 2 Usuário 3 Usuário n . . . Compilador Editor de texto Browser Quake Sistema Operacional (infraestrutura) Hardware Sistema Computacional
  • 13. 4. Papel do Sistema Operacional (cont.) • Sistema Computacional: ▫ Hardware (CPU, memória e dispositivos de I/O) 🞄fornece os RECURSOS BÁSICOS de computação do sistema ▫ Sistema Operacional ▫ Programas aplicativos 🞄definem as formas pelas quais esses recursos são utilizados para resolver os problemas computacionais dos usuários ▫ Usuários 13
  • 14. 3. Papel do Sistema Operacional (cont.) Papel do SO – ponto de vista do computador • Programa mais intimamente envolvido com o hardware ▫ Alocador de recursos: administra e aloca recursos (tempo de CPU, espaço de memória, espaço de armazenamento em disco, dispositivos de I/O – input/output, entre outros) necessários a resolução de um problema ▫ Programa de controle: gerencia a execução dos programas de usuário para evitar erros e o uso impróprio do computador. Se preocupa principalmente com a operação e o controle de dispositivos de I/O Papel do SO – ponto de vista do usuário • PC projetado para um único usuário: SO projetado para facilidade de uso • Terminal conectado a um mainframe, no qual, outros usuários acessam o mesmo computador por intermédio de outros terminais: SO projetado para maximizar o uso de recursos ▫ assegura que todo o tempo de CPU, memória e I/O disponíveis sejam utilizados eficientemente e que nenhum usuário individual ocupe mais do que sua cota • Estações de trabalho conectadas a rede com outras estações de trabalho e servidores: SO projetado para estabelecer um compromisso entre usabilidade individual e utilização de recursos 14
  • 15. Importante saber: • Para que um computador comece a operar, precisa dispor de um programa inicial para executar (programa bootstrap) ▫ Programa armazenado na ROM (BIOS – Basic Input Otput System) ▫ Inicializa todos os aspectos do sistema, dos registradores da CPU, dos controladores de dispositivos e conteúdos da memória ▫ Necessita saber como carregar o SO e como iniciar sua execução 🞄Programa deve alocar e carregar na memória o kernel (núcleo) do SO. SO começa a executar o primeiro processo e aguarda que ocorra algum evento interrrupção de hardware ou software (chamada de sistema) 15
  • 16. 5. Tipos de Sistemas Operacionais 16 Tipos de Sistemas Operacionais Sistemas Monoprogramáveis/ Monotarefa Sistemas com Múltiplos Processadores Sistemas Multiprogramáveis/ Multitarefa
  • 17. 5.1 Sistemas Monoprogramáveis/monotarefa • Sistema voltado a execução de um único programa/tarefa (primeiros SOs – década de 60 e 70) ▫ Qualquer outra aplicação, para ser executada, deve aguardar o término da corrente • Processador, memória e periféricos exclusivamente dedicados a execução de um único programa • Tarefa do SO passa a ser unicamente transferir o controle de um job (programa e dados) para outro • Desvantagem: memória subutilizada, processador ocioso 17 Memória Principal Dispositivos de E/ S UCP programa/ tarefa
  • 18. 5.2 Sistemas Multiprogramáveis/Multitarefa • Implementa o conceito de Multiprogramação: ▫ SO mantém vários jobs na memória simultaneamente, e a CPU é dividida entre eles 🞄Parte deles fica em uma fila de jobs no disco (todos os processos residentes em disco aguardando alocação na memória principal) ▫ SO seleciona e começa a executar um dos jobs na memória 🞄Se job pode ter de aguardar que alguma tarefa seja concluída 🞄SO passa para um novo job e o executa ▫ Se job tem que aguardar, CPU seleciona outro job e assim por diante  CPU nunca ficará ociosa 18
  • 19. 5.2 Sistemas Multiprogramáveis/Multitarefa (cont.) Sistemas Multiprogramáveis/ Multitarefa fornecem um ambiente em que os diversos recursos do sistema (p. e., CPU, memória e dispositivos periféricos) são utilizados eficientemente 19 Memória Principal Dispositivos de E/ S UCP programa/ tarefa programa/ tarefa programa/ tarefa programa/ tarefa programa/ tarefa
  • 21. 5.2 Sistemas Multiprogramáveis/Multitarefa (cont.) • A partir do número de usuários que interagem com o sistema, os sistemas multiprogramáveis são classificados como: ▫ Monousuário ▫ Multiusuário 21 Um usuário Dois ou mais usuário Sistema Monoprogramado Monousuário Não Sistema Multiprogramado Monousuário Multiusuário
  • 22. 5.2 Sistemas Multiprogramáveis/Multitarefa (cont.) • Classificados pela forma com que suas aplicações são gerenciadas 22 Sistemas Multiprogramáveis/ Multitarefa Sistemas Batch Sistemas de Tempo Real Sistemas de Tempo Compartilhado
  • 23. 5.2.1 Sistemas Batch • Sistema Operacional em lote, era utilizado por terminais de máquinas de grande porte, que reuniam um “lote de programas” para enviar para execução • Com o passar do tempo, a palavra batch passou a designar um processo onde o usuário não interage com o seu programa • Todas a entradas e saídas de dados da aplicação são implementadas por algum tipo de memória secundária • Exemplos de aplicações: ▫ Programas envolvendo cálculo numérico ▫ Compilações ▫ Backups ▫ Outras que não exigem interação com o usuário 23
  • 24. 5.2.1 Sistemas Batch (cont.) 24 Processamento Processamento Processamento (a) (b) (c) fita de entrada fita de entrada cartões perfurados fita de saída fita de saída job 2 job n relatório 1 relatórios relatório 2 relatório n job 1
  • 25. 5.2.2 Sistemas de tempo compartilhado (Time-Sharing) • Permitem que diversos programas sejam executados a partir da divisão do tempo do processador em pequenos intervalos, denominados fatia de tempo (time-slice) • Caso fatia de tempo insuficiente para conclusão do programa ▫ Programa interrompido pelo SO e substituído por outro ▫ Enquanto isso .... aguarda por nova fatia de tempo • Sistema cria um ambiente de trabalho próprio, dando a impressão de que todo o sistema está dedicado, exclusivamente para cada usuário 25
  • 26. 5.2.2 Sistemas de tempo compartilhado (Time-Sharing) (cont.) • Permitem a interação do usuário com o sistema através de terminais que incluem vídeo, teclado e mouse ▫ Usuário interage com sistema através de comandos 🞄Possível verificar arquivos armazenados em disco ou cancelar a execução de um programa ▫ Sistema responde em poucos segundo a execução dos comandos • Aplicações comerciais utilizam esses sistemas 26
  • 27. 5.2.3 Sistemas de tempo real • Implementados de forma semelhante aos Sistemas de tempo real, exceto que: ▫ Não existe a ideia de fatia de tempo 🞄Programa utiliza o processador o tempo que for necessário ou até que apareça outro mais prioritário (definida pela aplicação) • Sistemas presentes em aplicações de controle de processos ▫ Monitoramento de refinarias de petróleo ▫ Controle de tráfego aéreo ▫ Controle de usinas termoelétricas e nucleares ▫ Qualquer aplicação onde tempo de resposta é fator fundamental 27
  • 28. 5.2.4 Sistemas com múltiplos processadores • Caracterizam-se por possuir dois ou mais processadores interligados e trabalhando em conjunto • Vantagem: ▫ Vários programas executando ao mesmo tempo, ou; ▫ Mesmo programa subdividido em partes para serem executadas simultaneamente em mais de um processador • Possibilidade de implementação de aplicações voltadas para processamento científico ▫ Simulações ▫ Processamento de imagens ▫ Desenvolvimento aeroespacial 28
  • 29. 5.2.4 Sistemas com múltiplos processadores (cont.) • Características: ▫ Multiprogramação ▫ Escalabilidade 🞄Capacidade de ampliar o poder computacional do sistema adicionando novos processadores ▫ Disponibilidade 🞄Capacidade de manter o sistema em operação mesmo diante de falhas ▫ Balanceamento de carga 🞄Possibilidade de distribuir o processamento entre os diversos processadores 29
  • 30. 5.2.4 Sistemas com múltiplos processadores (cont.) • Classificação quanto a forma de comunicação entre os processadores e o grau de compartilhamento da memória e os dispositivos de entrada e saída ▫ Sistemas fortemente acoplados ▫ Sistemas fracamente acoplados 30
  • 31. a) Sistemas fortemente acoplados 31 UCP UCP Memória Principal Dispositivos de E/ S Dispositivos de E/ S Um único SO
  • 32. b) Sistemas fracamente acoplados 32 UCP UCP Memória Principal Memória Principal Dispositivos de E/ S link de comunicação Dispositivos de E/ S Cada sistema possui seu próprio SO
  • 33. b) Sistemas fracamente acoplados (cont.) • Sistemas Operacionais de Rede ▫ Permitem que um computador (host) compartilhe seus recursos (p.e., impressora, diretório) com os demais hosts da rede. ▫ Usados em redes locais (estação oferece serviços de impressão e arquivos para as demais estações da rede, entre outros) ▫ Exemplo: Windows 2000, Novell Netware, Linux • Sistemas Operacionais Distribuídos ▫ Sistema operacional esconde os detalhes dos hosts individuais e passa a tratá-los como um conjunto único ▫ Exemplo: Amoeba  Tanembaum, 1991 33
  • 34. 6. Partes de um Sistema Operacional • Gerência de processos • Gerência de memória • Gerência de armazenamento em massa • Gerência do sistema de arquivos • Gerência de dispositivos 34
  • 35. 6.1 Gerência de processos • Processo é um programa em execução • Atividades relacionadas ao gerenciamento de processos: ▫ Escalonamento de processos e threads; ▫ Criação e exclusão de processos de usuário e de sistema; ▫ Suspensão e retomada de processos; ▫ Fornecimento de mecanismos de sincronização entre processos; ▫ Fornecimento de mecanismos de comunicação entre processos. 35
  • 36. 6.2 Gerência de memória • Para executar programa necessita estar na memória • Atividades relacionadas ao gerenciamento de memória: ▫ Controlar que partes da memória estão em uso corrente e quem as está usando; ▫ Decidir que processos (ou parte deles) e dados devem ser transferidos para dentro e fora da memória; ▫ Alocar e desalocar espaço na memória conforme necessário. 36
  • 37. 6.3 Gerência de armazenamento em massa • Atividades relacionadas ao gerenciamento de disco: ▫ Gerenciamento do espaço livre; ▫ Alocação de espaço de armazenamento; ▫ Escalonamento de alocação de disco. 37
  • 38. 6.4 Gerência do sistema de arquivos • Atividades relacionadas ao gerencimento de arquivos: ▫ Criar e apagar arquivos; ▫ Criar e apagar diretórios para organizar arquivos; ▫ Suportar a manipulação de arquivos e diretórios; ▫ Mapear arquivos para a memória secundária; ▫ Criar cópias de arquivos em mídias de armazenamento secundárias. 38
  • 39. 6.5 Gerência de dispositivos • Ocultar dos usuários as peculiaridades dos dispositivos de hardware específicos 39
  • 40. Bibliografia • SILBERSCHATZ, Abraham, GALVIN, Peter, GAGNE, Greg. Fundamentos de Sistemas Operacionais. 8ª. Ed. Rio de Janeiro : LTC, 2010. • MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de Sistemas Operacionais. 3ª ed. Rio de Janeiro : LTC, 2002. 40