so - aula 01 - introducao

29
Sistemas Operacionais Aula 01. Introdução, funções básicas, histórico, tipos Gabriel Feitosa Vilar

Upload: gabriel-feitosa-vilar

Post on 29-Jun-2015

4.885 views

Category:

Education


1 download

TRANSCRIPT

Page 1: SO - Aula 01 - Introducao

Sistemas Operacionais

Aula 01. Introdução, funções básicas, histórico, tipos

Gabriel Feitosa Vilar

Page 2: SO - Aula 01 - Introducao

Bibliografia

MACHADO, Francisco B.. Arquitetura de sistemas operacionais.

TANENBAUM, Andrew S.. Sistemas operacionais modernos.

SILBERSCHATZ, Abraham. Sistemas operacionais: conceitos e aplicações.

TANENBAUM, Andrew S.. Sistemas operacionais: projeto e implementação. 3ª edição.

Page 3: SO - Aula 01 - Introducao

Introdução

Características do SO Controla o funcionamento do computador Gerencia o uso e o compartilhamento de seus

diversos recursos, como processadores, memória e dispositivos de E/S

Encapsula os diversos detalhes do hardware, servindo de interface entre o usuário e computador

Page 4: SO - Aula 01 - Introducao

Funções básicas

Facilidade de acesso aos recursos do sistema Cabe ao SO servir de interface entre os usuários

e os recursos disponíveis Compartilhamento de recursos de forma

organizada e protegida Em sistemas multiusuários, é necessário

controlar o uso concorrente desses recursos O compartilhamento permite a redução de custos

Page 5: SO - Aula 01 - Introducao

Máquina de níveis

Nos primeiros computadores, a programação era realizada em painéis através de fios, necessitando um grande conhecimento de hardware

Solução: surgimento do SO O computador pode ser visto como uma máquina

de níveis ou máquina de camadas, onde inicialmente existem dois níveis: hardware (nível 0) e SO (nível 1)

O usuário enxerga apenas o SO, como se o hardware não existisse. Essa visão modular e abstrata é chamada Máquina Virtual

Page 6: SO - Aula 01 - Introducao

Histórico

1642. Blaise Pascal (primeira máquina de somar) 1673. Leibiniz (máquina de somar e multiplicar) 1822. Babbage (equações polinomiais) 1833. Babbage (máquina analítica) 1854. Boole (álgebra de boole) 1890. Hollerith (perfuração de cartões) 1930. Zuze (Z-1, primeiro computador binário) 1937. Turing (Máquina universal ou de Turing)

Page 7: SO - Aula 01 - Introducao

Histórico

Década de 40 1939. Segunda Guerra Mundial 1943. Turing (Colossus máquina decifradora do Enigma) 1944. Aiken (Mark I, baseada nos trabalhos de Babbage) 1946. Eckert (Eniac, primeiro computador digital e

eletrônico, cálculos balísticos e bomba H) Von Neumann (dados e programas armazenados na

memória) 1949. Edsac (primeiro computador com programa

armazenado Computadores sem interface com usuário

Page 8: SO - Aula 01 - Introducao

Histórico

Década de 50 Surgimento do transistor no final da década de 40 Final de 50, primeiros computadores transistorizados Processamento em lote (batch)

Programas ou jobs passaram a ser perfurados em cartões Por meio de uma leitora eram gravados em uma fita de

entrada O processamento era gravado em uma fita de saída que ao

final era impressa Um conjunto de programas era submetido de uma vez

1953. Primeiro SO criado pela IBM Surgimento das primeiras linguagens de alto nível

Page 9: SO - Aula 01 - Introducao

Histórico Década de 60

Surgimento dos circuitos integrados Aumento do poder de processamento Inovações

Multiprogramação, multiprocessamento, time-sharing, memória virtual

Substituição das fitas por discos 1964. IBM lança System/360. Arquitetura escalável.

OS/360 1965. DEC lança PDP-8. Computador de pequeno porte e

baixo custo 1969. Ken Thompson baseado no MULTICS cria versão

que posteriormente viria a ser o UNIX

Page 10: SO - Aula 01 - Introducao

Histórico Década de 70

Circuitos VLSI Miniaturização e barateamento dos equipamentos

1971. Intel 4004 (4 bits) 1973. Intel 8080 (8 bits) 1976. Apple II (8 bits). Microsoft. Digital Research (CP/M) Arquitetura com mais de um processador Redes distribuídas (Wide Area Network) 1971. Linguagem Pascal 1975. Linguagem C Unix é reescrito em C

Page 11: SO - Aula 01 - Introducao

Histórico

Década de 80 1981. IBM entra no mercado de

microcomputadores Primeiro PC. Intel 8088 (16 bits). PC-DOS / MS-

DOS (Microsoft) Universidade de Berkeley

BSD TCP/IP

Redes de computadores Estações de trabalho

Page 12: SO - Aula 01 - Introducao

Histórico

Década de 90 Barateamento do hardware Surgimento da Internet Arquitetura cliente-servidor Sistemas operacionais baseados em interface

gráfica Softwares open source

Linux, MySQL, Apache, FreeBSD

Page 13: SO - Aula 01 - Introducao

Histórico

Década de 2000 Processamento distribuído Novas interfaces usuário-máquina ...

Page 14: SO - Aula 01 - Introducao

Tipos de SO

Sistemas Monoprogramáveis ou monotarefa Multiprogramáveis ou multitarefa Múltiplos processadores

Page 15: SO - Aula 01 - Introducao

Sistemas monotarefa

Executam um único programa O começo de um programa deve esperar

pelo término do antecessor Todos os recursos do sistema estão

dedicados a um único usuário, nem sempre usados de forma integral

Simples implementação Sem compartilhamento de recursos

Page 16: SO - Aula 01 - Introducao

Sistemas multitarefa

Evolução dos SO monotarefa Recursos compartilhados entre diversos usuários e

aplicações Enquanto uma aplicação está esperando uma

operação de E/S, outra pode estar sendo processada no mesmo intervalo de tempo

Redução do tempo de resposta das aplicações Redução de custos Implementação mais complexa

Page 17: SO - Aula 01 - Introducao

Sistemas multitarefa

Quanto ao número de usuários, podem ser classificados como: Sistemas multitarefa monousuários

Computadores pessoais, estações de trabalho, onde há apenas um usuário interagindo com o sistema

Sistemas multitarefa multiusuários Ambientes interativos que possibilitam diversos

usuários conectados ao sistema simultaneamente

Page 18: SO - Aula 01 - Introducao

Sistemas multitarefa

Quanto a forma de gerenciamento de suas aplicações Sistemas em lote (batch) Sistemas de tempo compartilhado (time-sharing) Sistemas de tempo real

Page 19: SO - Aula 01 - Introducao

Sistemas multitarefa

Sistemas em Lote (batch) Primeiros tipos de SO multiprogramáveis Programas (jobs) Não exige a interação com o usuário Todas as entradas e saídas são feitas com

alguma memória secundária (arquivos em disco) Programas de longa duração

Cálculos numéricos, ordenações, compilações, backups, etc

Page 20: SO - Aula 01 - Introducao

Sistemas multitarefa

Sistemas de tempo compartilhado (time-sharing) Diversos programas executados que compartilham o

tempo do processador em pequenos intervalos, chamados fatia de tempo (time-slice)

Caso a fatia de tempo não seja suficiente, o programa é suspenso pelo SO e substitúído por outro, enquanto fica aguardando por uma nova fatia de tempo

Normalmente há interação com o usuário Também conhecidos como sistema on-line Tempos baixos de resposta Menor custo

Page 21: SO - Aula 01 - Introducao

Sistemas multitarefa

Sistemas de tempo real Real-time Comportamento parecido com os SO de tempo

compartilhado O tempo de processamento deve ocorrer dentro de limites

rígidos, que devem ser obedecidos, sob pena de erros irreparáveis

Não existe a idéia de fatia de tempo A aplicação usa o processador o tempo necessário, até

que outra tarefa mais prioritária apareça A prioridade é definida pela aplicação, não pelo SO

Presentes em processos críticos

Page 22: SO - Aula 01 - Introducao

Sistemas com múltiplos processadores

Possuem duas ou mais UCPs interligadas e trabalhando em conjunto

Vários programas são executados ao mesmo tempo ou o mesmo parte de um programa sendo executados em processadores distintos

Uso intensivo dos processadores

Page 23: SO - Aula 01 - Introducao

Sistemas com múltiplos processadores Benefícios

Escalabilidade Ampliar o poder computacional do sistema apenas

adicionando novos processadores Disponibilidade

Manter o sistema em operação mesmo em casos de falhas Se um dos processadores falhar, os demais podem

assumir suas funções de maneira transparente aos usuários e aplicações, embora com menor capacidade de computação

Balanceamento de carga Distribuição do processamento entre os diversos

processadores da configuração a partir da carga de trabalho de cada processador

Page 24: SO - Aula 01 - Introducao

Sistemas com múltiplos processadores

Forma de comunicação entre as UCPs e o grau de compartilhamento da memória e dos dispositivos de E/S Sistemas fortemente acoplados Sistemas fracamente acoplados

Page 25: SO - Aula 01 - Introducao

Sistemas fortemente acoplados

Tightly coupled Vários processadores compatilham uma

única memória física (shared memory) e dispositivos de E/S

Gerenciados por um único SO Também conhecidos como

multiprocessadores

Page 26: SO - Aula 01 - Introducao

Sistemas fortemente acoplados

Podem ser divididos SMP (Symmetric multiprocessors)

Tempo uniforme de acesso à memória principal pelos diversos processadores

NUMA (Non-uniform memory access) Diversos conjuntos reunindo processadores e

memória principal, sendo que cada conjunto é conectado aos outros através de uma rede de interconexão

O tempo de acesso varia em função da localização física

Page 27: SO - Aula 01 - Introducao

Sistemas fracamente acoplados

Loosely coupled Possuem dois ou mais sistemas computacionais

conectados por meio de linhas de comunicação Cada sistema funciona independentemente,

podendo possuir seu próprio SO, gerenciando seus próprios recursos

Também conhecidos como multicomputadores Cada sistema computacional pode ter mais de um

processador

Page 28: SO - Aula 01 - Introducao

Sistemas fracamentes acoplados

De acordo com o grau de integração dos sistemas Sistemas operacionais de rede

Permitem o compartilhamento de recursos como uma impressora ou diretório com os demais hosts da rede

Sistemas distribuídos O SO esconde os detalhes dos hosts individuais e os trata

como um conjunto único Permite que uma aplicação seja dividida em partes e cada

parte seja executada por hosts diferentes da rede de computadores

Para o usuário e aplicações é como se não existisse a rede de computadores

Page 29: SO - Aula 01 - Introducao

Sistemas fracamentes acoplados

De acordo com o grau de integração dos sistemas Clusters

Dois ou mais servidores ligados por uma conexão de alto desempenho

O usuário não sabe os nomes dos componentes do cluster, nem sabe quantos são

Quando precisa de um serviço, basta solicitar ao cluster para obtê-lo

Atualmente, clusters encontram aplicação em bancos de dados, web e serviços que necessitem alta disponiblidade, escalabilidade e balanceamento de carga