Você está na página 1de 33
Licenciatura Licenciatura em em Computação Computação Introdução aos Sistemas Operacionais Pontifícia
Licenciatura Licenciatura em em Computação Computação Introdução aos Sistemas Operacionais Pontifícia
Licenciatura Licenciatura em em Computação Computação Introdução aos Sistemas Operacionais Pontifícia
Licenciatura Licenciatura em em Computação Computação Introdução aos Sistemas Operacionais Pontifícia
Licenciatura Licenciatura em em Computação Computação Introdução aos Sistemas Operacionais Pontifícia

LicenciaturaLicenciatura emem ComputaçãoComputação

Introdução aos Sistemas Operacionais

Pontifícia Universidade Católica

PUC - Minas

Poços de Caldas

Prof. D.Sc. Eduardo Barrére eduardo.barrere@ice.ufjf.br www.barrere.ufjf.br

EADDCC006

EADDCC006

#1

Introdução Introdução aos aos Sistemas Sistemas Operacionais Operacionais Unidade 2 Tipos de Sistemas Operacionais
Introdução Introdução aos aos Sistemas Sistemas Operacionais Operacionais Unidade 2 Tipos de Sistemas Operacionais
Introdução Introdução aos aos Sistemas Sistemas Operacionais Operacionais Unidade 2 Tipos de Sistemas Operacionais
Introdução Introdução aos aos Sistemas Sistemas Operacionais Operacionais Unidade 2 Tipos de Sistemas Operacionais
Introdução Introdução aos aos Sistemas Sistemas Operacionais Operacionais Unidade 2 Tipos de Sistemas Operacionais

IntroduçãoIntrodução aosaos SistemasSistemas OperacionaisOperacionais

Unidade 2 Tipos de Sistemas Operacionais

Pontifícia Universidade Católica

PUC - Minas

Poços de Caldas

EADDCC006

#2

EADDCC006 – Introdução aos Sistemas Operacionais
EADDCC006 – Introdução
aos
Sistemas
Operacionais

ORIENTAÇÕES DE ESTUDO

Prezado(a) Aluno(a), Nesta unidade iremos aprender que existem diferentes tipos de sistemas operacionais para diferentes fins, ou em outras palavras, não existe o SO “perfeito”, mas sim os mais adequados para determinado tipo de equipamento ou uso.

Nesta unidade você deve cumprir as seguintes atividades:

- TEXTO DE ESTUDO: Este documento apresenta os conceitos e informações pertinentes à Unidade 2 – Tipos de Sistemas Operacionais.

- REFERÊNCIAS BIBLIOGRÁFICAS: Após a leitura do texto a seguir, realize um estudo mais detalhado do conteúdo nas referências citadas na Unidade 1. É importante destacar que esses conteúdos também podem ser obtidos em outros livros e que você deve se sentir a vontade para buscar a literatura que mais lhe agrade, desde que ela aborde os mesmos tópicos da unidade em questão.

- ATIVIDADES AVALIATIVAS:

Atividade 6: Caracterizar os sistemas operacionais de mercado conforme a classificação apresentada em sala de aula. Tarefa em grupo de até 3 alunos. Atividade 4: Elaboração do Glossário (a ser elaborado durante toda a disciplina).

- FICHA DE ESTUDO: Montar uma ficha de estudo com os principais conceitos apresentados na unidade, de forma a facilitar o seu estudo para a prova.

Lembre-se da importância de estabelecer o seu próprio cronograma de estudos dentre as atividades passadas pelo professor, pois o conteúdo é extenso e não é possível aprendê-lo todo na véspera da prova.

Bom estudo!

EADDCC006

#3

Tipos de Sistemas Operacionais
Tipos de Sistemas
Operacionais

A evolução dos sistemas operacionais está, grande parte, relacionada ao desenvolvimento de equipamentos cada vez mais velozes, compactos e baratos, e à necessidade de aproveitamento e controle desses recursos.Tipos de Sistemas Operacionais Hardware muito além do software?!? EADDCC006 #4

Hardware muito além do software?!?cada vez mais velozes, compactos e baratos, e à necessidade de aproveitamento e controle desses recursos.

EADDCC006

#4

Tipos de Sistemas Operacionais
Tipos de Sistemas
Operacionais

O surgimento de novos computadores (celulares, tablets, etc) leva ao surgimento de novos SOs apropriados para esses equipamentos.Tipos de Sistemas Operacionais Mas recursos surgidos via software levaram a criação de hardwares específicos. O

Mas recursos surgidos via software levaram a criação de hardwares específicos. O uso intenso de aplicativos gráficos levou ao desenvolvimento de novas placas gráficas e o uso de memória virtual (no seus primórdios) levou ao desenvolvimento de hardwares específicos para o seu controle.computadores (celulares, tablets, etc) leva ao surgimento de novos SOs apropriados para esses equipamentos. EADDCC006 #5

EADDCC006

#5

Organização Organização do do SO SO EADDCC006 #6

OrganizaçãoOrganização dodo SOSO

EADDCC006

#6

Organização Estrutural do SO
Organização
Estrutural
do SO

Um SO é organizado de acordo com a forma como suas

partes interagem. Os sistemas podem ser:

Monolíticos: aglomerado de rotinas que interagem

livremente;

Camadas: as funções seguem várias camadas;

Máquinas Virtuais: coexistência de vários SO’s;

Cliente-Servidor: mais uma abordagem do que uma filosofia de projeto. Divisão do kernel (núcleo do SO) em microkernel’s.

Cloud Computing: O SO é executado “na nuvem” e utilizamos seus recursos via Internet.

EADDCC006

#7

Sistemas Monolíticos
Sistemas Monolíticos

Formado por um conjunto de rotinas que podem interagir livremente uma com as outras.

comandos

Modo usuário Modo kernel
Modo usuário
Modo kernel
System Calls
System Calls

HardwareHardware

EADDCC006

#8

Sistemas em Camadas
Sistemas em
Camadas

Divide o sistema em camadas sobrepostas, visando a padronização e manutenção do sistema.

visando a padronização e manutenção do sistema. Modo Usuário: programas; Modo Supervisor: Shell; Modo

Modo Usuário: programas;

Modo Supervisor: Shell;

Modo Executivo: gerência de serviços (usuário root: administrador do sistema);

Modo Kernel: Entrada e Saída, Memória, Processos.

EADDCC006

#9

Sistemas de Máquinas Virtuais
Sistemas
de
Máquinas
Virtuais

Iremos estudar as Máquinas Virtuais em uma Unidade futura. De forma simplificada, uma MV é o nome dado a uma máquina, implementada através de software, que executa programas como um computador real [Wikipédia]. Através de uma MV podemos instalar e executar outros SOs “dentro dela”.

computador real [Wikipédia]. Através de uma MV podemos instalar e executar outros SOs “dentro dela”. EADDCC006
computador real [Wikipédia]. Através de uma MV podemos instalar e executar outros SOs “dentro dela”. EADDCC006
computador real [Wikipédia]. Através de uma MV podemos instalar e executar outros SOs “dentro dela”. EADDCC006

EADDCC006

#10

Sistemas Cliente-Servidor
Sistemas Cliente-Servidor

Parte do princípio de um kernel mais compacto (microkernel), dividindo as tarefas entre vários computadores da rede.

Cliente
Cliente
Servidor Arquivo
Servidor
Arquivo
Servidor Impressão
Servidor
Impressão
Modo usuário Modo kernel
Modo
usuário
Modo
kernel

Kernel

rede. Cliente Servidor Arquivo Servidor Impressão Modo usuário Modo kernel Kernel Request() Hardware EADDCC006 #11
rede. Cliente Servidor Arquivo Servidor Impressão Modo usuário Modo kernel Kernel Request() Hardware EADDCC006 #11

Request()

Hardware
Hardware

EADDCC006

#11

Sistema Cloud Computing
Sistema Cloud Computing

Também conhecido como Computação em Nuvens, utiliza a memória e as capacidades de armazenamento e cálculo de computadores e servidores compartilhados e interligados por meio da Internet (youOS, eyeOS, etc.).

e interligados por meio da Internet (youOS, eyeOS, etc.).

http://cloudtimes.org/the-cloud-computing-revelations-of-2010/

EADDCC006

#12

Tipos Tipos de de SO SO EADDCC006 #13

TiposTipos dede SOSO

EADDCC006

#13

Sistemas Monoprogramáveis
Sistemas Monoprogramáveis
Sistemas Monoprogramáveis Tipos de sistemas operacionais Sistemas Operacionais Sistemas Multiprogramáveis/

Tipos de sistemas operacionais

Sistemas Operacionais

Sistemas

Multiprogramáveis/

Multitarefa

Sistemas

Monoprogramáveis/

Monotarefa

Sistemas com Múltiplos Processadores

EADDCC006

#14

Sistemas Monoprogramáveis
Sistemas
Monoprogramáveis
Sistemas Monoprogramáveis Também chamados de monotarefa, se caracterizam por permitir que o processador, a memória e

Também chamados de monotarefa, se caracterizam por permitir que o processador, a memória e os periféricos fiquem dedicados a um único usuário.

CPU CPU I/O I/O Memória Memória
CPU
CPU
I/O
I/O
Memória
Memória
fiquem dedicados a um único usuário. CPU CPU I/O I/O Memória Memória UsuárioUsuário Usuário EADDCC006 #15
UsuárioUsuário Usuário
UsuárioUsuário Usuário

EADDCC006

#15

Sistemas Multiprocessados
Sistemas Multiprocessados
Sistemas Multiprocessados Sistemas fortemente acoplados UCP Memória Principal UCP Dispositivos Dispositivos de E/S de

Sistemas fortemente acoplados

UCP
UCP
Sistemas Multiprocessados Sistemas fortemente acoplados UCP Memória Principal UCP Dispositivos Dispositivos de E/S de
Memória Principal
Memória
Principal
Sistemas fortemente acoplados UCP Memória Principal UCP Dispositivos Dispositivos de E/S de E/S Toda a
UCP
UCP
Dispositivos Dispositivos de E/S de E/S
Dispositivos
Dispositivos
de E/S
de E/S

Toda a comunicação entre os processadores do computador é realizada através da memória principal do computador.

EADDCC006

#16

Sistemas Multiprocessados
Sistemas Multiprocessados
Sistemas Multiprocessados Sistemas fracamente acoplados UCP link de comunicação UCP Memória Dispositivos Memória

Sistemas fracamente acoplados

UCP
UCP

link de comunicação

Sistemas fracamente acoplados UCP link de comunicação UCP Memória Dispositivos Memória Dispositivos
Sistemas fracamente acoplados UCP link de comunicação UCP Memória Dispositivos Memória Dispositivos
UCP
UCP
Memória Dispositivos Memória Dispositivos Principal de E/S Principal de E/S
Memória
Dispositivos
Memória
Dispositivos
Principal
de E/S
Principal
de E/S

A comunicação entre os processadores é realizadas através de canais (barramentos) de alta velocidade. Este tipo de sistema é comum em servidores escalonáveis (com facilidade de inserir novas placas de processadores).

EADDCC006

#17

Sistemas Multiprogramáveis
Sistemas Multiprogramáveis

Vários usuários compartilham os mesmos recursos, aumentando a produtividade dos usuários e reduzindo os custos de utilização do sistema.Sistemas Multiprogramáveis Os sistemas multiprogramáveis ou multitarefa podem ser classificados pela forma com que suas

Os sistemas multiprogramáveis ou multitarefa podem ser classificados pela forma com que suas aplicações são gerenciadas, podendo ser divididos em sistemas batch, de tempo compartilhado ou de tempo real.usuários e reduzindo os custos de utilização do sistema. UsuárioUsuário Usuário UsuárioUsuário Usuário CPU

UsuárioUsuário Usuário UsuárioUsuário Usuário CPU UsuárioUsuário Usuário I/O Memória UsuárioUsuário
UsuárioUsuário Usuário
UsuárioUsuário Usuário
CPU
UsuárioUsuário Usuário
I/O
Memória
UsuárioUsuário Usuário
UsuárioUsuário Usuário CPU UsuárioUsuário Usuário I/O Memória UsuárioUsuário Usuário EADDCC006 #18

EADDCC006

#18

Sistemas de Tempo Compartilhado
Sistemas de Tempo Compartilhado

Os sistemas de tempo compartilhado (time-sharing) permitem a interação dos usuários com o sistema (interação on-line). Esse tipo de sistema se popularizou na década de 60, permitindo que vários usuários compartilhassem o poder de processamento dos computadores de grande porte da época;

Compartilha o processador, a memória e os periféricos;

Cria um ambiente de trabalho dedicado a cada usuário;

O acesso ao computador era feito através de terminais de acesso;

Atualmente é comum compartilharmos o poder de processamento entre diversas aplicações do mesmo usuário, num computador pessoal.

EADDCC006

#19

Sistemas Batch
Sistemas Batch

Esse tipo de sistema era muito comum nos primeiros computadores.

(a)

(b)

(c)

job n job 2 job 1
job n
job 2
job 1

cartões perfurados

Processamento

(c) job n job 2 job 1 cartões perfurados Processamento fita de entrada Processamento fita de

fita de entrada

2 job 1 cartões perfurados Processamento fita de entrada Processamento fita de saída Processamento fita de

Processamento2 job 1 cartões perfurados Processamento fita de entrada fita de saída Processamento fita de entrada

perfurados Processamento fita de entrada Processamento fita de saída Processamento fita de entrada fita de saída

fita de saída

Processamento fita de entrada Processamento fita de saída Processamento fita de entrada fita de saída relatório

ProcessamentoProcessamento fita de entrada Processamento fita de saída fita de entrada fita de saída relatório n

fita de entrada Processamento fita de saída Processamento fita de entrada fita de saída relatório n

fita de entrada

Processamento fita de saída Processamento fita de entrada fita de saída relatório n relatório 2 relatório

fita de saída

relatório n
relatório n
relatório 2 relatório 1
relatório 2
relatório 1

relatórios

EADDCC006

#20

Sistemas de Tempo Real
Sistemas
de
Tempo Real

Os sistemas de tempo real (real- time) são bem semelhantes aos sistemas de tempo compartilhado. A maior diferença é o tempo de resposta exigido na execução das tarefas.

Não existe a idéia de fatia de tempo, um programa executa o tempo que for necessário, ou até que apareça outro prioritário em função de sua importância.

apareça outro prioritário em função de sua importância. Sistemas para operação de radares de aeroportos, controle

Sistemas para operação de radares de aeroportos, controle de usinas, entre outras ações em indústrias são de tempo real.

EADDCC006

#21

Sistemas Sistemas Multiprogramáveis Multiprogramáveis EADDCC006 #22

SistemasSistemas MultiprogramáveisMultiprogramáveis

EADDCC006

#22

Sistemas Multiprogramáveis
Sistemas
Multiprogramáveis
Sistemas Multiprogramáveis Um dos problemas existente nos sistemas monoprogramáveis é a baixa utilização de

Um dos problemas existente nos sistemas monoprogramáveis é a baixa utilização de recursos do sistema, como processador, memória e periféricos.

E/S

CPU

sistema, como processador, memória e periféricos. E/S CPU tempo Enquanto o programa aguarda o final da

tempo

Enquanto o programa aguarda o final da impressão de algo no monitor, um relatório na impressora ou o usuário fornecer algum dado via teclado, o processador fica sem nada para processar, ou seja, fica parado

EADDCC006

#23

Sist. Multiprog.: Concorrência
Sist. Multiprog.:
Concorrência

Outro aspecto a ser considerado é a sub-utilização da memória. Um programa que não ocupe totalmente a memória principal.Sist. Multiprog.: Concorrência Quando um programa solicita uma operação de I/O, outros programas poderão estar

Quando um programa solicita uma operação de I/O, outros programas poderão estar disponíveis para utilizar o processador.Um programa que não ocupe totalmente a memória principal. E/S CPU tempo Já que o processador

E/S CPU tempo
E/S
CPU
tempo

Já que o processador não está executando o programa, ele pode executar outro programa durante esse tempo “ocioso”.

EADDCC006

#24

Sist. Multiprog.: Interrupções
Sist. Multiprog.:
Interrupções

Na execução de um programa, alguns eventos podem ocorrer durante o processamento (interrupções ) , obrigando a intervenção do SO e o desvio no fluxo de execução. interrupções) , obrigando a intervenção do SO e o desvio no fluxo de execução. São exemplos de interrupção: aviso de falta de papel oriundo de uma impressora, erro de leitura de disco, final da gravação de um DVD;

Eventos responsáveis pelas interrupções podem ser originados:erro de leitura de disco, final da gravação de um DVD; • Na execução de um

Na execução de um programa;

Pelo SO;

Por dispositivo de hardware.

EADDCC006

#25

Sist. Multiprog.: Interrupções
Sist. Multiprog.:
Interrupções

Interrupções de software ou traps

gerada por um evento síncrono (o próprio processo provoca); Exemplo: “um programa solicita que algo seja apresentado no monitor”

Interrupções de hardware

É gerada por eventos assíncronos (não é o próprio processo que gera. Pode ser o SO ou algum dispositivo de hardware); Exemplo: um periférico avisa à CPU que está pronto para transmitir algum dado.

Interrupções por erro (exceções):

está pronto para transmitir algum dado. Interrupções por erro (exceções): Exemplo: divisão por zero EADDCC006 #26

Exemplo: divisão por zero

EADDCC006

#26

Sistemas Multip.: Buffering
Sistemas
Multip.:
Buffering
CPUCPU
CPUCPU

Buffer

Gravação

Sistemas Multip.: Buffering CPUCPU Buffer Gravação Leitura Gravação Leitura Dados da Control. I/O Controle de Peri-

Leitura

Gravação

Buffering CPUCPU Buffer Gravação Leitura Gravação Leitura Dados da Control. I/O Controle de Peri- féricos
Leitura
Leitura

Dados da Control. I/O

Gravação Leitura Gravação Leitura Dados da Control. I/O Controle de Peri- féricos Permite que a CPU
Gravação Leitura Gravação Leitura Dados da Control. I/O Controle de Peri- féricos Permite que a CPU

Controle de Peri- féricos

Leitura Dados da Control. I/O Controle de Peri- féricos Permite que a CPU continue realizando outras
Leitura Dados da Control. I/O Controle de Peri- féricos Permite que a CPU continue realizando outras

Permite que a CPU continue realizando outras operações enquanto operações de I/O são realizadas.

Buffer é um pequeno espaço de memória utilizado principalmente para sincronizar a comunicação entre dos componentes de velocidades distintas (CPU e Scanner, rede, som, etc.)

EADDCC006

#27

Sistemas Mult. : Spooling
Sistemas
Mult.
: Spooling
Sistemas Mult. : Spooling Sistema Operacional Arquivo de Spool O software que gerencia o Spool no
Sistema Operacional
Sistema
Operacional

Arquivo de Spool

Mult. : Spooling Sistema Operacional Arquivo de Spool O software que gerencia o Spool no SO
Mult. : Spooling Sistema Operacional Arquivo de Spool O software que gerencia o Spool no SO
Mult. : Spooling Sistema Operacional Arquivo de Spool O software que gerencia o Spool no SO
Mult. : Spooling Sistema Operacional Arquivo de Spool O software que gerencia o Spool no SO

O software que gerencia o Spool no SO é chamado de Gerenciador de Impressão

O Sistema Operacional mantém os dados separadamente (cada usuário ou software que solicitou a impressão).

Se não existisse o “spooling” o que aconteceria ?

EADDCC006

#28

Reentrância
Reentrância
Reentrância Reentrância: reutilização de código. código reentrante área de dados do usuário A área de

Reentrância: reutilização de código.

código reentrante área de dados do usuário A área de dados do usuário B área
código
reentrante
área
de
dados
do
usuário
A
área
de
dados
do
usuário
B
área
de
dados
do
usuário
C
área
de
dados
do
usuário
D
dados do usuário C área de dados do usuário D usuário A usuário B usuário C

usuário A

usuário Busuário C área de dados do usuário D usuário A usuário C usuário D Capacidade de

usuário CC área de dados do usuário D usuário A usuário B usuário D Capacidade de um

usuário Dde dados do usuário D usuário A usuário B usuário C Capacidade de um código de

do usuário D usuário A usuário B usuário C usuário D Capacidade de um código de
do usuário D usuário A usuário B usuário C usuário D Capacidade de um código de

Capacidade de um código de programa ser compartilhado por diversos usuários, ou mesmo outros processos, exigindo apenas uma cópia do código do programa na memória.

Memória Principal

EADDCC006

#29

Reentrância
Reentrância

Você não tem ideia sobre o uso de Reentrância?Reentrância Observe que no seu navegador, você pode executar o navegador somente uma vez e abrir

Observe que no seu navegador, você pode executar o navegador somente uma vez e abrir várias abas para acessar diversas páginas diferentes.Você não tem ideia sobre o uso de Reentrância? Quando você pede para abrir o Word

Quando você pede para abrir o Word (diretamente no ícone do programa ou indiretamente ao clicar duas vezes num arquivo .doc), ele demora um pouco para abrir, mas depois que está aberto, ao solicitar a abertura de outro arquivo .doc, você verifica que o Word “abre” muito mais rápido. Pq? O núcleo do Word já se encontra em execução e basta abrir a janela de interação com o documento solicitado!pode executar o navegador somente uma vez e abrir várias abas para acessar diversas páginas diferentes.

EADDCC006

#30

Sist. Mult.: Proteção do Sistema
Sist. Mult.: Proteção
do
Sistema

Alguns cuidados devem ser tomados pelo SO para proteger o sistema:

um programa não deve acessar a área de memória pertencente a outro programa;

o compartilhamento de dispositivos de I/O

deve ser controlado de forma centralizada pelo SO. O monitor pode ser compartilhado por dois programas, já a impressora não!;

toda vez que o usuário desejar utilizar um

recurso, ele terá que requerer ao SO através system calls;

EADDCC006

#31

Sist. Mult.:Proteção do Sistema
Sist. Mult.:Proteção
do Sistema

O mecanismo de proteção é chamado de estado de execução. É uma característica, associada ao programa, que determina se ele pode ou não executar certas instruções ou rotinas. É divido em 2 estados:

Usuário: o programa só pode executar instruções que não afetem diretamente outros programas (Ex.: compilar, criar diretórios, etc.)

Supervisor: qualquer instrução pode ser executada e consequentemente, todas as rotinas do sistema (root).

EADDCC006

#32

Chamadas do Sistema (System Calls)
Chamadas
do Sistema
(System Calls)

Para proteger o núcleo do sistema e como conseqüência os seus serviços, é implementado um mecanismo chamado de System Calls, ou chamadas do sistema.

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

System Call

Kernel
Kernel

Hardware

As System Calls podem ser divididas em grupos:

Gerência de Processos (ex.: Kill <pid>); Gerência de Memória (ex.: msgrcv, processo busca msg na memória); Gerência de Entrada e Saída (ex.: filecopy);

de Memória (ex.: msgrcv, processo busca msg na memória); Gerência de Entrada e Saída (ex.: filecopy);
de Memória (ex.: msgrcv, processo busca msg na memória); Gerência de Entrada e Saída (ex.: filecopy);
de Memória (ex.: msgrcv, processo busca msg na memória); Gerência de Entrada e Saída (ex.: filecopy);

EADDCC006

#33