Sie sind auf Seite 1von 43

Sistemas de Informao

Sistemas Operacionais
Prof. Viotti
Adaptado de Prof. Luciano Gaspar

4. Semestre

O que um Sistema Operacional ?


Camada de software entre o hardware e as aplicaes dos usurios

Sistema
Bancrio

Office

Browser
I.Explorer

Compiladores

Editores

Interpretador
de comandos

Sistema Operacional

Programas de aplicao

Programas
de Sistema

Linguagem de mquina
Microarquitetura
Dispositivos fsicos

Hardware

Funes do Sistema Operacional

A partir da mquina real (hardware), criar


uma mquina estendida (abstrata).

Gerenciar os recursos de hardware


disponveis s aplicaes.

O SO como mquina abstrata

Ocultar a complexidade do hardware.


Oferecer interfaces padronizadas de acesso
ao hardware.
Permitir
uma
viso
homognea
de
dispositivos distintos.
Clicar em um arquivo

aplicao
S.O.

Assign(file, D:\README.TXT);
open(file);
read(file, ch);

close(file);
Move head to sector 123 in FAT
read 256 bytes to mem 36234H
move head to sector 4684753
read 1024 bytes to mem 578567
...

O SO como Gerenciador de Recursos

Recursos da mquina
processadores
espao em memria
arquivos
conexes de rede
dispositivos externos
Controle

de acesso
equilibrar uso
evitar conflitos

O SO como Gerenciador de Recursos


source app

source app

source app

sdgf jhgsdfj dsjhf


khj khj
HKjhkjghj hg
jhgj jgh jhg jhg jhg jhg kjhg
jhgj hg jhg
kjhkjhgjhg jhg jhg jhg jh
kjhjkhgjhgjh
kgjhgjhgjhgj

aplicao

aplicao

aplicao

Sistema Operacional

Servios de Sistemas Operacionais


Cada S.O. oferece servios e programas especficos,
porm apresentam funes em comum.

Execuo de programas: capacidade de carregar,


executar e encerar um programa.

Operaes de I/O: deve fornecer meios para controlar


arquivos ou dispositivos de I/O.

Manipulao do sistema de arquivos: ler, gravar, criar e


excluir arquivos.

Comunicao: comunicao de processos.

Deteco de erros: notar falhas de CPU, memria ou


dispositivos de I/O e tomar medidas adequadas.

Servios de Sistemas Operacionais

Alocao de recursos: gerenciar recursos de memria, CPU


ou dispositivos I/O.

Contabilizao: manter um registro dos usurios que utilizam


os recursos do computador referente a quantidade e que tipo de
recursos.

Proteo: A proteo visa garantir que todo acesso aos


recursos do sistema seja controlado, evitando conflitos e
integridade dos dados.

Entendendo o Sistema Operacional


Usurio controlando o Hardware

Usurio
Hardware
Hardware

Entendendo o Sistema Operacional


Programa controlando o Hardware

Software

Usurio

Hardware
Hardware

Entendendo o Sistema Operacional

Interpretador de Comando (Shell)


ou Interface Grfica

Usurio

Sistema
Operacional

Hardware
Hardware

Entendendo o Sistema Operacional


Programas fazendo solicitao ao
Sistema Operacional, que as
repassa ao hardware.

Sistema
Operacional

Usurio

Software

Hardware
Hardware

Entendendo o Sistema Operacional


Interpretador de Comando
ou Interface Grfica

Sistema
Operacional

Usurio

Software

Alguns programas podem


acessar diretamente o
Hardware

Hardware
Hardware

Capacidade de execuo de tarefas


TIPO

Monotarefa

Multitarefa
ou
Multiprogramvel

DEFINIO

O sistema operacional
tem capacidade de
executar apenas um
programa ou tarefa de
cada vez.
Exemplo: CP/M, MSDOS
Sistemas Operacionais
que tem a capacidade
de executar mais de
uma tarefa ou
programa
simultaneamente:
Exemplo: Unix,
Windows, Linux,
OS/400.

SUBDIVISO

CARACTERSTICAS

No tem

Cooperativa

O S.O. define uma fatia


de tempo (time-slice)
para cada programa.
Ex.: Windows at 3.1

Preemptiva

O S.O define
prioridades conforme
a necessidade
momentnea de cada
programa.

Sistema Operacional Multitarefa


Interpretador de Comando
ou Interface Grfica

S. O.

Usurios

Coop. ou Preemp.

Software

Software

Hardware
Hardware

S. O. Multitarefa / Multiprogramvel
Os sistemas multiprogramados podem ser classificados de acordo
com a forma que interagem com os usurios, podendo ser
divididos em sistemas batch, de tempo compartilhado e de
tempo real.

Sistemas Batch: Os sistemas batch (lote) caracterizam-se


por terem seus programas armazenados em disco ou fita, onde
esperam para ser executados seqencialmente. Quando um
programa iniciado ele tem a posse total do sistema at que sua
execuo termine. Quando um programa termina, um outro
programa (tambm chamado Job) colocado em execuo
imediatamente.
Os programas que so executados em batch no precisam de
interao com o usurio. Eles lem e gravam seus dados de
discos ou fitas.

S. O. Multitarefa / Multiprogramvel
Sistemas de Tempo Compartilhado:
Os sistemas de tempo compartilhado (timesharing) permitem a
interao dos usurios com o sistema, basicamente atravs de
terminais de vdeo e teclado (interao online). Dessa forma, o
usurio pode interagir em cada fase do desenvolvimento de suas
aplicaes e , se preciso, modific-las imediatamente.
Para cada usurio, o sistema operacional aloca uma fatia de
tempo do processador. Nesses sistemas, no s o processador
compartilhado mas tambm a memria e os perifricos. O sistema
cria para cada usurio um ambiente de trabalho prprio, dando a
impresso de que todo o sistema est dedicado, exclusivamente,
a ele.

S. O. Multitarefa / Multiprogramvel
Sistemas de Tempo Real (real time): so bem
semelhantes em implementao aos sistemas de tempo
compartilhado. A maior diferena o tempo de resposta exigido
na execuo das tarefas. Enquanto em sistemas de tempo
compartilhado o tempo de resposta pode variar sem comprometer
as aplicaes em execuo, nos sistemas de tempo real os
tempos de resposta devem estar dentro de limites rgidos, que
devem ser obedecidos, caso contrrio, podero ocorrer
problemas irreparveis.
Nos sistemas de tempo real no existe a idia de fatia de tempo,
utilizada pelos sistemas time-sharing. Um programa executa o
tempo que for necessrio, ou at que aparea outro prioritrio em
funo de sua importncia no sistema. Esta importncia ou
prioridade de execuo controlada pela prpria aplicao e no
pelo sistema operacional.
Esses sistemas so normalmente usados em controle de
processos, como no monitoramento de refinarias de petrleo,
controle de trfego areo, usinas nucleares, etc.

O S. O. quanto aos usurios

Monousurio
Pode fornecer
programas/servios para vrios
usurios, porm este programas
sero executados na mquina
solicitante (cliente).

Multiusurio
O Sistema atende diversos
usurios com a possibilidade de
executar os programas no
prprio servidor.

Estrutura de um sistema operacional


Sistemas Operacionais so estudados dividindo-se suas
principais
funcionalidades.
Tipicamente
divide-se
a
funcionalidade de um sistema operacional em:

Gerncia de processos
Gerncia de memria: responsvel pelo controle e
alocao de memria aos processos ativos.
Sistema de arquivo: responsvel pelo acesso e integridade
dos dados residentes em memria secundria (por exemplo
disco, fita, etc).
Controle de I/O (controle de entrada / sada): responsvel
pelo controle e execuo de operaes de Entrada/Sada,
bem como da otimizao do uso dos perifricos.

Conceito de Processo
Um processo basicamente um programa em execuo
acompanhado dos valores atuais do contador de programas, dos
registradores e de variveis.

cada processo tem sua prpria CPU virtual.

A CPU executa apenas um processo por vez. Trocando, a todo


momento, de um processo para outro. (pseudo-paralelismo).

ESTADOS DE PROCESSO
- Novo: o processo est sendo criado;
-Em

execuo: as instrues esto sendo executadas

Em espera: o processo est esperando a ocorrncia de algum


evento. (ex.: I/O)
-

-Pronto:

temporariamente parada para dar lugar a outro processo

-Encerrado:

o processo terminou sua execuo

Caractersticas da Estrutura de um
Processo

nom e
P ID
o w n e r (U ID )

r e g i s tr a d o r e s
g e r a is

p rio r id a d e d e
e xe cu o
d a ta / h o r a
d e cr ia o

r e g i s tr a d o r P C

C o n te x to d e
S o f tw a r e

C o n te x t o d e
H a rd w a re

r e g i s tr a d o r S P

te m p o d e
p ro ce ssa d o r
q u o ta s
Pro g ra m a

p r iv il g io s
E sp a o d e
E n d e r e a m e n to

e n d e r e o s d e m e m r ia
p r in c ip a l a lo ca d o s

r e g i s tr a d o r
d e s ta tu s

Mudana de Estado de um Processo


carga

novo

programa

encerrado
alocao
da CPU

aceito

pronto

fim de
execuo

rodando
fim do quantum
Espera por I/O

Concluso de I/O

em espera
Visualizar: Lista de processos do Windows 2000
Desempenho

Programa X Processo

Programa:

noo esttica
conjunto de instrues
no possui um estado interno

Processo:

noo dinmica
programa em execuo
possui um estado interno

Bloco de Controle de Processo (PCB)


Cada Processo representado no S.O. por um PCB que contm
muitas informaes associadas a um processo, incluindo:
-

Estado do processo;

Contador de programa: indica o endereo da prxima instruo


a ser executada.
-

Registradores de CPU: varia em nmero e tipo. Basicamente


incluem: acumuladores, registradores, ponteiros de pilha, etc.
-

Informaes de escalonamento de CPU: informaes de


prioridade, ponteiros para fila de escalonamento entre outros
parmetros.
-

Informaes de gerncia de memria: incluem registradores,


tabelas de pginas e segmentos.
-

Informaes de contabilizao: qtde de CPU e o tempo real


usados e nmeros de jobs, etc.
-

Bloco de Controle de Processo (PCB)


- Informaes de status de I/O: incluem a lista de dispositivos de
I/O alocados para os processos.

Modelo PCB

Thread / Multithread
uma unidade bsica de utilizao de CPU; compreende um
ID de thread, um contador de programa, um conjunto de
registradores e uma pilha. Compartilha com outros threads
pertencentes ao mesmo processo sua seo de cdigo, seo de
dados e outros recursos do sistema operacional.
Um processo multithread contm vrios fluxos de controle
distintos no mesmo espao de endereamento.
Exemplo: um processador de textos pode ter um thread para ler as
entradas de dados do teclado e outra thread para efetuar a correo
ortogrfica do documento.

Observaes:
- os threads possuem estados(novo, executvel, Bloqueado e
Terminado.
- o sistema supervisor gerencia a tabela de threads

Thread / Multithread
Benefcios:

Capacidade de resposta: o multithread permite que


programas continuem executando mesmo se parte dele estiver
bloqueado ou executando uma operao demorada. Ex.:
navegador Web permite a interao do usurio enquanto uma
imagem carregada.

Compartilhamento de Recursos: os threads compartilham a


memria e os recursos dos processos aos quais pertencem.

Economia: Alocar memria e recursos para criao de


processos CARO, portanto criar e gerenciar processos mais
demorado que threads.

Utilizao de arquiteturas multiprocessador: cada thread


pode ser executado em paralelo em um processador diferente.

Escalonamento de CPU
O escalonamento de CPU consiste em selecionar um
processo em espera na fila de processos e alocar a CPU a
esse processo.
O processo selecionado de acordo com o algoritmo
de escalonamento implementado pelo sistema operacional
em uso.

Relembrando:
- manter sempre o Processador em execuo maximiza seu
uso.
-vrios

processos so mantidos na memria ao mesmo


tempo. Quando um processo precisa esperar, outro processo
passado para a CPU. ( e assim sucessivamente)

Escalonamento de CPU

No Preemptivo
O algoritmo escolhe o processo
para executar e ento o deixa
executar at que seja bloqueado
(para I/O) ou voluntariamente
libere a CPU.
Ex.: Windows 3.x

Preemptivo

O algoritmo escolhe um
processo e o deixa em
execuo por um tempo mximo
fixado.
Ex.: Windows 95 ou superior e a
Apple a partir do MacOS8

Escalonamento de CPU
Quando Escalonar ?
1. Quando o processo passa de estado em execuo para
estado de espera (Ex.:um pedido de I/O)
2. Quando um processo passa do estado em execuo para
o estado de pronto (ex.:quando ocorre o trmino de seu
quantum).
3. Quando um processo termina.

Conceitos bsicos
Escalonador de CPU: sempre que a CPU estiver ociosa, o S.O.
dever escolher um processo para execuo da fila de processos
prontos. Esta seleo feita pelo Escalonador de CPU.

Timer: necessrio para o escalonamento preemptivo. Controla o


tempo que o processo pode ficar em execuo (n-1).

Dispatcher (executor) um mdulo que d controle da CPU ao


processo selecionado. O dispatcher chamado a cada troca de
processo.

Critrios de Escalonamento:
Critrios para se comparar algoritmos de escalonamento.

Utilizao de CPU: A CPU dever ficar o mais ocupada possvel;

Throughput: a quantidade de processos executados por


unidade de tempo (+ ou 10/segundo).

Tempo de retorno: o intervalo entre a submisso de um processo


at o seu tempo de concluso.

Tempo de espera: a soma dos perodos gastos esperando na


fila de processos prontos.

Tempo de resposta: o tempo que o processo leva para comear


a responder a um comando do usurio.

Algoritmos de Escalonamento
Lida com problema de decidir a quais processos na fila de processos
prontos a CPU dever ser alocada.

Escalonamento FCFS (First-come, first-served)


-

o mais simples

usado em sistemas batch


Processo

Durao de Surto

P1

24

P2

P3

Diagrama de Gantt

P1
0

P2
24

Tempo mdio de espera = (0 + 24 + 27) /3 = 17 ms

P3
27

30

Algoritmos de Escalonamento
Escalonamento Job mais curto primeiro (SJF)
-

usado em sistemas batch e pode ser preemptivo ou no


Processo

Durao de Surto

P1

P2

P3

P4

plo ivo
m
t
Exe emp
pre
o
n

Diagrama de Gantt

P4
0

P1
3

P3
9

P2
16

Tempo mdio de espera = (0 + 3 + 9 + 16) /4 = 7 ms


Obs.: se o tempo de 2 processos forem iguais ele usa o FCFS

24

Algoritmos de Escalonamento
Escalonamento Job mais curto primeiro (SJF)
Processo

Instante de Chegada

Durao de Surto

P1

P2

P3

P4

plo
m
o
Exe mptiv
e
pre

Diagrama de Gantt

P1
0

P2
1

P4
5

P1
10

P3
17

Tempo mdio de espera = ((10-1)+(1-1)+(17-2)+(5-3))/4 = 26/4 = 6,5

26

Algoritmos de Escalonamento
Escalonamento por prioridade (sistemas interativos)
Processo

Durao do Surto

Prioridade

P1

10

P2

P3

P4

P5

Obs.: quanto Menor o nmero maior a prioridade (0 a 7 ou 0 a 4095)


Diagrama de Gantt

P2
0

P5
1

P1
6

Tempo mdio de espera = 8,2 ms

P3
16

P4
18

19

Algoritmos de Escalonamento
Escalonamento Round-Robin (RR)
- projetado para Sistemas de tempo compartilhado
- Cada processo recebe uma pequena unidade de tempo de CPU
(quantum), usualmente 10-100 milissegundos. Depois de transcorrido
este tempo, o processo preemptado e adicionado ao fim da fila de
processos prontos.
-A

fila de processos prontos tratada como uma fila FIFO. Novos


processos so adicionados ao final da fila. O escalonador de CPU
seleciona o primeiro processo da fila, define um temporizador para
interromper depois de 1 quantum de tempo e submete o processo.

Algoritmos de Escalonamento
Escalonamento Round-Robin (RR) cont.
Processo

Durao de Surto

P1

24ms

P2

3ms

P3

3ms

Quantum = 4ms
Diagrama de Gantt

P1
0

P2
4

P3
7

P1
10

P1
14

P1
18

P1
22

Tempo mdio de espera = ((10-4) + 4 + 7) = 17/3 = 5,66ms

P1
26

30

Algoritmos de Escalonamento
Alocao com Mltiplas Filas
Fila de processos prontos particionada em filas separadas:
primeiro plano - foreground (interativo)
segundo plano - background (batch)
Cada fila tem seu prprio algoritmo de escalonamento,
interativo Alocao Circular (RR)
batch Primeiro a chegar, Primeiro a ser servido (FCFS)
Escalonamento deve ser realizado entre as filas.
Escalonamento de prioridade fixa; Ex.: a fila de processos interativos pode ter prioridade
absoluta sobre a fila de processos batch.
Fatia de tempo cada fila recebe certa quantia de tempo de CPU que poderia ser ento
alocada aos processos dessa fila;
Exemplo:
80% para processos interativos em RR
20% para processos batch em FCFS

Algoritmos de Escalonamento
Alocao com Mltiplas Filas com realimentao
Um processo pode se mover entre as vrias filas;
Escalonamento com mltiplas filas e transferncias entre as filas definido pelos seguintes
parmetros, a saber:
Nmero de filas
Algoritmos de escalonamento para cada fila
Mtodo usado para determinar quando transferir um processo para uma fila de
prioridade mais alta
Mtodo usado para determinar quando transferir um processo para uma fila de
prioridade mais baixa
Mtodo usado para determinar em qual fila um processo deve ser colocado,
quando precisar usar a CPU
EXEMPLO:
Trs filas:
Q0 quantum de 8 milissegundos
Q1 quantum 16 milissegundos
Q2 FCFS
Escalonamento
Um novo job entra na fila Q0 a qual utiliza FCFS.
Quando ele ganha a CPU, job recebe 8ms. Se ele
no finalizar em 8 ms, o job movido para a fila Q1.
Na fila Q1 o job de novo servido por FCFS e
recebe 16 ms adicionais. Se ele ainda no
completou, premptado e movido para a fila Q2.

Algoritmos de Escalonamento
Outros algoritmos de escalonamento:
- Escalonamento por loteria:
-Escalonamento

de tempo real;

e escalonadores de threads.

Thread / Multithread
Thread de Usurio
Thread

Processos

X Thread de Kernel
Thread

Processos

Espao do
Usurio

Espao do
ncleo

Ncleo

Sistema
Supervisor

Tabela de
threads

Tabela de
Processos

Ncleo

Tabela de
processos

Tabela de
threads

Das könnte Ihnen auch gefallen