Вы находитесь на странице: 1из 61

Sistemas Operacionais (SO)

UD I: Fundamentos Bsicos
Adaptado de:
FSO1ed : Fundamentos de Sistemas Operacionais, 1. ed. , Silberschatz,
Galvin, Gagne, LTC, 2013.
ASOM5ed: Arquitetura de Sistemas Operacionais, 5. ed, Francis Berenger;
Machado, Maia, Luiz Paulo, LTC. 2013.
SOMTB3ed: Sistemas Operacionais Modernos, TANENBAUM, A. S., 3a. ed.
Pearson, 2010.
SOD3ed: Sistemas operacionais, DEITEL, Harvey M.; DEITEL, Paul J.;
CHOFFNES, David R, Pearson, 3 ed, 2005.
SOJ7ed: Sistemas Operacionais com Java, SILBERSCHATZ, Abraham;
GALVIN, Peter B.; GAGNE., 7a. ed., Campus. 2008.
OECTB5ed: Organizao Estruturada de Computadores, 5. ed., A. S.
Tanenbaum
AOCS8ed: Arquitetura e Organizao de Computadores, 8. ed., W. Stallings.

SISTEMA COMPUTACIONAL (Fig 1.1 FSO1ed modificada)

DEFINIES DE SO - 1
uma camada de software que separa as aplicaes do
hardware e fornece servios que permitem que cada
aplicao seja executada com segurana e efetivamente.
um software que habilita as aplicaes a interagir com o
hardware de um computador. , primordialmente, um
gerenciador dos recursos de hardware (processadores,
memria, dispositivos (E/S e comunicao) e software
(aplicaes e outras abstraes) que diferentemente do
hardware, no so objetos fsicos. (Deitel)

DEFINIES DE SO - 2
um programa de controle do computador responsvel por alocar
recursos de hardware e escalonar tarefas. Alm disto, ele deve prover
uma interface com o usurio, ou seja, fornecer ao usurio um modo de
acessar os recursos do computador. (Sobell)

Um Sistema Operacional pode ser definido como um gerenciador dos


recursos que compem o computador (processador, memria, E/S,
arquivos, etc). Os problemas centrais que o Sistema Operacional deve
resolver so o compartilhamento ordenado, a proteo dos recursos a
serem usados pelas aplicaes do usurio e a interface entre este e a
mquina. (Stemmer)

DEFINIES DE SO - 3

um programa que atua como intermedirio entre o


usurio e hardware do computador, com o propsito de
propiciar um ambiente para o usurio executar programas
de forma conveniente e eficiente. (Silberschatz&Galvin)

FUNES DO SO
(VISO DO USURIO: TOP-DOWN)

INTERFACE COM O USURIO: oferece um ambiente


amigvel para o usurio interagir com o computador.
Funciona como uma MQUINA VIRTUAL(MV) ou
ESTENDIDA, fornecendo uma abstrao de alto nvel
dos recursos de hardware da mquina, livrando o
programador dos detalhes de funcionamento dos
mesmos.

FUNES DO SO
(VISO DO PROGRAMADOR DE SISTEMAS: BOTTON-UP)

GERENCIADOR DE RECURSOS : processadores, arquivos,


memrias, dispositivos de E/S, etc.
Estabelecer critrios de ALOCAO, USO E PROTE-O
DOS RECURSOS e ordem de acesso aos mesmos, impedindo
violao de espao de memria entre os programas dos
usurios e tentativas de acesso simultneo a um mesmo
recurso.

SO: EVOLUO E CONCEITOS BSICOS - 1

PRIMEIRA GERAO (1945 - 1955): VLVULAS


Programao em linguagem de mquina (L1G):
chaves e painis
Inexistncia de LP (linguagem de programao) ou
Sistema Operacional (SO), o operador fazia tudo

SO: EVOLUO E CONCEITOS BSICOS - 2


SEGUNDA GERAO (1955-1965): TRANSISTORES
Separao entre programao e operao
Desenvolvimento das LP: FORTRAN e ASSEMBLY
Surgimento do SO (Sistema Operacional: seqenciador
automtico de tarefas, tambm chamado de MONITOR
(Ex:
FMS e JCL)),
dos SISTEMAS EM LOTE
(BATCH) e da tcnica de BUFFERING.
9

PROCESSAMENTO EM LOTES: BATCH (Fig. 1.3 SOM3ed)

Colocar os cartes no 1401


Ler cartes para a fita
Colocar a fita no 7094 e fazer o processamento
Colocar a fita no 1401 e imprimir a sada

10

PROCESSAMENTO EM LOTES: BATCH (Fig. 1.4 ASOM5ed)

job n

(a)

job 2

Processamento

job 1

fita de entrada

cartes perfurados

(b)

Processamento
fita de entrada

fita de sada

relatrio n

(c)

Processamento
fita de sada

relatrio 2
relatrio 1

relatrios

11

Processamento em lotes (batch)

Programas so organizados em lotes de caractersticas


comuns e executados sequencialmente e sem
interao com o usurio

SO: EVOLUO E CONCEITOS BSICOS - 3


TERCEIRA GERAO (1965-1980): CIRCUITOS INTEGRADOS

MULTIPROGRAMAO , TEMPO COMPARTILHADO,


(Time-sharing), MULTIUSURIO e MULTITAREFA ->
MULTICS --> UNIX
Tcnicas de BUFFERING e SPOOL (Simultaneous
Peripheral Operation On Line : Operao simultnea de
perifricos em linha)

L3G: Cobol, C, Pascal, Basic

13

MONOPROGRAMAO (Fig. 1.6 ASOM5ed)

UCP

Memr ia
Pr incipal

progr ama/
tarefa

Di spositivos
de E/ S

14

Monoprogramao: um nico programa

15

Multiprogramao (Fig 1.5 SOMTB3ed)

16

MULTIPROGRAMAO

PARTIO DE MEMRIA 1
PROGRAMA 1 (JOB1)
PARTIO DE MEMRIA 2
PROGRAMA 2 (JOB2)
PARTIO DE MEMRIA 3
PROGRAMA 3 (JOB3)
PARTIO DE MEMRIA 4
MONITOR, SUPERVISOR OU SISTEMA OPERACIONAL

17

Multiprogramao (dois programas)

18

Multiprogramao (trs programas)

19

Tempo Compartilhado: Time Sharing (Fig. 1.7 ASOM5ed)


MULTIPROGRAMAO E MULTITAREFA

progr ama/
tarefa

progr ama/
tarefa

UCP

Memr ia
Pr incipal

Di spositivos
de E/ S

progr ama/
tarefa

progr ama/
tarefa

progr ama/
tarefa

20

Tempo Compartilhado: Time Sharing Systems

A Multiprogramao possibilitou o tempo


compartilhado,
permitindo
que
diversos
usurios possam interagir diretamente com o
computador (interativo)

21

TCNICA DE BUFFERING (Fig. 3.5 ASOM5ed)

Memria
Principal

gravao
UCP

gravao
Controlador

Buffer
leitura

leitura

22

TCNICA DE SPOOLING (Fig. 3.6 ASOM5ed)

Sistema Operacional

Programa

Arquivo
de Spool

Impressora

23

Buffer e Spooling
Buffers
rea de memria para armazenamento temporrio que guarda
dados durante transferncias de E/S.
So usados principalmente para:
Coordenar comunicaes entre dispositivos que funcionam em
diferentes velocidades.
Armazenar dados para processamento assncrono.
Permitir que alguns sinais sejam emitidos assincronamente.
Spooling
Tcnica de buffer por meio da qual um dispositivo intermedirio,
como um disco, interposto entre um processo e um dispositivo de
E/S de baixa velocidade.
Permite que os processos solicitem operaes a um dispositivo
perifrico sem que esse dispositivo esteja preparado para atender a
essa solicitao.
24

SO: EVOLUO E CONCEITOS BSICOS - 4

QUARTA GERAO (1980 -> ? ): CIs LSI e VLSI

VLSI (Very Large Scale Integration)


microcomputadores, multiprocessadores, SOs para
computadores pessoais (mais amigveis) (DOS ->
Windows).
Surgimento das L4G (SQL, C++ e Java), dos SOs de
Redes (SOR) e dos SOs Distribudos (SOD)
25

Minix
AIX
Chorus
S
CO Unix

Linux

UnixW
are

UNICS
UNIXV1
UNIXV6

UNIXV7
S
ystem III
S
ystem V
S
VR
2
S
VR
3
S
VR
4
OS
F/ 1
S
olaris
S
VR
4.2

1993 1986 1983 1981 1980 1979 1978

Xenix

1992 1988 1986 1984 1982 1981 1979

1976 1971 1969

EVOLUO DO UNIX (Fig. 15.1 ASOM4ed)

1BS
D
2BS
D
Ultrix
3BS
D
4BS
D
4.1BS
D
S
unOS
4.2BS
D
Mach
4.3BS
D
Irix
4.4BS
D
FreeBS
D
OpenBS
D

26

1993
1995

Window s
Me

WN T
3.1

WN T
3.51

1996

Window s
98

O S/ 2

WN T
4.0

2000

Window s
95

VMS

2001

1981
1985
1995

Window s
3.0

1998

Window s
1.0

1999

DO S

1990

EVOLUO DO WINDOWS (Fig. 14.1 ASOM4ed)

Window s
2000

LAN
Manager

Window s XP
Window s.N ET

27

Windows: continuao

Windows Vista (2007).

Windows 2008 Server (2008).

Windows 7 (2009).

Windows Phone 7 (2010).

Windows 8 (2012).

28

EVOLUO DO SO (2007-2013)

29

Recentes (2013)

Ubuntu 13.10 (Saucy Salamander) e Ubuntu Mobile OS (Ubuntu Touch).

Firefox OS.

XBOX OS (MS).

Orbis OS (PS4): BSD

iOS 7.

Android 4.3 (Jelly Bean) e 4.4 (KitKat).

Windows 8.1 (2013).

30

PROCESSO (Fig. 5.2 ASOM5ed)

Contexto de
Softw are

Contexto de
Har dw are

Pr ogr ama
Espao de
Ender eamento

31

Estrutura do Processo (Fig. 5.4 ASOM5ed)


nome
PID
owner (UID)

registradores
gerais

prioridade de
execuo
data/ hora
de criao

registrador PC

Contexto de
Software

Contexto de
Hardware

registrador SP

tempo de
processador
quotas
Programa

privilgios

registrador
de status

Espao de
Endereamento

endereos de memria
principal alocados

32

PCB: Bloco de Controle do Processo (Fig. 5.5 ASOM5ed)


ponteir os
Estado do pr ocesso
N ome do pr ocesso
Pr ior idade do processo
Regi str adores

Li mi tes de memr ia
Li sta de ar quivos aber tos
..
..
..
..
33

Linux PCB : struct task_struct (1)


struct task_struct {
long state;
long counter, priority;
struct task_struct *next_task, *prev_task;
struct task_struct *next_run, *prev_run;
int exit_code, exit_signal;
int pid;
struct task_struct *p_opptr, *p_cptr;
struct wait_queue *wait_chldexit;
struct task_struct *pidhash_next;

34

Linux PCB : struct task_struct (2)


unsigned long policy;
struct tms times;
unsigned long start_time;
unsigned short uid, gid;
struct thread_struct tss;
struct files_struct *files;
struct mm_struct *mm;
struct signal_struct *sig;
sigset_t signal, blocked;
};

35

Troca (mudana) de Contexto (Fig. 5.3 ASOM5ed)


Si st em a O p er a ci o n a l

Pr o cesso A

Pr o cesso B

execu ta n d o

Sa l va r eg i st r a d o r es d o
Pr o cesso A

Ca r r e g a r eg i str a d o r es d o
Pr o cesso B

execu ta n d o

Sa l va r eg i st r a d o r es d o
Pr o cesso B

Ca r r e g a r eg i str a d o r es d o
Pr o cesso A

execu ta n d o

36

Monothread x Multithread (Fig 2.8 SOMTB3ed)

37

Monothread x Multithread (Fig 4.1 SOJ7ed)

38

Multithread

(Fig. 6.3 ASOM5ed)

Contexto
de hardware

Contexto
de hardware

Thread 1

Thread 2

Thread 3

Contexto de
software

Contexto
de hardware

Espao de
ender eamento

39

Suporte de hardware para sistemas operacionais (SOD3ed)

Recursos que executam funes de sistemas operacionais


rapidamente em hardware para melhorar o desempenho.

Recursos que habilitam o sistema operacional para proteo.


Mecanismos de proteo no processador: evitam que os processos
acessem instrues privilegiadas ou memria.
Os sistemas de computador geralmente dispem de diferentes modos
de execuo:
Modo usurio (estado usurio ou estado-problema): o usurio
pode executar apenas um subconjunto de instrues.
Modo ncleo (estado supervisor): o processador pode acessar
instrues privilegiadas e recursos em nome dos processos.

40

CHAMADAS DE (AO) SISTEMA (Fig. 1.1 SOD3ed)


Interao entre aplicaes e o sistema operacional.

41

CHAMADAS DE (AO) SISTEMA (Fig. 4.3 ASOM5ed)

SystemCall

Aplicao

Biblioteca

Ncleo do
Sistema Operacional
Hardware
42

Suporte de hardware para sistemas operacionais (SOD3ed)

Proteo e gerenciamento da memria


Impede que processos acessem memria que no lhes foi
designada.
implementada por meio de registradores de processador que
somente podem ser modificados com instrues privilegiadas.

Interrupes e excees

43

Suporte de hardware para sistemas operacionais (SOD3ed)


Temporizadores
O temporizador de intervalo gera periodicamente uma interrupo.
Os sistemas operacionais usam temporizadores de intervalo para
impedir que processos monopolizem o processador.
Relgios
Oferecem uma medida de continuidade.
Um relgio de 24 horas habilita o sistema operacional a determinar a
hora e a data atuais.

44

INTERRUPES E EXCEES (Fig. 3.2 ASOM5ed)

45

INTERRUPES E EXCEES

So desvios do fluxo de execuo de um programa.


1. EXCEO
Desvio forado do fluxo de execuo de um programa causado
por um evento interno sncrono, ou seja, ocorre devido a prpria
execuo das instrues do programa (diviso por zero,
overflow, instruo invlida, etc.). As excees podem ser
geradas com uma resposta a erros ou condies de exceo.
2. INTERRUPES: HARDWARE e SOFTWARE.

46

Interrupes e excees (AOCS8ed Cap3 )

Mecanismo pelo qual outros mdulos (p.e. E/S) podem interromper a


sequncia de processamento normal.

Programa (ex: estouro da pilha, diviso por zero)

Timer (ex: gerado por timer dentro do processo, sado na multitarefa


preemptiva)

E/S (controlador de E/S)

Falha de hardware (erro de paridade de memria)

47

Ciclo de interrupo (AOCS8ed - Cap3 )

Adicionado ao ciclo de instruo.


Processador verifica interrupo (Indicado por um sinal de
interrupo).
Se no houver interrupo, busca prxima instruo.
Se houver interrupo pendente:
Suspende execuo do programa atual.
Salva contexto.
Define PC para endereo inicial da rotina de tratamento de
interrupo.
Interrupo de processo.
Restaura contexto e continua programa interrompido.

48

Transferncia de controle (Fig 3.8 AOCS8ed)

49

Ciclo de instruo com interrupes (Fig 3.9 AOCS8ed)

50

Interrupes e excees (SOD3ed)

Quando ocorre um evento, a maioria dos dispositivos envia


ao processador um sinal denominado interrupo.

As excees so interrupes geralmente geradas em


resposta a erros ou condies de exceo.

O sistema operacional pode responder a uma interrupo


notificando os processos que esto espera desses
eventos.

51

INTERRUPO DE HARDWARE (evento externo)

Desvio forado do fluxo de execuo de um programa


causado por um evento assncrono externo (relgio,
teclado, disco impressora, etc).

Quando ocorre um evento, a maioria dos dispositivos envia


ao processador um sinal denominado interrupo

52

Pinagem lgica de uma CPU (Fig 3.32 OECTB5ed)

As setas indicam sinais de entrada e sinais de sada.


Os segmentos de reta diagonal indicam que so utilizados vrios pinos.
53

PIC: Controlador de interrupo 8259A (Fig 3.40 OECTB5ed)

54

Interrupes de hardware (Fig 5.4 SOMTB3ed)

55

INTERRUPO DE HARDWARE (Fig 1.11 SOMTB3ed)

56

INTERRUPES DE SOFTWARE

So instrues especiais que fazem parte do conjunto de


instrues de um processador, mas que tem um
comportamento semelhante s interrupes de hardware.
Os servios do Sistema Operacional (SO) so geralmente
obtidos atravs deste mecanismo (chamadas ou traps ao
SO).
Exemplos:
INT 0x80 (Linux)
INT 0x21 (DOS)

57

CHAMADAS AO SISTEMA: INTERRUPES DE SOFTWARE (Fig. 4.2 ASOM4ed)

58

VETORES DE INTERRUPO

Vetor de interrupo um mecanismo usado para indicar


o dispositivo est solicitando operao de E/S. Eles
servem para indicar uma entrada na tabela de vetores de
interrupo.

A Tabela de vetores de interrupo armazena os


endereos das rotinas de tratamento de interrupo (RTI)
de cada dispositivo de E/S, de excees e
das
interrupes de software.

59

Tabela de vetores de interrupes e excees para x86 (Tab 12.3 AOCS8ed)

60

Tabela de vetores de interrupes e excees para x86 (Tab 12.3 AOCS8ed)

61

Вам также может понравиться