Você está na página 1de 83

Microprocessadores II

Prof. Luciano Mendes Camillo


professorcamillo@gmail.com
??
https://sites.google.com/site/microprocessadores2cefet/
Sistemas Operacionais
BIBLIOGRAFIA:

Sistemas Operacionais Modernos


Andrew S. Tanenbaum
Prentice-Hall

Fundamentos de Sistemas Operacionais


SILBERSCHATZ A., CAGNE G., BAER P..
LTC,2004.

Arquitetura de Sistemas Operacionais


Francis B. Machado
Luiz Paulo Maia

Sistemas Operacionais.
DEITEL, H.M.; DEITEL, P.J.; CHOFFNES, D.R.
Tradução de Arlete Simille Marques.
São Paulo: Pearson Prentice Hall, 2005. 760 p.
Definição de Sistema Operacional:
Conjunto de partes, funcionalmente independentes, que
trabalham de maneira harmônica objetivando um fim comum.

1. Conjunto de partes – Não pressupõe


uma seqüência;
2. Funcionalmente independentes – Cada
parte do sistema executa uma função
bem definida, diferente de qualquer
outra parte;
3. Trabalham de maneira harmônica –
Executam sua função da melhor
maneira possível em cooperação com
as outras partes;
4. Fim comum - O objetivo do programa.
Definição de Sistema Operacional:
São programas que controlam todos os recursos do
computador e fornecem a base para o desenvolvimento dos
programas de aplicação.

É um gerenciador de recursos, responsável pela


gerência do processador,
pela gerência de memória,
pela gerência de arquivos,
pela gerência dos dispositivos de entrada e saída
e pelos mecanismos de acesso aos dados.
Máquina de Níveis

Nível 1 Sistema Operacional


Nível 0 Hardware
Máquina de Níveis
O Sistema Operacional como a “camada” de software
entre o hardware e as aplicações dos usuários

usuários

Aplicação Aplicação Aplicação


Sistema Operacional
Hardware
Máquina de Níveis
source app 1 source app 2 source app ..n
sdgf jhgsdfj dsjhf
khj khj
HKjhkjghj hg
jhgj jgh jhg jhg jhg jhg kjhg
jhgj hg jhg
kjhkjhgjhg jhg jhg jhg jh
kjhjkhgjhgjh
kgjhgjhgjhgj

Aplicação Aplicação Aplicação

Sistema Operacional

Hardware
Máquina de Níveis

Processador Jogos
Browsers Aplicativos
de Texto
Interpretadores
Compiladores Bibliotecas de
Comando Programas
do Sistema
SISTEMA OPERACIONAL

Linguagem de Máquina

Hardware
Micro Arquitetura

Dispositivos Físicos
Máquina de Níveis
Micro Arquitetura:
Linguagem Dispositivos
de Máquina: Conjunto físicos são agrupados
de instruções para
interpretadas
Hardware: Diversas camadas.
formar
pelos unidades funcionais
dispositivos que compõem a micro arquitetura;
– Dispositivos físicos:
•• Possui
CPU –entre
Responsável
50 e 300pelo processamento;
instruções;
• ULA
Circuitos (chips);
•• Realiza(Unidade
operações Lógica
por Aritmética) – Responsável pelas
meio de registradores;
operações
• •Baixo
Cabos; aritméticas.
nível de abstração;Essas operações podem ser
controladas
• •Ex.:
Transistores;
Assembler. por software (micro programas) ou por
circuitos de hardware;
• Capacitores;
• Memória;
• Disco rígido;
Linguagem de Máquina
• etc...
Hardware
Micro Arquitetura

Dispositivos Físicos
Histórico
O desenvolvimento dos sistemas operacionais pode ser
melhor observado e compreendido quando
acompanhamos a história do próprio computador.

 Por volta de 1643, Blaise


Pascal projeta e constrói uma
máquina de calcular
mecânica, que deu origem as
calculadores mecânicas
utilizadas até meados do
século XX.
Histórico

 Charles Babbage constrói em


1822 a máquina de
diferenças e depois, partindo
das idéias de Jacquard,
projeta a máquina analítica, a
qual não foi terminada.
Recentemente comprovou-se
que suas idéias eram
corretas, sendo ele hoje
reconhecido como pai do
computador moderno.
Histórico
 1854 - George Boole
Lógica Binária.
Portas Lógicas. ( 1, 0, E, OU)
Álgebra Booleana.

 Em 1870 é construıdo uma máquina analógica para


previsão de marés por Willian Thomson, que origina os
computadores analógicos.
Histórico
 Em 1890 o Censo Americano utiliza com grande sucesso
as máquinas de tabular de Herman Hollerith, que funda
em 1896 a Tabulating Machine Company. Alguns anos
depois esta companhia se transformaria na IBM
(International Business Machines).
Histórico
 1934 Máquina eletromecânica programável do
engenheiro Konrad Zuse.

Alemanha de Hitler construiu o Z3


Histórico
 1935 Inicio do projeto da máquina eletrônica ABC,
baseada em válvulas, para resolução de sistemas,
proposta pelo físico John Vicent Atanasoft.
Histórico
 1937 John Von Neumann, matemático húngaro, propõe
uma arquitetura genérica para o computador, utilizada
até hoje.
Histórico
Década de 1940
Primeiros computadores eram realmente grandes máquinas de
calcular.
Compostas por circuitos baseados em relês e outros
dispositivos eletromecânicos, estas máquinas eram muito grandes,
lentas, consumiam muita energia elétrica e eram de difícil
operação.

Esta tecnologia foi progressivamente substituída pelas válvulas


eletrônicas, um pouco mais confiáveis e rápidas, embora muito mais
caras.

Com isso os computadores da época eram caríssimos,


restringindo seu uso à organismos militares,
agências governamentais
e grandes universidades.

O uso do computador era claramente experimental.


Histórico
Um dos primeiros sistemas programáveis construídos foi o
computador eletromecânicos Mark I, projetado em conjunto pela IBM
e pela Universidade de Harvard, apresentado em 1944.

media 18 m de comprimento por 2,5 m de altura.


Histórico
Em 1946 o Exército Americano revela seu computador eletrônico
digital, o ENIAC, utilizado para cálculos de balística externa, que vinha
sendo utilizado a alguns anos.

Área ocupada = 170 m2 Peso = 30 t.


Histórico

Computadores eram programados através de fios quando


precisava-se mudar a aplicação.
Histórico
Proposta de Von Neumann
construção de sistema computacional baseada numa arquitetura
composta por três blocos básicos
onde a seqüência de passos a ser executada pela máquina
fosse armazenada nela própria
sem necessidade de modificação de seu hardware.

Seria uma máquina genérica, cujo bloco processador seria


capaz de realizar um conjunto de operações
- matemáticas
- e lógicas
além de algumas operações de
movimentação de dados entre os blocos da
máquina.
Histórico
Proposta de Von Neumann
Estas operações, chamadas de instruções,
seriam armazenadas no bloco memória

Enquanto o bloco de dispositivos de E/S (Entrada e Saída) ou I/O


(Input and Output)
seria responsável pela
entrada e saída dos dados,
instruções e controle do sistema.
Histórico

Esquema básico
de funcionamento
dos processadores

Após ligado, um processador efetua


um ciclo de busca por uma instrução na memória (fetch),
a qual é decodificada do ciclo seguinte (decode),
que determina quais as ações necessárias para sua
execução no ultimo ciclo (execute).

Após a execução repetem-se os ciclos


de busca, decodificação e execução indefinidamente.

A repetição desta seqüência só é interrompida através da execução de


uma instrução de parada (halt) ou pela ocorrência de um erro grave.
Histórico
Assim sendo, um mesmo hardware poderia resolver diferentes tipos
de problemas sem necessidade de qualquer modificação, bastando
que uma seqüência adequada de instruções fosse carregada no
computador.

Com isto nascem os conceitos de


- programa,

- computador programável

- e com eles a programação de computadores


Histórico
Década de 1950
Descoberta do transistor
deu novo impulso à eletrônica e aos computadores.

Custo ainda alto


Mas já era possível fabricar e vender computadores
para grandes empresas e organismos governamentais

1951 Surge o primeiro computador comercial


Univac-I (Universal Automatic Computer)

1953 IBM lança seu primeiro computador digital: IBM 701.


Histórico

IBM 650

Univac-I
(Universal Automatic Computer)
Histórico
Programação
ainda era necessário conhecer detalhes sobre
seus circuitos
e o funcionamento de seus dispositivos.
Programação
feita em assembly, ou seja, diretamente em linguagem
de máquina

Com a evolução dos computadores,


tornou-se necessário criar pequenos programas que os
controlassem na execução de tarefas cotidianas, tais
como :
- acionar certos dispositivos em operações
repetitivas
- ou mesmo simplificar a execução de novos
programas.

SURGIRAM ASSIM OS PRIMEIROS


SISTEMAS OPERACIONAIS.
Histórico
O uso individual do computador (conceito de open shop)
era pouco produtivo,
pois a entrada de programas constituía uma etapa
muito lenta e demorada
que na prática representava o computador parado.

Para otimizar a entrada de programas surgiram


as máquinas leitoras de cartão perfurado
(semelhantes as máquinas de tabular construídas por
Herman Hollerith)
que aceleravam muito a entrada de dados.

Os programadores deveriam então


escrever seus programas
e transcrevê-los em cartões perfurados.
Histórico
Cada programa e seus respectivos dados eram organizados em
conjuntos denominados jobs
que poderiam ser processados da seguinte forma:

os vários jobs de diferentes usuários eram lidos por uma


máquina leitora de cartões
que gravava os dados numa fita magnética.

Esta fita de saída era levada a outro máquina


que lia a fita e imprimia as listagens,
devolvidas aos usuário juntamente com seus cartões.

Apesar da natureza seqüencial do processamento,


para os usuários era como se um lote de jobs fosse
processado a cada vez,
originando o termo processamento em lote (batch processing).
Histórico
Os sistemas batch viabilizaram o uso comercial dos
computadores,
época em que grandes fabricantes de computadores
começam a surgir.

Ainda na década de 50 surgiram


- a primeira linguagem de programação de alto nível
(o IBM FORTRAN - Formula Translator - em 1957),
- a primeira unidade de disquetes comercialmente disponível
no modelo IBM 305
- e os mecanismos de interrupção
implementados diretamente no hardware dos
processadores.
1959 a DEC (Digital Equipment Corporation) apresenta seu
minicomputador, o PDP-I,
que fez grande sucesso comercial,
originando uma grande linha de equipamentos.
Histórico

PDP1 IBM / 305


Histórico Década de 1950
Utilização mais eficiente e segura dos computadores

Sistemas operacionais foram se tornando cada vez mais


complexos
passando a administrar os recursos do computador
de forma cada vez mais sofisticada.

Criação do COBOL (Commom Business Oriented Language),


linguagem de programação especialmente desenvolvida
para o Pentágono americano para auxiliar o
desenvolvimento de sistemas comerciais.

1961Farchild
inicia a comercialização dos primeiros circuitos
integrados.

1963 DEC
introduz o uso de terminais de vídeo
no ano seguinte surge o mouse.
Histórico
Utilização da multiprogramação

Segundo Deitel:
Multiprogramação é quando vários jobs estão na memória
principal simultaneamente, enquanto o processador é chaveado de
um job para outro job fazendo-os avançarem enquanto os dispositivos
periféricos são mantidos em uso quase constante.

Processamento chamado científico era muito bem atendido pelo


processamento em lote comum o mesmo não acontecia com
processamento dito comercial.

Processamento científico:
- ocorre a execução de grande quantidade de cálculos
- com quantidades relativamente pequenas de dados,
- mantendo o processador ocupado na maior parte do tempo
- o tempo gasto com I/O (entrada e saída) era insignificante,
Histórico
Comportamento chamado CPU Bounded

Processamento comercial :
- o processador permanece bastante ocioso dado que os
cálculos são relativamente simples
- e o uso de I/O é freqüente dada a quantidade de dados a
ser processada

Comportamento I/O Bounded.

Multiprogramação
- solução para este problema
- através da divisão da memória em partes, chamadas
partições
- onde em cada divisão um job poderia ser mantido em
execução
Histórico
Com vários jobs na memória o
processador permaneceria ocupado o suficiente
para compensar o tempo das operações mais lentas
de I/O.
Spooling (simultaneous peripheral operation on line),

Outra técnica utilizada de certos sistemas operacionais que


consiste na habilidade em
- ler novos jobs de cartões ou fitas
- armazenado-os em uma área temporária do disco rígido
interno
para uso posterior
quando uma partição de memória fosse
liberada.
Histórico
Apesar destas novas técnicas
os sistemas da época operavam basicamente em lote.

Num sistema em lote, a correção de um problema simples de


sintaxe poderia levar horas devido a rotina imposta:
- preparação dos cartões,
- submissão do job no próximo lote
- e a retirada dos resultados várias horas ou até mesmo dias
depois.

Tais problemas associados ao desenvolvimento de software


motivaram a
concepção de sistemas multiprogramados
Histórico
Sistemas que permitissem o uso simultâneo do computador por
diversos usuários através do pseudoparalelismo.

O pseudoparalelismo poderia ser obtido com


o chaveamento do processador
entre vários processos que poderiam atender os
usuários
desde que fossem dotados de interfaces
interativas.
Idéia central
- dividir o poder computacional de um computador entre seus
vários usuários,
- fornecendo uma máquina virtual para cada um destes.
Histórico
Estes sistemas são denominados
Sistemas em Tempo Repartido (time sharing systems),

o tempo do processador era dividido em pequenos intervalos


denominados quanta de tempo ou janelas temporais

Quantas de tempo
distribuídos seqüencialmente entre os processos de
cada usuário
de forma que a espera entre os intervalos fosse
imperceptível para os usuários.
Histórico
Com isto, a capacidade de processamento da máquina ficava
dividida
entre os usuários do sistema a razão de 1/n,
onde n é o número de usuários do sistema.

O mecanismo central de funcionamento destes sistemas


é a interrupção.

Uma interrupção é uma forma de parar a execução de um


programa qualquer,
conduzindo o processador a execução de uma outra
rotina,
previamente especificada
que após ser executada por completo,
permite o retorno ao programa original,
em prejuízo para execução do primeiro.
Histórico
Os sistemas em tempo repartido também criaram
- as necessidades dos mecanismos de identificação de usuário
(userid e password),
- dos mecanismos de início e término de sessão de trabalho
(login ou logon),
- da existência de contas de usuário, etc.

Um dos processos de cada usuário poderia ser


um interpretador de comandos (shell )
que representaria a interface computador/ usuário.

Inicialmente estas interfaces eram implementadas


como linhas de comando
em terminais de teletipo
e depois em terminais de vídeo.

Utilizavam exclusivamente caracteres


também são conhecidas como interfaces em modo texto.
Histórico
Maiores dificuldades que surgiram durante o desenvolvimento destes
sistemas foram
- a solução dos problemas associados ao compartilhamento
dos recursos,
- à organização dos usuários
- e das tarefas do sistema,
- além dos mecanismos de segurança e privacidade.
Microprocessadores II

Prof. Luciano Mendes Camillo


professorcamillo@gmail.com
??
https://sites.google.com/site/microprocessadores2cefet/
Objetivos de um Sistema Operacional

Existe uma grande distância entre


os circuitos eletrônicos e dispositivos de hardware

e os programas aplicativos em software.

Os circuitos são complexos,


acessados através de interfaces de baixo nível
(geralmente usando as portas de entrada/saída do
processador)

e muitas vezes suas características e seu


comportamento
dependem da tecnologia usada em sua
construção.
Objetivos de um Sistema Operacional
Por exemplo:
Diferentes formas de acesso de baixo nível a
discos rígidos IDE
discos SCSI
ou leitores de CD.

Essa grande diversidade


pode ser uma fonte de dores de cabeça
para o desenvolvedor de aplicativos.

Torna-se desejável oferecer aos programas aplicativos


uma forma de acesso homogênea
aos dispositivos físicos,

que permita abstrair as diferenças tecnológicas entre eles.


Objetivos de um Sistema Operacional
O sistema operacional

é uma camada de software que opera entre


o hardware
e os programas aplicativos voltados ao usuário final.

é uma estrutura de software


ampla,
muitas vezes complexa,
que incorpora aspectos
de baixo nível
(como drivers de dispositivos e gerência de memória física)

e de alto nível
(como programas utilitários e a própria interface gráfica).
Objetivos de um Sistema Operacional
Arquitetura geral de um sistema de computação típico.
Pode-se observar :
- elementos de hardware,
- o sistema operacional
- e alguns programas aplicativos.
Objetivos de um Sistema Operacional
Os objetivos básicos de um sistema operacional podem ser
sintetizados em duas palavras-chave:

“abstração” e “gerência”

Abstração de recursos

Acessar os recursos de hardware de um sistema de computação


pode ser uma tarefa complexa, devido às características específicas
de cada dispositivo físico e a complexidade de suas interfaces.
Abstração de recursos

Exemplo: Principais passos envolvidos na abertura de um arquivo


(operação open) em um leitor de disco óptico (CD, DVD):

1. verificar se os parâmetros informados estão corretos (nome do


arquivo, identificador do leitor de disco óptico, buffer de leitura, etc);
2. verificar se o leitor de disco óptico está disponível;
3. verificar se o leitor contém um disco óptico;
4. ligar o motor do leitor e aguardar atingir a velocidade de rotação
correta;
5. posicionar o laser de leitura sobre a trilha onde está a tabela de
diretório;
6. ler a tabela de diretório e localizar o arquivo ou subdiretório
desejado;
7. direcionar o laser de leitura para a posição do bloco inicial do
arquivo;
8. ler o bloco inicial do arquivo e depositá-lo em um buffer de
memória.
Abstração de recursos
O Sistema Operacional deve definir interfaces abstratas para os
recursos do hardware, visando atender os seguintes objetivos:

 Prover interfaces de acesso aos dispositivos, mais simples de


usar que as interface de baixo nível, para simplificar a construção de
programas aplicativos.

Por exemplo:
Leitura de dados de um disco rígido
Uma aplicação usa um conceito chamado arquivo,

que implementa uma visão abstrata do disco rígido,


acessível através de operações como open, read e close.

Caso tivesse de acessar o disco diretamente,


- teria de manipular portas de entrada/saída e registradores
- com comandos para o controlador de disco
(sem falar na dificuldade de localizar os dados desejados
dentro do disco).
Abstração de recursos
 Tornar os aplicativos independentes do hardware.

Uma interface abstrata de acesso a um dispositivo de hardware

Significa que o sistema operacional


desacopla o hardware dos aplicativos
e permite que ambos evoluam de forma mais
autônoma.

Exemplo: o código de um editor de textos não deve ser dependente


da tecnologia de discos rígidos utilizada no sistema.
Abstração de recursos
 Definir interfaces de acesso homogêneas para dispositivos
com tecnologias distintas.

Através de suas abstrações, o Sistema Operacional permite:


aos aplicativos usar a mesma interface para dispositivos
diversos.

Exemplo: Um aplicativo acessa dados em disco


através de arquivos e diretórios,
sem precisar se preocupar com a estrutura
real de armazenamento dos dados,

Podem estar em um disquete,


um disco IDE,
uma máquina fotográfica digital conectada à porta USB,
um CD
ou mesmo um disco remoto,
compartilhado através da rede.
Gerência de recursos
Os programas aplicativos usam o hardware para atingir seus
objetivos:
- ler e armazenar dados,
- editar e imprimir documentos,
- navegar na Internet,
- tocar música, etc.

Um sistema com várias atividades simultâneas, podem surgir


conflitos no uso do hardware:
quando dois ou mais aplicativos precisam dos mesmos
recursos para poder executar.

Cabe ao sistema operacional:


definir políticas para gerenciar o uso dos recursos de
hardware pelos aplicativos,
e resolver eventuais disputas e conflitos.
Gerência de recursos

Algumas situações onde a gerência de recursos do hardware se faz


necessária:

 Cada computador possui normalmente um só processador.

O uso desse processador deve ser distribuído


entre os aplicativos presentes no sistema,

de forma que :
cada um deles possa executar na velocidade adequada
para cumprir suas funções
sem prejudicar os outros.

O mesmo ocorre com a memória RAM,


que deve ser distribuída de forma justa entre as aplicações.
Gerência de recursos

 Impressora
é um recurso cujo acesso deve ser efetuado de forma
mutuamente exclusiva
(apenas um aplicativo por vez)

Para não ocorrer mistura de conteúdo nos


documentos impressos.

Sistema operacional resolve essa questão :


definindo uma fila de trabalhos a imprimir (print jobs)
normalmente atendidos de forma seqüencial (FIFO).
Gerência de recursos
 Ataques de negação de serviço (DoS – Denial of Service) são
comuns na Internet.

Consistem em usar diversas técnicas para forçar um servidor de rede


a dedicar seus recursos a atender um determinado usuário,
em detrimento dos demais.

Exemplo: Ao abrir milhares conexões simultâneas em um


servidor de e-mail,

Atacante (DoS) pode reservar para si todos os recursos do servidor


(processos, conexões de rede, memória e processador),
fazendo com que os demais usuários não sejam
mais atendidos.

É responsabilidade do sistema operacional do servidor :


- detectar tais situações
- e impedir que todos os recursos do sistema sejam
monopolizados por um só usuário (ou um pequeno grupo).
Abstração e Gerência de recursos
PORTANTO:

Um sistema operacional visa:


abstrair o acesso
e gerenciar os recursos de hardware,

Provendo aos aplicativos


um ambiente de execução abstrato,
no qual o acesso aos recursos
se faz através de interfaces simples,
independentes das características e
detalhes de baixo nível,

e no qual os conflitos no uso do hardware são


minimizados.
Tipos de sistemas operacionais
Tipos de sistemas operacionais
Tipos de sistemas operacionais
Sistemas Monoprogramáveis/Monotarefa

Primeiros sistemas operacionais


voltados tipicamente para a execução de um único programa

Qualquer outra aplicação, para ser executada,


deveria aguardar o término do programa corrente.

Neste tipo de sistema, o processador,


a memória
e os periféricos
Permanecem exclusivamente dedicados à
execução de um único programa.
Tipos de sistemas operacionais
Sistemas Monoprogramáveis/Monotarefa

Sistemas monoprogramáveis diretamente ligados ao surgimento dos


primeiros computadores
(década de 50/60)

Embora os Sistemas Operacionais já tivessem evoluído com as


tecnologias de multitarefa e multiprogramáveis
Sistemas monoprogramáveis voltaram a ser utilizados
na plataforma de microcomputadores pessoais
e estações de trabalho
devido à baixa capacidade de
armazenamento destas máquinas, na época.
Tipos de sistemas operacionais
Sistemas Monoprogramáveis/Monotarefa

Era muito clara a desvantagem deste tipo de sistema


no que diz respeito à limitação de tarefas (uma de cada vez),

provocava um grande desperdício de recursos de hardware.

Comparados a outros sistemas,

São de simples implementação,

não existindo muita preocupação


com problemas decorrentes do
compartilhamento de recursos

como memória, processador e


dispositivos de E/S.
Tipos de sistemas operacionais
Sistemas Multiprogramáveis/Multitarefa

Uma evolução dos sistemas monoprogramáveis

Neste tipo os recursos computacionais são compartilhados


entre os diversos usuários e aplicações:

enquanto um programa espera por um evento,


outros programas podem estar processando neste mesmo
intervalo de tempo.

Desta forma observa-se o conceito de compartilhamento


da memória e do processador.
Tipos de sistemas operacionais
Sistemas Multiprogramáveis/Multitarefa

O S.O. se incumbe de gerenciar o acesso concorrente aos seus


diversos recursos, como processador,
memória
e periféricos,

De forma ordenada e protegida,


entre os diversos programas.

Vantagens :
- redução do tempo de resposta das aplicações,
- além dos custos reduzidos
devido ao compartilhamento dos recursos do
sistema
entre as diferentes aplicações.

Mais eficientes que os monoprogramáveis


Porém são de implementação muito mais complexa.
Tipos de sistemas operacionais
Sistemas Multiprogramáveis/Multitarefa
Tipos de sistemas operacionais
Sistemas Multiprogramáveis/Multitarefa

Podem ser classificados de acordo com a forma com que suas


aplicações são gerenciadas, podendo ser divididos em:
Tipos de sistemas operacionais
Sistema Batch (de lote) : os sistemas operacionais mais antigos
trabalhavam “por lote”, ou seja,

Todos os programas a executar eram colocados em uma fila


com seus dados e demais informações para a execução.

O processador recebia um programa após o outro


processando-os em seqüência,
o que permitia um alto grau de utilização do sistema.

Ainda hoje o termo “em lote” é usado para designar:


um conjunto de comandos que deve ser executado em seqüência,
sem interferência do usuário.

Exemplos desses sistemas incluem o OS/360 e VMS, entre outros.


Tipos de sistemas operacionais
Sistema Batch (de lote) :
Tipos de sistemas operacionais
Sistemas de Tempo Compartilhado (time-sharing)

Permitem que diversos programas sejam executados


a partir da divisão de tempo do processador
em pequenos intervalos
denominados fatia de tempo (ou time-slice).

Caso a fatia de tempo não seja suficiente para a conclusão do


programa
este é interrompido pelo sistema operacional
e substituído no processador por outro,

enquanto aguarda nova fatia de tempo.

Neste tipo de processamento,


cada usuário tem a impressão de que a máquina está
dedicada ao seu programa
como se ele fosse o único usuário a se utilizar do
sistema.
Tipos de sistemas operacionais
Sistemas de Tempo Compartilhado (time-sharing)

Geralmente permitem interação do usuário com a aplicação


através de terminais compostos por monitor, teclado e mouse.

Possuem uma linguagem de controle que permite ao usuário


interagir com o sistema operacional através de comandos.

Desta forma permite : verificar arquivos armazenados em disco


ou cancelar execução de programas.

Maioria das aplicações comerciais atualmente


é processada em ambiente de tempo compartilhado,

Oferecendo
tempos baixos de respostas a seus usuários
e menores custos
em função do alto grau de compartilhamento
dos diversos recursos do sistema.
Tipos de sistemas operacionais
Sistemas de Tempo real :
sua característica essencial é :
possuir um comportamento temporal previsível
ou seja, seu tempo de resposta deve ser conhecido
no melhor e pior caso de operação.

A estrutura interna :
deve ser construída de forma a
minimizar esperas e latências imprevisíveis, como:
tempos de acesso a disco
e sincronizações excessivas.
Duas classificações:
- soft real-time systems
perda de prazos implica na degradação do serviço prestado.
(suporte à gravação de CDs ou à reprodução de músicas)
Caso o sistema se atrase,
pode ocorrer a perda da mídia em gravação
ou falhas na música que está sendo tocada.
Tipos de sistemas operacionais

Sistemas de Tempo real :


- hard real-time systems
perda de prazos pelo sistema pode perturbar o objeto
controlado, com graves conseqüências humanas,
econômicas
ou ambientais.

Exemplos : sistema de controle de funcionamento de uma turbina de


avião a jato ou de uma caldeira industrial.
Tipos de sistemas operacionais
Sistemas de Tempo real :

Um Sistema de Tempo Real é, portanto, o software que gerencia


os recursos de um sistema computacional, com o objetivo de
garantir com que todos os eventos sejam atendidos dentro de
suas restrições de tempo, e gerenciados da forma mais eficiente
possível.

O software responsável pelo gerenciamento dos recursos


computacionais também é chamado de Kernel (ou núcleo) do
Sistema de Tempo Real,

e conhecido no mercado como RTOS (Real-Time Operation


System) ou Sistema Operacional de Tempo Real.

Exemplos de sistemas de tempo real :


eCos, QNX, MicroC/OS-II,
VxWorks, Monta Vista, FreeRTOS,
RT-Linux, etc
Tipos de sistemas operacionais

Sistemas com Múltiplos Processadores


Caracterizam-se por possuir : duas ou mais CPUs interligadas
e trabalhando em conjunto.

Vantagem : - permitir que vários programas sejam executados


ao mesmo tempo
- ou que um mesmo programa seja subdividido em
várias partes
para serem executadas simultaneamente
em mais de um processador.

Esta técnica permitiu a criação de sistemas computacionais voltados


para: processamento científico,
prospecção de petróleo,
simulações,
processamento de imagens
e CAD.
Tipos de sistemas operacionais

Sistemas com Múltiplos Processadores


Importante no desenvolvimento dos sistemas multiprocessados é
- a forma de comunicação entre as CPUs
- e o grau de compartilhamento da memória e dos
dispositivos de E/S.

Em função destes fatores, podemos classificar os sistemas


multiprocessados:
Tipos de sistemas operacionais

Sistemas com Múltiplos Processadores

Fortemente Acoplados

existe apenas uma memória a ser compartilhada pelos


processadores do conjunto
- A taxa de transferência entre processadores e memória é muito
maior
a memória principal e os dispositivos de E/S são
gerenciados por um único sistema operacional

Sistema é Simétrico
Quando todos os processadores na arquitetura são iguais

Sistema é Assimétrico
quando os processadores são diferentes
Tipos de sistemas operacionais

Sistemas com Múltiplos Processadores

Fracamente Acoplados.

os processadores estão em arquiteturas diferentes,


somente interligados por cabos de interconexão,

cada CPU constitui uma máquina independente,


com memória própria,
dispositivos de E/S
e sistemas operacionais independentes.
Tipos de sistemas operacionais

Sistemas com Múltiplos Processadores

Fracamente Acoplados.

Sistemas de Rede
- existem dois ou mais sistemas independentes (hosts),
interligados por linhas telefônicas,
que oferecem algum tipo de serviço aos demais,
permitindo que um host compartilhe seus
recursos,
com os outros hosts da rede.

como impressora e diretórios,


Tipos de sistemas operacionais

Sistemas com Múltiplos Processadores

Fracamente Acoplados.

Sistemas Distribuídos
o sistema operacional esconde os detalhes dos hosts individuais
e passa a tratá-los como um conjunto único,
como se fosse um sistema só, fortemente acoplado.

Permitem, por exemplo, que uma aplicação seja dividida em partes


e que cada parte seja executada por hosts
diferentes na rede.

Para os usuários e suas aplicações


é como se não existisse a rede,
mas um único sistema centralizado.
Tipos de sistemas operacionais
Multi-usuário :

i) deve suportar a identificação do “dono” de cada recurso dentro do


sistema
(arquivos, processos, áreas de memória, conexões de rede)

ii) impor regras de controle de acesso


para impedir o uso desses recursos por usuários não
autorizados.

Essa funcionalidade é fundamental para a segurança dos sistemas


operacionais de rede e distribuídos.

Grande parte dos sistemas atuais são multi-usuários.


Tipos de sistemas operacionais
Desktop : sistema operacional “de mesa”

É voltado ao atendimento do usuário doméstico e corporativo

Para a realização de atividades corriqueiras, como


edição de textos e gráficos,
navegação na Internet
e reprodução de mídias simples.

Sua principais características são:


a interface gráfica,
o suporte à interatividade
e a operação em rede.

Exemplos de sistemas desktop são:


Windows,
MacOS
e Linux.
Tipos de sistemas operacionais
Servidor : um sistema operacional servidor deve:

Permitir a gestão eficiente de grandes quantidades de recursos


(disco, memória, processadores),

Impondo prioridades e limites


sobre o uso dos recursos pelos
usuários
e seus aplicativos.

Normalmente um sistema operacional servidor também tem a rede e


multi-usuários
Tipos de sistemas operacionais
Embutido : um sistema operacional é dito embutido (embedded)
quando : Construído para operar sobre um hardware com
poucos recursos:
de processamento,
armazenamento
e energia.
Aplicações típicas desse tipo de sistema aparecem em :
telefones celulares,
controladores industriais e automotivos,
equipamentos eletrônicos de uso doméstico (leitores de
DVD, TVs, fornos-micro-ondas, centrais de alarme, etc.).
Muitas vezes esse tipo de sistema operacional se apresenta na
forma de uma biblioteca a ser ligada ao programa da aplicação (que
é fixa).

Exemplos : μC/OS, Xylinx (FPGA, PLD),


LynxOS (LynuxWorks (RTOS)
VxWorks (SO de tempo real similar ao Unix).