Vous êtes sur la page 1sur 70

MC514

Sistemas Operacionais:
Teoria e Prtica
a
Islene Calciolari Garcia
Instituto de Computao
ca
UNICAMP

Contedo
u
Introduo
ca
Gerncia de Processos
e
Programao concorrente
ca
Gerncia de Memria
e
o
Gerncia de Arquivos
e
Entrada/Sa
da
Estudo de casos

Referncia principal
e
Teoria
Sistemas Operacionais Modernos
Andrew S. Tanenbaum
Segunda edio
ca
Pearson - Prentice Hall

Referncia principal
e
Prtica
a
Man pages
Info Libc

Introduo
ca
1. Sistema operacional
2. Histria dos sistemas operacionais
o
3. Reviso sobre hardware
a
4. Conceitos bsicos
a
5. Chamadas aos sistema
6. Estrutura de sistemas operacionais

Sistema operacional
Programas de Aplicao
ca
Shell Compiladores Editores
Sistema operacional
Hardware
O sistema operacional isola o hardware das
camadas superiores em um sistema computacional

Sistema operacional
Mquina estendida
a
oferece uma mquina virtual mais simples de programar
a
do que o hardware
Gerenciador de recursos
fornece uma alocao controlada de processadores,
ca
memria e disposistivos de entrada/sa
o
da

Histria dos sistemas operacionais


o
A evoluo dos sistemas operacionais est fortemente
ca
a
relacionada ao desenvolvimento do hardware
Primeira gerao 19451955
ca
vlvulas e painis de programao
a
e
ca
computao numrica: gerao de tabelas de senos e
ca
e
ca
cosenos.

Histria dos sistemas operacionais


o

ENIAC

Histria dos sistemas operacionais


o
Cartes perfurados
o
$END
Data for program

$RUN
$LOAD
Fortran program

$FORTRAN
$JOB, 10,6610802, MARVIN TANENBAUM

Histria dos sistemas operacionais


o
Segunda gerao 19551965
ca
transistores e sistemas batch
Card
reader

Tape
drive

Input
tape

Output
tape
Printer

1401

(a)

System
tape

(b)

7094

(c)

(d)

1401

(e)

(f)

Histria dos sistemas operacionais


o
Terceira gerao 19651980
ca
circuitos intregados e multiprogramao
ca
System/360: fam de computadores compat
lia
veis

Histria dos sistemas operacionais


o
Monoprogramao
ca
Memria
o

Job
Sistema Operacional

Com apenas um job em memria


o
a CPU ca ociosa durante operaoes de E/S
c

Histria dos sistemas operacionais


o
CPU-bound
(a)

Long CPU burst


Waiting for I/O
Short CPU burst

(b)
Time

IO-bound

Histria dos sistemas operacionais


o
Multiprogramao
ca
Job D
Job C
Memria
o

Job B
Job A
Sistema Operacional

Com vrios jobs em memria


a
o
a CPU pode ser melhor aproveitada

Histria dos sistemas operacionais


o
Multiprogramao
ca
One program counter

Process

Four program counters

Process
switch

B
C

D
C
B
A

D
(a)

Time
(b)

(c)

Histria dos sistemas operacionais


o
SPOOLing
Simultaneous Peripheral Operation OnLine
Leitura dos cartes passou a ser feita em paralelo `
o
a
execuo de outros programas
ca
Os computadores auxiliares puderam ser aposentados

Histria dos sistemas operacionais


o
Tempo-compartilhado

Vrios terminais conectados a um mainframe


a
Os usurios exigem resposta rpida
a
a

Histria dos sistemas operacionais


o
Tempo-compartilhado
CTSS (Compatible Time Sharing System)desenvolvido
no M.I.T., foi um sucesso comercial
MULTICS (MULTiplexed Information and Computing
Service)projeto muito ambicioso

Histria dos sistemas operacionais


o
Mini-computadores
Mquinas PDP-X (incompat
a
veis entre si)
UNIX (inicialmente UNICS)
System V da AT&T
BSD (Berkeley Software Distribution)
POSIX (Portable Operating System-IX)
Minix
Linux

Histria dos sistemas operacionais


o
Quarta gerao 1980hoje
ca
Circuitos integrados de larga escala
Computadores pessoais
CP/M (Control Program for Microcomputers)
MS-DOS (MicroSoft Disk Operating System)

Histria dos sistemas operacionais


o
GUI (Graphical User Interface)
Macintosh
Windows
Interface grca sobre o MS-DOS
a
Unix
X Windows System

Histria dos sistemas operacionais


o
Diversidade atual
Mainframe
Servidores
Multiprocessados
Computadores pessoais
Tempo real
Embarcados
Cartes inteligentes
o

Histria dos sistemas operacionais


o
Ciclo de desenvolvimento
Computadores

Facilidades

Mainframe

Linguagens de alto n
vel

Minicomputadores

Proteo de hardware
ca

Computadores pessoais

Suporte a multiprogramao
ca

Sistemas embarcados

Discos e sistemas de arquivos

Cartes inteligentes
o

Reviso sobre hardware


a
Monitor
Keyboard

CPU

Memory

Video
controller

Floppy
disk drive

Hard
disk drive

Keyboard
controller

Floppy
disk
controller

Hard
disk
controller

Bus

Reviso sobre hardware


a
Processador
Responsvel pela execuo dos programas
a
ca
Ciclo de execuo: busca decodica executa
ca
.
.
.
Mov R1, A
Mov R2, B
PC (contador de programa)

Add R1, R2
.
.
.

Reviso sobre hardware


a
Pipelines e CPUs superescalares
Execute
unit
Fetch
unit
Fetch
unit

Decode
unit

Decode
unit
Holding
buffer

Execute
unit
Fetch
unit

(a)

Decode
unit

Execute
unit

Execute
unit
(b)

Maior ecincia
e
Maior complexidade dos compiladores e sistemas
operacionais

Reviso sobre hardware


a
Pilha de execuo
ca
.
.
.
Parmetros
a
Registradores
Variveis locais
a
SP (apontador de pilha)

Reviso sobre hardware


a
Modos de execuo
ca
Modo usurio
a
acesso restrito ao conjunto de instruoes
c
Modo ncleo
u
acesso total ao conjunto de instruoes
c
Chamadas ao sistema: permitem a mudana de modo de
c
um programa

Reviso sobre hardware


a
Hierarquia de memria
o
Typical access time

Typical capacity

1 nsec

Registers

2 nsec

Cache

10 nsec

Main memory

64-512 MB

10 msec

Magnetic disk

5-50 GB

Magnetic tape

20-100 GB

100 sec

<1 KB
1 MB

Reviso sobre hardware


a
Registradores
Internos ` CPU
a
Extremamente rpidos
a
Programas decidem o que deve car armazenado nos
registradores

Reviso sobre hardware


a
Cache
Internos ou muito prximos ` CPU
o
a
Divididos em linhas de cache
Controlados por hardware
Cache hit
Cache miss

Reviso sobre hardware


a
Memria Principal
o
Random Access Memory (RAM)
Compromisso entre preo e desempenho
c
Armazenamento voltil
a

Reviso sobre hardware


a
Disco
Read/write head (1 per surface)
Surface 7
Surface 6
Surface 5
Surface 4
Surface 3
Direction of arm motion
Surface 2
Surface 1
Surface 0

Reviso sobre hardware


a
Fitas magnticas
e
Utilizadas para cpias de segurana (backups)
o
c
Armazenamento de grandes quantidades de dados
Acesso seqencial
u

Reviso sobre hardware


a
Outros tipos de memria
o
ROM (Read Only Memory)
rpida e barata
a
bootstrap loader est gravado em ROM
a
EEPROM (Electrically Erasable ROM)
podem ser apagadas (erros podem ser corrigidos)
CMOS
dependem de uma bateria
armazenam relgio e conguraoes
o
c

Reviso sobre hardware


a
Proteo e realocao
ca
ca
Como proteger um programa de outro
Como permitir que um programa seja executado em
posioes distintas da memria
c
o

Reviso sobre hardware


a
Proteo e realocao
ca
ca
Address
Registers
when
program 2
is running

0xFFFFFFFF

User program
and data

Registers
when
program 1
is running

Limit-2
User-2 data
Base-2

Limit-2

Limit
User program
and data
Base

Base-2

User-1 data

Limit-1
Base-1

User program

Limit-1
Base-1

Operating
System

Operating
System

(a)

(b)

Reviso sobre hardware


a
Endereos f
c
sicos e virtuais
CPU
package

The CPU sends virtual


addresses to the MMU

CPU
Memory
management
unit

Memory

Disk
controller

Bus
The MMU sends physical
addresses to the memory

Reviso sobre hardware


a
Entrada e Sa
da
Monitor
Keyboard

CPU

Memory

Video
controller

Floppy
disk drive

Hard
disk drive

Keyboard
controller

Floppy
disk
controller

Hard
disk
controller

Bus

O controlador administra sicamente o dispositivo


Driver de dispositivo: programa fornecido pelo fabricante
que se comunica com o controlador

Reviso sobre hardware


a
Espera ocupada
A CPU programa um controlador para leitura
Entra em um loop de testes consecutivos at o dado
e
estar dispon
vel
L o dado
e
Desperd de processamento
cio

Reviso sobre hardware


a
Interrupoes
c
Disk drive
Current instruction
3

Next instruction
Disk
controller

CPU

Interrupt
controller

3. Return
1. Interrupt

1
2. Dispatch
to handler
(a)

Interrupt handler
(b)

A CPU programa o controlador e ca livre


Quando o dado est dispon a CPU interrompida
a
vel
e

Reviso sobre hardware


a
Direct Memory Access
Drive

CPU

1. CPU
programs
the DMA
controller

DMA
controller

Main
memory

Disk
controller
Buffer

Address
Count
Control

Interrupt when
done

4. Ack

2. DMA requests
transfer to memory

3. Data transferred
Bus

A CPU programa o DMA e ca livre


Quando o bloco est dispon a CPU interrompida
a
vel
e

Reviso sobre hardware


a
Barramentos (Pentium System)
Local bus

Cache bus

Level 2
cache

Memory bus

PCI
bridge

CPU

Main
memory
PCI bus

SCSI

USB

ISA
bridge

IDE
disk

Graphics
adaptor

Available
PCI slot

Monitor
Mouse

Modem

Keyboard

ISA bus

Sound
card

Printer

Available
ISA slot

Conceitos bsicos
a
Processos
Programa em execuo
ca
Espao de endereamento
c
c
Address (hex)
FFFF
Stack
Gap
Data
Text
0000

Conceitos bsicos
a
Processos
Registradores
Contador de programa
ponteiro de pilha,
PSW (program status word)
Conjunto de arquivos abertos

Conceitos bsicos
a
Hierarquia de processos
A

Conceitos bsicos
a
Deadlock

(a)

(b)

Conceitos bsicos
a
Deadlock
Suponha que dois processos querem gravar um CD-ROM a
partir de dados gravados em uma ta magntica
e
Processo 1
obtm CD-ROM
e
aguarda ta
Process 2
obtm ta
e
aguarda CD-ROM

Conceitos bsicos
a
Sistema de arquivos
Root directory

Students

Robbert

Matty

Faculty

Leo

Prof.Brown

Courses

CS101

Papers

CS105

Prof.Green

Grants

Committees

SOSP
Files

Prof.White

COST-11

Conceitos bsicos
a
Mount
Root

Floppy

(a)

(b)

Conceitos bsicos
a
Links
/usr/ast

/usr/jim
31
70
59
38

16 mail
81 games
40 test

(a)

bin
memo
f.c.
prog1

/usr/ast
16
81
40
70

/usr/jim
31
70
59
38

mail
games
test
note

bin
memo
f.c.
prog1

(b)

$ ln /usr/jim/memo /usr/ast/note
Ast e Jim podem compartilhar um diretrio
o

Conceitos bsicos
a
Segurana
c
islene@emilia% ll
-rw-r----- so.txt
drwxr-xr-x threads/
islene@emilia% ll /usr/bin/passwd
-r-s--x--x /usr/bin/passwd*

Conceitos bsicos
a
Pipe
Process

Process
Pipe

$ grep str file | wc -l


Mais eciente que:
$ grep str file > file-str
$ wc -l file-str
$ rm file-str

Chamada ao sistema
Tipo especial de chamada de procedimento
Passa do modo usurio para o modo supervisor
a
Instruo TRAP
ca

cont = read(fd, buer, nbytes)


Address
0xFFFFFFFF

Return to caller
Trap to the kernel
5 Put code for read in register
10

4
User space

Increment SP
Call read
3 Push fd
2 Push &buffer
1 Push nbytes

11
User program
calling read

Kernel space
(Operating system)

Dispatch
0

Library
procedure
read

Sys call
handler

Exemplos de chamadas ao sistema


Gerncia de processos
e
pid = fork()
waitpid(pid, &statloc, options)
s = execve(name, argv, environp)
exit(status)

Exemplos de chamadas ao sistema


Shell
#dene TRUE 1
while (TRUE) {
type_prompt( );
read_command(command, parameters);
if (fork( ) != 0) {
/* Parent code. */
waitpid(1, &status, 0);
} else {
/* Child code. */
execve(command, parameters, 0);
}
}

/* repeat forever */
/* display prompt on the screen */
/* read input from terminal */
/* fork off child process */
/* wait for child to exit */
/* execute command */

Exemplos de chamadas ao sistema


Gerncia de arquivos
e
fd = open(file, how)
s = close(fd)
n = read(fd, buffer, nbytes)
n = write(fd, buffer, nbytes)
pos = lseek(fd, offset, whence)
s = stat(name, &buf)

Exemplos de chamadas ao sistema


Gerncia de arquivos e diretrios
e
o
s = mkdir(name,mode)
s = rmdir(name)
s = link(name1,name2)
s = unlink(name)
s = mount(special,name,flag)
s = umount(special)

Exemplos de chamadas ao sistema


Diversas
s = chdir(dirname)
s = chmod(name,mode)
s = kill(pid,signal)
seconds = time(&seconds)

Exemplos de chamadas de sistema


Unix

Win32

fork

CreateProcess

waitpid WaitForSingleObject
execve
open

CreateFile

close

CloseHandle

Estrutura de sistemas operacionais


Sistema monol
tico
Conjunto de procedimentos
Visibilidade total (qualquer procedimento pode invocar
outro procedimento)

Estrutura de sistemas operacionais


Sistema monol
tico
(estrutura simples)
Main
procedure

Service
procedures

Utility
procedures

Estrutura de sistemas operacionais


Sistema de camadas

Function

The operator
User programs
Input/output management
Operator-process communication
Memory and drum management
Processor allocation and multiprogramming

Layer
5
4
3
2
1
0

Estrutura de sistemas operacionais


Mquinas Virtuais
a
OS/360: sistema batch
CMS (Conversational Monitor System)
Virtual 370s

System calls here


I/O instructions here
Trap here

CMS

CMS
VM/370
370 Bare hardware

CMS

Trap here

Estrutura de sistemas operacionais


Exoncleos
u
Clone de uma mquina
a
Recursos alocados individualmente
Sem transparncia
e

Estrutura de sistemas operacionais


Modelo cliente-servidor
Client
process

Client
process

Process
server

Terminal
server

File
server

Memory
server

User mode
Kernel mode

Microkernel
Client obtains
service by
sending messages
to server processes

Estrutura de sistemas operacionais


Modelo cliente-servidor em um
ambiente distribu
do
Machine 1

Machine 2

Machine 3

Machine 4

Client

File server

Process server

Terminal server

Kernel

Kernel

Kernel

Kernel

Network
Message from
client to server

Resumo
1. Sistema operacional
2. Histria dos sistemas operacionais
o
3. Reviso sobre hardware
a
4. Conceitos bsicos
a
5. Chamadas aos sistema
6. Estrutura de sistemas operacionais
Prximo tpico: Processos e threads
o
o

Vous aimerez peut-être aussi