Maria Auxiliadora H. L. Capron / J. A. Johnson1 Introdução à Computação Universidade Federal do...

Post on 07-Apr-2016

212 views 0 download

Transcript of Maria Auxiliadora H. L. Capron / J. A. Johnson1 Introdução à Computação Universidade Federal do...

1

Introdução à ComputaçãoIntrodução à Computação

Universidade Federal do MaranhãoUniversidade Federal do Maranhão

Departamento de InformáticaDepartamento de Informática

Profa. Msc. Maria Auxiliadora FreireProfa. Msc. Maria Auxiliadora Freiremaria@deinf.ufma.brmaria@deinf.ufma.br

2

SOFTWARESOFTWAREPARTE 1PARTE 1

Universidade Federal do MaranhãoUniversidade Federal do Maranhão

Departamento de InformáticaDepartamento de Informática

4

• Conjunto de instruções/funções/tarefas que definem o que o computador deve executar para chegar a um determinado resultado.

• Instruções eletrônicas que em geral residem em um meio de armazenamento.

• Um conjunto específico destas instruções é chamado Programa.Programa.

• Quando o computador está usando um programa em particular, dizemos que eles está rodando ou executandoexecutando aquele PROGRAMA.

SOFTWARE

5

Componentes genéricos - sistema computacional

6

Componentes genéricos - sistema computacional

Diferentes visões- Sistema computacionalDiferentes visões- Sistema computacional

7

Programas:Programas:

• Partes componentes do softwaresoftware

• Desenvolvidos utilizando Linguagens de Programação.Linguagens de Programação.

• Analistas de Sistemas e ProgramadoresAnalistas de Sistemas e Programadores – Projetam e desenvolvem programas / software

• Engenharia de Engenharia de SoftwareSoftware– Área de estudo que se preocupa com o desenvolvimento

de software

SOFTWARE

8

SOFTWARE

9

• O sistema operacional é softwareO sistema operacional é software: um conjunto de rotinas que são executadas pelo processador para facilitar o acesso aos componentes de hardware (processador, memória, dispositivos de E/S), e gerenciar o uso do sistema de computação (hardware e software).

• Tradicionalmente os S.O. eram escritos em linguagem Assembly. Já faz um certo tempo que a maioria dos S.O. são escritos em linguagens linguagens de alto nívelde alto nível.

Sistemas Operacionais

10

• Composto por um conjunto de programasprogramas e rotinasrotinas

• Controla a execução de qualquer software utilizado em um computador

• Gerencia os recursos do computador (hardware e software) de modo a:– Possibilitar sua utilização– Aumentar sua eficiência– Permitir a comunicação com outros equipamentos.

Sistemas Operacionais

11

Sistemas Operacionais

Usuário Programas

Sistema de ArquivosHardware

SO

Passo 1

A fonte de alimentação fornece energia elétrica para as diferentes partes do sistema

processador

BIO

S

Funções dos Sistemas Operacionais Inicialização

PassoPasso 22

O processador procura o BIOS

BIOSBasic Input/Output System

Firmware que contém as instruções de inicialização do computador

processador

BIO

S

Funções dos Sistemas Operacionais Inicialização

Passo 3

A BIOS realiza o POST

POSTPower-On Self Test

Teste mediante o qual são verificados componentes tais como mouse, teclado, conectores e placas de expansão

processador

BIO

S

placas deexpansão

conectores

teclado

drive deCD-ROM

Funções dos Sistemas Operacionais Inicialização

Passo 4

Os resultados do POST são comparados com os dados armazenados no chip CMOS

Chip CMOS

Complementary Metal Oxyde Semiconductor

Armazena informações de configuração do computador e também detecta novos dispositivos conectados

processador

BIO

S

placas deexpansão

conectores

drive de CD-ROM

chipCMOS

Funções dos Sistemas Operacionais Inicialização

Passo 5

O BIOS procura os arquivos do sistema no drive A (disco flexível) e, em seguida, no drive C (disco rígido)

Arquivos do sistema

Arquivos específicos do sistema operacional, carregados durante a inicialização

processador

BIO

S

placas deexpansão

conectores

drive de CD-ROM

chipCMOS

discorígido

drive dedisco flexível

Funções dos Sistemas Operacionais Inicialização

Passo 6

O programa de boot carrega na RAM o kernel do SO (armazenado no HD), o qual assume, a partir de então, o controle do computador

processador

BIO

S

placas deexpansão

conectores

drive de CD-ROM

chipCMOS

discorígido

drive dedisco flexível

módulos dememória RAM

Funções dos Sistemas Operacionais Inicialização

Step 7

Passo 7

O SO carrega informações de configuração, exibe a área de trabalho (desktop) na tela e executa programas na pasta Iniciar (StartUp)

Pasta Iniciar (StartUp)

Contêiner de uma lista de programas que são automaticamente iniciados quando o computador é inicializado

Funções dos Sistemas Operacionais Inicialização

25

RAM(memória física)

O SO aloca uma porção de um meio de armazenamento (usualmente o disco rígido) para atuar como RAM adicional

Disco(memória virtual)

Funções dos Sistemas Operacionais Gestão da Memória Virtual

26

Passo 1

O SO transfere os dados e as instruções de programas menos usados recentemente para o disco rígido, uma vez que a memória é necessária para outros propósitos

RAM(memória física)

Disco(memória virtual)

swap out de página

Funções dos Sistemas Operacionais Gestão da Memória Virtual

27

Passo 2

O SO transfere os dados e as instruções de programas do disco rígido para a memória quando necessários

RAM(memória física)

Disco(memória virtual)

swap out de página

swap in de página

Funções dos Sistemas Operacionais Gestão da Memória Virtual

29

• Salvar arquivos em disco.

• Ler arquivos do disco para a memória.

• Verificar o espaço disponível em disco e memória.

• Alocar memória para armazenar dados e programas.

• Ler toques de teclas do teclado e exibir caracteres ou gráficos na tela.

• Os programas trazem incorporados a si instruções que solicitam ao sistema operacional estes serviços (chamadas ao sistema operacional).

Funções dos Sistemas Operacionais Gestão de Programas

31

• O uso de um computador potente com múltiplas CPUs.

• Múltiplos programas rodam simultaneamente.– Cada um é executado em seu próprio processador

• Dois ou mais programas executados concorrentemente.– Os programas se alternam na utilização da CPU.– Baseada em eventos.

• Uma interrupção suspende o processamento para permitir a execução de um outro programa.

• Depois que o segundo programa é executado, o sistema operacional retorna a CPU a outro programa.

• Geralmente é usada em programas em lote que não exigem entrada do usuário.

Funções dos Sistemas Operacionais Multiprogramação

32

• Do ponto de vista do usuário, o que faz ou prejudica um sistema operacional é a qualidade da interface com o usuário

• Às vezes, a interface com o usuário é denominada shellshell, sugerindo a idéia de que a interface com o usuário (o shell) “envolve” o sistema operacional (o kernel dentro do shell).

• Os três tipos de interfaces com o usuário são:• Interface de linha de comandoInterface de linha de comando,• Interface baseada em menus Interface baseada em menus e• Interface gráficaInterface gráfica.

Funções dos Sistemas Operacionais Interface com o Usuário

33

• Interface de linha de comandoInterface de linha de comando

• A comunicação é feita via digitação de palavras (limitadas) e símbolos no teclado do computador;

• O usuário controla os programas através da digitação de comandos no aviso de comando (prompt), Exemplo: c> ;

• Exige que o usuário digite os comandos utilizando palavras-chave que instruem o sistema operacional sobre o que fazer (Ex.: “format” e “copy”).

• Usuário deve conhecer as regras de sintaxe.

• Pouco utilizados pelos usuários porque exigem memorização e é muito fácil cometer um erro de digitação.

• Preferido pelos usuários experientes.

Funções dos Sistemas Operacionais Interface com o Usuário

34

• Interface Baseada em MenusInterface Baseada em Menus

• Permitem que o usuário evite a memorização das palavras-chave e sintaxe. Os menus baseados em texto na tela mostram todas as opções disponíveis em um determinado ponto.

• Alguns sistemas permitem que o usuário clique a opção desejada com o mouse.

Funções dos Sistemas Operacionais Interface com o Usuário

35

• Interface gráfica Interface gráfica

• Também conhecida por GUI GUI (Graphical User Interface);

• Possibilita o trabalho em termos visuais;

• Desenvolvimento do conceito de Menus, ícones e caixas de diálogos

• Facilidade de utilização medida pela intuitividade da interface

• Tipo de interface chamada amigável

• Utiliza o conceito de desktop - desktop - área de trabalho digital: Mesa de trabalho digital

• Calculadora, bloco de notas, pastas, lixeira, etc...

Funções dos Sistemas Operacionais Interface com o Usuário

36

Driver de Dispositivo - Programa que possibilita a comunicação do SO com um dispositivo de E/S

Cada dispositivo requer um driver próprio

driver de dispositivo

Funções dos Sistemas OperacionaisComunicação SO - dispositivo de E/S

37

Plug’n Play (PNP ou Plug and Play)

Reconhecimento de novos dispositivos pelo computador, instalação automática de drivers para esses dispositivos e verificação de conflitos com outros dispositivos.

Suportado pela maioria dos dispositivos e SO atuais. Quando se liga um sistema Plug/Play, o principal

árbitro entre o software e o hardware, o BIOS é o primeiro componente a assumir o controle.

Sistemas Operacionais

39

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

• Os sistemas operacionais agrupam os dados em compartimentos lógicos para armazená-los em disco

40

Como os Dados São OrganizadosSetor ou Segmento

Trilhas

1 2

3

4

56

7

8

9

Cluster

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

41

• Trilha– A porção circular da superfície

do disco que passa sob a cabeça de leitura/gravação.

• Um disco flexível tem 80 trilhas em cada superfície.

• O disco rígido pode ter 1.000 ou mais trilhas em cada superfície de cada lâmina.

Como os Dados São Organizados

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

42

• Setor– Cada trilha é dividida em setores que

contêm um número fixo de bytes.• Tipicamente, 512 bytes por setor.

– A gravação por zonas atribui mais setores às trilhas que estão nas zonas externas do que àquelas que estão nas zonas internas.

– Usa o espaço de armazenamento de maneira mais completa.

Como os Dados São Organizados

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

43

• Cilindro – A trilha sobre cada superfície, que

está sob a cabeça de leitura/gravação, em determinada posição das cabeças de leitura/gravação.

– Quando o arquivo é maior do que a capacidade de uma única trilha, o sistema operacional armazena-o em trilhas que fazem parte do mesmo cilindro.

Como os Dados São Organizados

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

44

Formatação Física - os discos são divididos em trilhas, setores e cilindro e são gravadas as marcações servo, que permitem que a placa lógica posicione corretamente as cabeças de leitura.

Formatação Lógica - organizado à maneira do sistema operacional, preparado para receber dados. A esta organização damos o nome de “sistema de arquivos”.

Formatação - Processo de preparação de um disco para leitura e escrita (gravação).

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

45

FAT – “File Alocation Table” ou “tabela de alocação de arquivos”. localizado no setor “0” do disco.A função da FAT é servir como um índice, armazenando informações sobre cada cluster do disco Comparando o FAT com um livro.

as páginas clusters; a FAT as legendas e numeração das páginas;

o diretório raiz índice, com o nome de cada capítulo e a página onde ele começa.

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

46

Organização de arquivos

0 1 2 3 4 5 6 7

?

readme.txt

0 1 2

prova.doc

0 1 2 3 4 5 6 7

aula.pdf

0 1 2 3 4

Dispositivofísico

Vetor deblocoslógicos

Arquivos

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

47

Organização de arquivos

/raiz

arquivos windows docs temp

java Winzip help system32 aulas pedro

carta

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

48

Gravando o arquivo ”carta”

Arquivo cluster

Despesas.xls 1

Relatorio anual.doc

2

Disponível 3Novo orcamento.xls

4

FAT

ENDEREÇO DO CLUSTERCLUSTER TRILHA SETORE

S

3 1 2,3,4,5

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

49

• Técnicas de alocação

– Formas de mapear os blocos dos arquivos em posições no vetor de blocos lógicos

– Alocação contígua de arquivos

– Alocação em listas encadeadas• listas diretas ou listas indexadas

– Alocação indexada

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

50

readme.txt 010 003prova.doc 002 008Aula.pdf 017 005

arquivo inicio #blocos

0 1 2 3 4 5 6 7

Alocação contígua Cada arquivo ocupa um conjunto de blocos lógicos consecutivos. Não há blocos vazios entre os blocos de um mesmo arquivo. Para cada arquivo, o diretório informa seu bloco de início e o no de blocos.

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

51

• Alocação contígua– Vantagens:

• Simplicidade de implementação.• Rapidez de acesso aos arquivos:

– todos os blocos do arquivo estão próximos.• Facilidade de acesso seqüencial e aleatório:

– sequencial: basta ler os blocos consecutivos– aleatório: posições internas podem ser facilmente calculadas a partir da

posição do bloco inicial.

– Desvantagens:• Pouca flexibilidade no crescimento dos arquivos.• Tamanho máximo do arquivo deve ser conhecido no momento da alocação.• Ocorrência de fragmentação externa.• Necessidade de desfragmentação periódica

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

52

• Alocação encadeada

– Os arquivos são armazenados como listas de blocos

– cada bloco aponta para o próximo– diretório aponta para o bloco inicial– os blocos podem estar espalhados

– Base de funcionamento da FAT• sistema de arquivos Windows

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

53

readme.txt 010 003prova.doc 002 008Aula.pdf 017 005

arquivo inicio #blocos

Alocação encadeada

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

54

• Alocação encadeada

– Vantagens– não há fragmentação externa– todo o disco pode ser usado– tamanho dos arquivos pode ser mudado facilmente

– Desvantagens– acesso aleatório é mais demorado– maior fragilidade em caso de problemas

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

55

• Alocação indexada

– Baseada em tabelas de blocos• um bloco especial guarda a tabela de blocos do

arquivo: index-node (i-node)• diretório aponta para os i-nodes• blocos podem estar espalhados

– Base de funcionamento do UNIX

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

56

Alocação indexadareadme.txt 010 003prova.doc 002 008Aula.pdf 017 005

arquivo inicio #blocos

I-node

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

57

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

58

• Alocação indexada

– Vantagens– não há fragmentação externa– todo o disco pode ser usado– acesso rápido– robustez em caso de problemas

– Desvantagens– gerência mais complexa– espaço em disco perdido com os i-nodes

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

59

• Fragmentação interna

– Arquivos são alocados em blocos:– Os blocos têm tamanho fixo.– Entre 512 bytes e 8 Kbytes.– Um bloco não pode ser alocado parcialmente.

– Se usarmos blocos de 4096 bytes:– um arquivo de 5700 bytes ocupará 2 blocos.– 2492 bytes serão perdidos no último bloco.

– Em média, perde-se 1/2 bloco por arquivo.

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

60

• Fragmentação externa

– Espaços vazios entre blocos de arquivos.

– À medida que o sistema evolui:• arquivos são criados e removidos• mais espaços vazios aparecem.• os espaços vazios ficam menores.

– Alocar novos arquivos torna-se difícil !

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

61

Evolução da fragmentação

t

aloca aloca

aloca aloca

Agora, como alocar um arquivo com 4 blocos ?

remove remove

remove

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

62

• Desfragmentação

– Mover arquivos para reagrupar os fragmentos em espaços maiores

– Visa permitir alocar arquivos maiores– Deve ser feita periodicamente– Uso de algoritmos para minimizar

movimentação de arquivos (rapidez)

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

63

Estratégias de desfragmentação

Situação inicial

Moveu 6 blocos

Moveu 4 blocos

Moveu 2 blocos

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

64

• Estratégias de alocação

– First-fit: usar o primeiro espaço livre– maior rapidez de alocação– pouca preocupação com fragmentos

– Best-fit: usar o menor espaço livre– usar o melhor possível os espaços em disco– fragmentos residuais são pequenos

– Worst-fit: usar o maior espaço livre– fragmentos residuais são maiores (mais úteis)

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

65

Alocando um arquivo c/ 2 blocos

Worst-fit

Best-fit

First-fit

Situação inicial

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

66

• Tamanho dos blocos– A escolha do tamanho dos blocos é importante

para a eficiência do sistema.

– Blocos pequenos:– menor perda por fragmentação interna– mais blocos por arquivo: maior custo de gerência

– Blocos grandes:– maior perda por fragmentação interna– menos blocos por arquivo: menor custo de gerência

Funções dos Sistemas Operacionais Gerenciamento de Arquivo

68

PrimórdiosPrimórdios

– Sistema operacional inexistente– Usuário é o programador e o operador da

máquina– Evolução foi motivada por:

• Melhor utilização de recursos• Avanços tecnológicos (novos tipos de

hardware)• Adição de novos serviços

Sistemas Operacionais - ClassificaçãoSistemas Operacionais - Classificação

69

Sistemas Mono-usuárioSistemas Mono-usuário– Projetados para serem usados por um único usuário de Projetados para serem usados por um único usuário de

cada vez, multi-tarefa (quando existente) limitada.cada vez, multi-tarefa (quando existente) limitada.– Exemplo: MS- DOS, Windows 3.x, Windows 9x, MilleniumExemplo: MS- DOS, Windows 3.x, Windows 9x, Millenium

Sistemas Multi-usuárioSistemas Multi-usuário– Suportam várias sessões de usuário em um computador.Suportam várias sessões de usuário em um computador.– Exemplo: UNIX, Windows-NT, Windows 2000, “Windows Exemplo: UNIX, Windows-NT, Windows 2000, “Windows

XP”, Vista, Win 7XP”, Vista, Win 7– Programas e arquivos de dados em um único computador Programas e arquivos de dados em um único computador

((hosthost), contas de usuário, gerencia o uso comum de ), contas de usuário, gerencia o uso comum de periféricos compartilhados.periféricos compartilhados.

Sistemas Operacionais - ClassificaçãoSistemas Operacionais - Classificação

70

Sistemas Mono-tarefa (Mono-programáveis)– Podem executar apenas uma tarefa de cada vez.– Exemplo: MS-DOS

Sistemas Multi-tarefa (Multi-programáveis)– Permitem executar várias tarefas “simultaneamente”

• Modo cooperativo. Exemplo: Windows 9x (aplicativos de 16 bits)

• Modo preemptivo. Exemplo: Windows NT, UNIX, OS/2, Windows 9x (aplicativos de 32 bits)

Sistemas Operacionais - ClassificaçãoSistemas Operacionais - Classificação

Cooperação e Preempção

• Multi-tarefa Cooperativa - cada aplicativo ocupa seu próprio endereço de memória e recursos do sistema. Cabe a cada processo liberar voluntariamente a utilização do processador para que outro processo possa ser executado

• Multi-tarefa Preemptiva – o SO gerencia o escalonamento dos processos, podendo interromper um processo em favor de outro, de maior prioridade

72

Sistemas em Lote (Batch)

- Primeiros sistemas multi-programáveis- Caracterizados por terem seus jobs armazenados em disco

ou fita, até o momento de serem executados de forma seqüencial.

- Os jobs não possuem interação com o usuário (Ex.: primórdios – compiladores, linkedições, backups).

- Início: passagem entre jobs - manual- Evolução: Sequenciamento automático de jobs, transferindo

o controle de um job a outro.

Sistemas Operacionais - ClassificaçãoSistemas Operacionais - Classificação

73

Sistemas em Lote (Batch) - Histórico

• Introdução da multi-programação

– Acesso direto aos jobs - escala de jobs em uma determinada ordem, de modo a aproveitar os tempos de cpu ociosa.

– A idéia é manter vários programas em memória ao mesmo tempo. Enquanto um programa aguarda E/S, outro pode ser executado

Sistemas Operacionais - ClassificaçãoSistemas Operacionais - Classificação

74

Sistemas Multi-programáveis de Tempo Compartilhado (Time sharing)

• Fornecem serviços a diversos usuários concorrentemente

• Usuários possuem um terminal– Interação com o programa em execução

• Usuário - Ilusão de possuir a máquina dedicada à execução de seu programa– Divisão do tempo de processamento entre usuários– Tempo de resposta é importante

Sistemas Operacionais - ClassificaçãoSistemas Operacionais - Classificação

75

Sistemas Multi-programáveis de Tempo Real• Quanto à construção, são bem semelhantes aos

sistemas de tempo compartilhado. Porém, os objetivos e exigências são diferentes.

• Em geram, atendem (monitoram) processos externos que requerem tempos de resposta dentro de limites rígidos. Ex.: experimentos científicos, tratamento de imagens médicas, controle de processos, etc

• O processo realimenta o computador.• Em geral não existe o conceito de fatia de tempo

alocada a um processo.• Noção de tempo real é dependente da aplicação

(segundos, minuto, horas, etc).

Sistemas Operacionais - ClassificaçãoSistemas Operacionais - Classificação

76

Sistemas com Múltiplos Processadores• Caracterizam-se por possuir 2 ou mais CPUs interligadas,

trabalhando conjuntamente.• No desenvolvimento desses sistemas, o mais importante

é a forma de comunicação entre os processadores e o grau de compartilhamento da memória e dos dispositivos de E/S, o que leva a seguinte classificação:– sistemas fortemente acoplados (assimétricos e

simétricos)– sistemas fracamente acoplados (SO de rede e SO

distribuído).

Sistemas Operacionais - ClassificaçãoSistemas Operacionais - Classificação

77

Tipos de Sistemas Operacionais

• Plataforma: combinação de hardware de computador e software de sistema operacional.– Wintel (Microsoft Windows que roda em um PC baseado em

Intel) é a mais comum.

• Plataformas Comuns:– MS-DOS– Windows– MAC OS– Unix– Linux

85

• Executam tarefas secundárias.• Exemplos:

– Gerenciador de arquivos (Windows Explorer)

– Compactação de arquivos (Winzip)– Recursos de Impressão – Outros

Programas Utilitários