Upload
gabriel-feitosa-vilar
View
4.885
Download
1
Embed Size (px)
Citation preview
Sistemas Operacionais
Aula 01. Introdução, funções básicas, histórico, tipos
Gabriel Feitosa Vilar
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.
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
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
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
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)
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
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
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
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
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
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
Histórico
Década de 2000 Processamento distribuído Novas interfaces usuário-máquina ...
Tipos de SO
Sistemas Monoprogramáveis ou monotarefa Multiprogramáveis ou multitarefa Múltiplos processadores
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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