SlideShare a Scribd company logo
1 of 70
Download to read offline
MC514
Sistemas Operacionais:
Teoria e Prática
Islene Calciolari Garcia
Instituto de Computação
UNICAMP
Conteúdo
• Introdução
• Gerência de Processos
– Programação concorrente
• Gerência de Memória
• Gerência de Arquivos
• Entrada/Saı́da
• Estudo de casos
Referência principal
Teoria
Sistemas Operacionais Modernos
Andrew S. Tanenbaum
Segunda edição
Pearson - Prentice Hall
Referência principal
Prática
Man pages
Info Libc
Introdução
1. Sistema operacional
2. História dos sistemas operacionais
3. Revisão sobre hardware
4. Conceitos básicos
5. Chamadas aos sistema
6. Estrutura de sistemas operacionais
Sistema operacional
Programas de Aplicação
Shell Compiladores Editores
Sistema operacional
Hardware
O sistema operacional isola o hardware das
camadas superiores em um sistema computacional
Sistema operacional
• Máquina estendida
oferece uma máquina virtual mais simples de programar
do que o hardware
• Gerenciador de recursos
fornece uma alocação controlada de processadores,
memória e disposistivos de entrada/saı́da
História dos sistemas operacionais
• A evolução dos sistemas operacionais está fortemente
relacionada ao desenvolvimento do hardware
• Primeira geração 1945–1955
• válvulas e painéis de programação
• computação numérica: geração de tabelas de senos e
cosenos.
História dos sistemas operacionais
ENIAC
História dos sistemas operacionais
Cartões perfurados
$JOB, 10,6610802, MARVIN TANENBAUM
$FORTRAN
$LOAD
$RUN
$END
Fortran program
Data for program
História dos sistemas operacionais
• Segunda geração 1955–1965
• transistores e sistemas batch
1401 7094 1401
(a) (b) (c) (d) (e) (f)
Card
reader
Tape
drive Input
tape
Output
tape
System
tape
Printer
História dos sistemas operacionais
• Terceira geração 1965–1980
• circuitos intregados e multiprogramação
• System/360: famı́lia de computadores compatı́veis
História dos sistemas operacionais
Monoprogramação
Memória
Job
Sistema Operacional
Com apenas um job em memória
a CPU fica ociosa durante operações de E/S
História dos sistemas operacionais
CPU-bound
Long CPU burst
Short CPU burst
Waiting for I/O
(a)
(b)
Time
IO-bound
História dos sistemas operacionais
Multiprogramação
Memória
Job D
Job C
Job B
Job A
Sistema Operacional
Com vários jobs em memória
a CPU pode ser melhor aproveitada
História dos sistemas operacionais
Multiprogramação
A
B
C
D
D
C
B
A
Process
switch
One program counter
Four program counters
Process
Time
B C D
A
(a) (b) (c)
História dos sistemas operacionais
SPOOLing
• Simultaneous Peripheral Operation OnLine
• Leitura dos cartões passou a ser feita em paralelo à
execução de outros programas
• Os computadores auxiliares puderam ser aposentados
História dos sistemas operacionais
Tempo-compartilhado
• Vários terminais conectados a um mainframe
• Os usuários exigem resposta rápida
História dos sistemas operacionais
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
História dos sistemas operacionais
Mini-computadores
• Máquinas PDP-X (incompatı́veis entre si)
• UNIX (inicialmente UNICS)
– System V da AT&T
– BSD (Berkeley Software Distribution)
– POSIX (Portable Operating System-IX)
– Minix
– Linux
História dos sistemas operacionais
• Quarta geração 1980–hoje
• Circuitos integrados de larga escala
• Computadores pessoais
• CP/M (Control Program for Microcomputers)
• MS-DOS (MicroSoft Disk Operating System)
História dos sistemas operacionais
GUI (Graphical User Interface)
• Macintosh
• Windows
– Interface gráfica sobre o MS-DOS
• Unix
– X Windows System
História dos sistemas operacionais
Diversidade atual
• Mainframe
• Servidores
• Multiprocessados
• Computadores pessoais
• Tempo real
• Embarcados
• Cartões inteligentes
História dos sistemas operacionais
Ciclo de desenvolvimento
Computadores Facilidades
Mainframe Linguagens de alto nı́vel
Minicomputadores Proteção de hardware
Computadores pessoais Suporte a multiprogramação
Sistemas embarcados Discos e sistemas de arquivos
Cartões inteligentes
Revisão sobre hardware
Monitor
Keyboard
Floppy
disk drive
Hard
disk drive
Hard
disk
controller
Floppy
disk
controller
Keyboard
controller
Video
controller
Memory
CPU
Bus
Revisão sobre hardware
Processador
• Responsável pela execução dos programas
• Ciclo de execução: busca → decodifica → executa
.
.
.
Mov R1, A
Mov R2, B
PC (contador de programa) → Add R1, R2
.
.
.
Revisão sobre hardware
Pipelines e CPUs superescalares
Fetch
unit
Fetch
unit
Fetch
unit
Decode
unit
Decode
unit
Execute
unit
Execute
unit
Execute
unit
Execute
unit
Decode
unit
Holding
buffer
(a) (b)
• Maior eficiência
• Maior complexidade dos compiladores e sistemas
operacionais
Revisão sobre hardware
Pilha de execução
.
.
.
Parâmetros
Registradores
Variáveis locais
SP (apontador de pilha) → ↓
Revisão sobre hardware
Modos de execução
• Modo usuário
– acesso restrito ao conjunto de instruções
• Modo núcleo
– acesso total ao conjunto de instruções
• Chamadas ao sistema: permitem a mudança de modo de
um programa
Revisão sobre hardware
Hierarquia de memória
Registers
Cache
Main memory
Magnetic tape
Magnetic disk
1 nsec
2 nsec
10 nsec
10 msec
100 sec
<1 KB
1 MB
64-512 MB
5-50 GB
20-100 GB
Typical capacity
Typical access time
Revisão sobre hardware
Registradores
• Internos à CPU
• Extremamente rápidos
• Programas decidem o que deve ficar armazenado nos
registradores
Revisão sobre hardware
Cache
• Internos ou muito próximos à CPU
• Divididos em linhas de cache
• Controlados por hardware
• Cache hit
• Cache miss
Revisão sobre hardware
Memória Principal
• Random Access Memory (RAM)
• Compromisso entre preço e desempenho
• Armazenamento volátil
Revisão sobre hardware
Disco
Surface 2
Surface 1
Surface 0
Read/write head (1 per surface)
Direction of arm motion
Surface 3
Surface 5
Surface 4
Surface 7
Surface 6
Revisão sobre hardware
Fitas magnéticas
• Utilizadas para cópias de segurança (backups)
• Armazenamento de grandes quantidades de dados
• Acesso seqüencial
Revisão sobre hardware
Outros tipos de memória
• ROM (Read Only Memory)
– rápida e barata
– bootstrap loader está gravado em ROM
• EEPROM (Electrically Erasable ROM)
– podem ser apagadas (erros podem ser corrigidos)
• CMOS
– dependem de uma bateria
– armazenam relógio e configurações
Revisão sobre hardware
Proteção e realocação
• Como proteger um programa de outro
• Como permitir que um programa seja executado em
posições distintas da memória
Revisão sobre hardware
Proteção e realocação
User program
and data
User program
and data
Operating
System
Address
0xFFFFFFFF
Limit
Base
0
(a)
User-2 data
User-1 data
User program
Operating
System
Base-2
Limit-2
Limit-2
Limit-1
Base-2
Base-1
(b)
Limit-1
Base-1
Registers
when
program 1
is running
Registers
when
program 2
is running
Revisão sobre hardware
Endereços fı́sicos e virtuais
CPU
package
CPU
The CPU sends virtual
addresses to the MMU
The MMU sends physical
addresses to the memory
Memory
management
unit
Memory
Disk
controller
Bus
Revisão sobre hardware
Entrada e Saı́da
Monitor
Keyboard
Floppy
disk drive
Hard
disk drive
Hard
disk
controller
Floppy
disk
controller
Keyboard
controller
Video
controller
Memory
CPU
Bus
• O controlador administra fisicamente o dispositivo
• Driver de dispositivo: programa fornecido pelo fabricante
que se comunica com o controlador
Revisão sobre hardware
Espera ocupada
• A CPU programa um controlador para leitura
• Entra em um loop de testes consecutivos até o dado
estar disponı́vel
• Lê o dado
⇒ Desperdı́cio de processamento
Revisão sobre hardware
Interrupções
CPU
Interrupt
controller
Disk
controller
Disk drive
Current instruction
Next instruction
1. Interrupt
3. Return
2. Dispatch
to handler
Interrupt handler
(b)
(a)
1
3
4 2
• A CPU programa o controlador e fica livre
• Quando o dado está disponı́vel a CPU é interrompida
Revisão sobre hardware
Direct Memory Access
CPU
DMA
controller
Disk
controller
Main
memory
Buffer
1. CPU
programs
the DMA
controller
Interrupt when
done
2. DMA requests
transfer to memory 3. Data transferred
Bus
4. Ack
Address
Count
Control
Drive
• A CPU programa o DMA e fica livre
• Quando o bloco está disponı́vel a CPU é interrompida
Revisão sobre hardware
Barramentos (Pentium System)
ISA
bridge
Modem
Mouse
PCI
bridge
CPU
Main
memory
SCSI USB
Local bus
Sound
card
Printer Available
ISA slot
ISA bus
IDE
disk
Available
PCI slot
Key-
board
Mon-
itor
Graphics
adaptor
Level 2
cache
Cache bus Memory bus
PCI bus
Conceitos básicos
Processos
• Programa em execução
• Espaço de endereçamento
Address (hex)
FFFF
0000
Stack
Data
Text
Gap
Conceitos básicos
Processos
• Registradores
– Contador de programa
– ponteiro de pilha,
– PSW (program status word)
• Conjunto de arquivos abertos
Conceitos básicos
Hierarquia de processos
A
B
D E F
C
Conceitos básicos
Deadlock
(a) (b)
Conceitos básicos
Deadlock
Suponha que dois processos querem gravar um CD-ROM a
partir de dados gravados em uma fita magnética
• Processo 1
– obtém CD-ROM
– aguarda fita
• Process 2
– obtém fita
– aguarda CD-ROM
Conceitos básicos
Sistema de arquivos
Root directory
Students Faculty
Leo Prof.Brown
Files
Courses
CS101 CS105
Papers Grants
SOSP COST-11
Committees
Prof.Green Prof.White
Matty
Robbert
Conceitos básicos
Mount
Root Floppy
a b
c d c d
a b
x y
x y
(a) (b)
Conceitos básicos
Links
/usr/ast /usr/jim
16
81
40
mail
games
test
(a)
31
70
59
38
bin
memo
f.c.
prog1
/usr/ast /usr/jim
16
81
40
70
mail
games
test
note
(b)
31
70
59
38
bin
memo
f.c.
prog1
$ ln /usr/jim/memo /usr/ast/note
Ast e Jim podem compartilhar um diretório
Conceitos básicos
Segurança
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 básicos
Pipe
Process
Pipe
Process
A B
$ grep str file | wc -l
Mais eficiente 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 usuário para o modo supervisor
• Instrução TRAP
cont = read(fd, buffer, nbytes)
Return to caller
4
10
6
0
9
7 8
3
2
1
11
Dispatch
Sys call
handler
Address
0xFFFFFFFF
User space
Kernel space
(Operating system)
Library
procedure
read
User program
calling read
Trap to the kernel
Put code for read in register
Increment SP
Call read
Push fd
Push &buffer
Push nbytes
5
Exemplos de chamadas ao sistema
Gerência de processos
• pid = fork()
• waitpid(pid, &statloc, options)
• s = execve(name, argv, environp)
• exit(status)
Exemplos de chamadas ao sistema
Shell
#define TRUE 1
while (TRUE) { /* repeat forever */
type_prompt( ); /* display prompt on the screen */
read_command(command, parameters); /* read input from terminal */
if (fork( ) != 0) { /* fork off child process */
/* Parent code. */
waitpid(−1, &status, 0); /* wait for child to exit */
} else {
/* Child code. */
execve(command, parameters, 0); /* execute command */
}
}
Exemplos de chamadas ao sistema
Gerência de arquivos
• 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
Gerência de arquivos e diretórios
• 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
Layer Function
5 The operator
4 User programs
3 Input/output management
2 Operator-process communication
1 Memory and drum management
0 Processor allocation and multiprogramming
Estrutura de sistemas operacionais
Máquinas Virtuais
• OS/360: sistema batch
• CMS (Conversational Monitor System)
I/O instructions here
Trap here
Trap here
System calls here
Virtual 370s
CMS CMS CMS
VM/370
370 Bare hardware
Estrutura de sistemas operacionais
Exonúcleos
• Clone de uma máquina
• Recursos alocados individualmente
• Sem transparência
Estrutura de sistemas operacionais
Modelo cliente-servidor
Client
process
Client
process
Process
server
Terminal
server
File
server
Memory
server
Microkernel
User mode
Kernel mode
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
Kernel
File server
Kernel
Process server
Kernel
Terminal server
Kernel
Message from
client to server
Network
Resumo
1. Sistema operacional
2. História dos sistemas operacionais
3. Revisão sobre hardware
4. Conceitos básicos
5. Chamadas aos sistema
6. Estrutura de sistemas operacionais
Próximo tópico: Processos e threads

More Related Content

Similar to intro.pdf

IntroducaoInformaticanovoarquivo2222.ppt
IntroducaoInformaticanovoarquivo2222.pptIntroducaoInformaticanovoarquivo2222.ppt
IntroducaoInformaticanovoarquivo2222.pptLamarck4
 
IntroducaoInformatica.ppt
IntroducaoInformatica.pptIntroducaoInformatica.ppt
IntroducaoInformatica.pptRomuloAlves22
 
Introducao a Informatica - Computação!!!
Introducao a Informatica - Computação!!!Introducao a Informatica - Computação!!!
Introducao a Informatica - Computação!!!SabrinaPitombeiraMon
 
Introducao Informatica.ppt
Introducao Informatica.pptIntroducao Informatica.ppt
Introducao Informatica.pptIsidro Raposo
 
Introdução Informática a tecnologia da informação e comunicação.ppt
Introdução Informática a tecnologia da informação e comunicação.pptIntrodução Informática a tecnologia da informação e comunicação.ppt
Introdução Informática a tecnologia da informação e comunicação.pptmiboxs1
 
Introdução para iniciantes em Informatica
Introdução para iniciantes em InformaticaIntrodução para iniciantes em Informatica
Introdução para iniciantes em InformaticaJnatasFelipeSantosGo
 
IntroducaoInformatica (2).ppt
IntroducaoInformatica (2).pptIntroducaoInformatica (2).ppt
IntroducaoInformatica (2).pptEriveltonLealII
 
IntroducaoInformatica01247tecinformatica.ppt
IntroducaoInformatica01247tecinformatica.pptIntroducaoInformatica01247tecinformatica.ppt
IntroducaoInformatica01247tecinformatica.pptcontabilpmfi
 
Resumo sistemas operativos - joao marques
Resumo   sistemas operativos - joao marquesResumo   sistemas operativos - joao marques
Resumo sistemas operativos - joao marquesdjoaquim7
 
Apostila 2 conceitos de hardware e software
Apostila 2   conceitos de hardware e softwareApostila 2   conceitos de hardware e software
Apostila 2 conceitos de hardware e softwarePaulo Fonseca
 
Aspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoAspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoMauro Tapajós
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoelliando dias
 
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos IniciaisFundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos IniciaisHelder Lopes
 
Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)Faculdade Mater Christi
 

Similar to intro.pdf (20)

IntroducaoInformaticanovoarquivo2222.ppt
IntroducaoInformaticanovoarquivo2222.pptIntroducaoInformaticanovoarquivo2222.ppt
IntroducaoInformaticanovoarquivo2222.ppt
 
IntroducaoInformatica.ppt
IntroducaoInformatica.pptIntroducaoInformatica.ppt
IntroducaoInformatica.ppt
 
Introducao a Informatica - Computação!!!
Introducao a Informatica - Computação!!!Introducao a Informatica - Computação!!!
Introducao a Informatica - Computação!!!
 
IntroducaoInformatica.ppt
IntroducaoInformatica.pptIntroducaoInformatica.ppt
IntroducaoInformatica.ppt
 
IntroducaoInformatica.ppt
IntroducaoInformatica.pptIntroducaoInformatica.ppt
IntroducaoInformatica.ppt
 
Introducao Informatica.ppt
Introducao Informatica.pptIntroducao Informatica.ppt
Introducao Informatica.ppt
 
Introdução Informática a tecnologia da informação e comunicação.ppt
Introdução Informática a tecnologia da informação e comunicação.pptIntrodução Informática a tecnologia da informação e comunicação.ppt
Introdução Informática a tecnologia da informação e comunicação.ppt
 
Introdução para iniciantes em Informatica
Introdução para iniciantes em InformaticaIntrodução para iniciantes em Informatica
Introdução para iniciantes em Informatica
 
IntroducaoInformatica.ppt
IntroducaoInformatica.pptIntroducaoInformatica.ppt
IntroducaoInformatica.ppt
 
Introducao informatica
Introducao informaticaIntroducao informatica
Introducao informatica
 
IntroducaoInformatica (2).ppt
IntroducaoInformatica (2).pptIntroducaoInformatica (2).ppt
IntroducaoInformatica (2).ppt
 
IntroducaoInformatica01247tecinformatica.ppt
IntroducaoInformatica01247tecinformatica.pptIntroducaoInformatica01247tecinformatica.ppt
IntroducaoInformatica01247tecinformatica.ppt
 
Resumo sistemas operativos - joao marques
Resumo   sistemas operativos - joao marquesResumo   sistemas operativos - joao marques
Resumo sistemas operativos - joao marques
 
Apostila 2 conceitos de hardware e software
Apostila 2   conceitos de hardware e softwareApostila 2   conceitos de hardware e software
Apostila 2 conceitos de hardware e software
 
Aspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoAspectos do kernel Linux e Instalação
Aspectos do kernel Linux e Instalação
 
Aula01
Aula01Aula01
Aula01
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos IniciaisFundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
 
Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)
 
Microprocessadores
MicroprocessadoresMicroprocessadores
Microprocessadores
 

intro.pdf

  • 1. MC514 Sistemas Operacionais: Teoria e Prática Islene Calciolari Garcia Instituto de Computação UNICAMP
  • 2. Conteúdo • Introdução • Gerência de Processos – Programação concorrente • Gerência de Memória • Gerência de Arquivos • Entrada/Saı́da • Estudo de casos
  • 3. Referência principal Teoria Sistemas Operacionais Modernos Andrew S. Tanenbaum Segunda edição Pearson - Prentice Hall
  • 5. Introdução 1. Sistema operacional 2. História dos sistemas operacionais 3. Revisão sobre hardware 4. Conceitos básicos 5. Chamadas aos sistema 6. Estrutura de sistemas operacionais
  • 6. Sistema operacional Programas de Aplicação Shell Compiladores Editores Sistema operacional Hardware O sistema operacional isola o hardware das camadas superiores em um sistema computacional
  • 7. Sistema operacional • Máquina estendida oferece uma máquina virtual mais simples de programar do que o hardware • Gerenciador de recursos fornece uma alocação controlada de processadores, memória e disposistivos de entrada/saı́da
  • 8. História dos sistemas operacionais • A evolução dos sistemas operacionais está fortemente relacionada ao desenvolvimento do hardware • Primeira geração 1945–1955 • válvulas e painéis de programação • computação numérica: geração de tabelas de senos e cosenos.
  • 9. História dos sistemas operacionais ENIAC
  • 10. História dos sistemas operacionais Cartões perfurados $JOB, 10,6610802, MARVIN TANENBAUM $FORTRAN $LOAD $RUN $END Fortran program Data for program
  • 11. História dos sistemas operacionais • Segunda geração 1955–1965 • transistores e sistemas batch 1401 7094 1401 (a) (b) (c) (d) (e) (f) Card reader Tape drive Input tape Output tape System tape Printer
  • 12. História dos sistemas operacionais • Terceira geração 1965–1980 • circuitos intregados e multiprogramação • System/360: famı́lia de computadores compatı́veis
  • 13. História dos sistemas operacionais Monoprogramação Memória Job Sistema Operacional Com apenas um job em memória a CPU fica ociosa durante operações de E/S
  • 14. História dos sistemas operacionais CPU-bound Long CPU burst Short CPU burst Waiting for I/O (a) (b) Time IO-bound
  • 15. História dos sistemas operacionais Multiprogramação Memória Job D Job C Job B Job A Sistema Operacional Com vários jobs em memória a CPU pode ser melhor aproveitada
  • 16. História dos sistemas operacionais Multiprogramação A B C D D C B A Process switch One program counter Four program counters Process Time B C D A (a) (b) (c)
  • 17. História dos sistemas operacionais SPOOLing • Simultaneous Peripheral Operation OnLine • Leitura dos cartões passou a ser feita em paralelo à execução de outros programas • Os computadores auxiliares puderam ser aposentados
  • 18. História dos sistemas operacionais Tempo-compartilhado • Vários terminais conectados a um mainframe • Os usuários exigem resposta rápida
  • 19. História dos sistemas operacionais 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
  • 20. História dos sistemas operacionais Mini-computadores • Máquinas PDP-X (incompatı́veis entre si) • UNIX (inicialmente UNICS) – System V da AT&T – BSD (Berkeley Software Distribution) – POSIX (Portable Operating System-IX) – Minix – Linux
  • 21. História dos sistemas operacionais • Quarta geração 1980–hoje • Circuitos integrados de larga escala • Computadores pessoais • CP/M (Control Program for Microcomputers) • MS-DOS (MicroSoft Disk Operating System)
  • 22. História dos sistemas operacionais GUI (Graphical User Interface) • Macintosh • Windows – Interface gráfica sobre o MS-DOS • Unix – X Windows System
  • 23. História dos sistemas operacionais Diversidade atual • Mainframe • Servidores • Multiprocessados • Computadores pessoais • Tempo real • Embarcados • Cartões inteligentes
  • 24. História dos sistemas operacionais Ciclo de desenvolvimento Computadores Facilidades Mainframe Linguagens de alto nı́vel Minicomputadores Proteção de hardware Computadores pessoais Suporte a multiprogramação Sistemas embarcados Discos e sistemas de arquivos Cartões inteligentes
  • 25. Revisão sobre hardware Monitor Keyboard Floppy disk drive Hard disk drive Hard disk controller Floppy disk controller Keyboard controller Video controller Memory CPU Bus
  • 26. Revisão sobre hardware Processador • Responsável pela execução dos programas • Ciclo de execução: busca → decodifica → executa . . . Mov R1, A Mov R2, B PC (contador de programa) → Add R1, R2 . . .
  • 27. Revisão sobre hardware Pipelines e CPUs superescalares Fetch unit Fetch unit Fetch unit Decode unit Decode unit Execute unit Execute unit Execute unit Execute unit Decode unit Holding buffer (a) (b) • Maior eficiência • Maior complexidade dos compiladores e sistemas operacionais
  • 28. Revisão sobre hardware Pilha de execução . . . Parâmetros Registradores Variáveis locais SP (apontador de pilha) → ↓
  • 29. Revisão sobre hardware Modos de execução • Modo usuário – acesso restrito ao conjunto de instruções • Modo núcleo – acesso total ao conjunto de instruções • Chamadas ao sistema: permitem a mudança de modo de um programa
  • 30. Revisão sobre hardware Hierarquia de memória Registers Cache Main memory Magnetic tape Magnetic disk 1 nsec 2 nsec 10 nsec 10 msec 100 sec <1 KB 1 MB 64-512 MB 5-50 GB 20-100 GB Typical capacity Typical access time
  • 31. Revisão sobre hardware Registradores • Internos à CPU • Extremamente rápidos • Programas decidem o que deve ficar armazenado nos registradores
  • 32. Revisão sobre hardware Cache • Internos ou muito próximos à CPU • Divididos em linhas de cache • Controlados por hardware • Cache hit • Cache miss
  • 33. Revisão sobre hardware Memória Principal • Random Access Memory (RAM) • Compromisso entre preço e desempenho • Armazenamento volátil
  • 34. Revisão sobre hardware Disco Surface 2 Surface 1 Surface 0 Read/write head (1 per surface) Direction of arm motion Surface 3 Surface 5 Surface 4 Surface 7 Surface 6
  • 35. Revisão sobre hardware Fitas magnéticas • Utilizadas para cópias de segurança (backups) • Armazenamento de grandes quantidades de dados • Acesso seqüencial
  • 36. Revisão sobre hardware Outros tipos de memória • ROM (Read Only Memory) – rápida e barata – bootstrap loader está gravado em ROM • EEPROM (Electrically Erasable ROM) – podem ser apagadas (erros podem ser corrigidos) • CMOS – dependem de uma bateria – armazenam relógio e configurações
  • 37. Revisão sobre hardware Proteção e realocação • Como proteger um programa de outro • Como permitir que um programa seja executado em posições distintas da memória
  • 38. Revisão sobre hardware Proteção e realocação User program and data User program and data Operating System Address 0xFFFFFFFF Limit Base 0 (a) User-2 data User-1 data User program Operating System Base-2 Limit-2 Limit-2 Limit-1 Base-2 Base-1 (b) Limit-1 Base-1 Registers when program 1 is running Registers when program 2 is running
  • 39. Revisão sobre hardware Endereços fı́sicos e virtuais CPU package CPU The CPU sends virtual addresses to the MMU The MMU sends physical addresses to the memory Memory management unit Memory Disk controller Bus
  • 40. Revisão sobre hardware Entrada e Saı́da Monitor Keyboard Floppy disk drive Hard disk drive Hard disk controller Floppy disk controller Keyboard controller Video controller Memory CPU Bus • O controlador administra fisicamente o dispositivo • Driver de dispositivo: programa fornecido pelo fabricante que se comunica com o controlador
  • 41. Revisão sobre hardware Espera ocupada • A CPU programa um controlador para leitura • Entra em um loop de testes consecutivos até o dado estar disponı́vel • Lê o dado ⇒ Desperdı́cio de processamento
  • 42. Revisão sobre hardware Interrupções CPU Interrupt controller Disk controller Disk drive Current instruction Next instruction 1. Interrupt 3. Return 2. Dispatch to handler Interrupt handler (b) (a) 1 3 4 2 • A CPU programa o controlador e fica livre • Quando o dado está disponı́vel a CPU é interrompida
  • 43. Revisão sobre hardware Direct Memory Access CPU DMA controller Disk controller Main memory Buffer 1. CPU programs the DMA controller Interrupt when done 2. DMA requests transfer to memory 3. Data transferred Bus 4. Ack Address Count Control Drive • A CPU programa o DMA e fica livre • Quando o bloco está disponı́vel a CPU é interrompida
  • 44. Revisão sobre hardware Barramentos (Pentium System) ISA bridge Modem Mouse PCI bridge CPU Main memory SCSI USB Local bus Sound card Printer Available ISA slot ISA bus IDE disk Available PCI slot Key- board Mon- itor Graphics adaptor Level 2 cache Cache bus Memory bus PCI bus
  • 45. Conceitos básicos Processos • Programa em execução • Espaço de endereçamento Address (hex) FFFF 0000 Stack Data Text Gap
  • 46. Conceitos básicos Processos • Registradores – Contador de programa – ponteiro de pilha, – PSW (program status word) • Conjunto de arquivos abertos
  • 47. Conceitos básicos Hierarquia de processos A B D E F C
  • 49. Conceitos básicos Deadlock Suponha que dois processos querem gravar um CD-ROM a partir de dados gravados em uma fita magnética • Processo 1 – obtém CD-ROM – aguarda fita • Process 2 – obtém fita – aguarda CD-ROM
  • 50. Conceitos básicos Sistema de arquivos Root directory Students Faculty Leo Prof.Brown Files Courses CS101 CS105 Papers Grants SOSP COST-11 Committees Prof.Green Prof.White Matty Robbert
  • 51. Conceitos básicos Mount Root Floppy a b c d c d a b x y x y (a) (b)
  • 52. Conceitos básicos Links /usr/ast /usr/jim 16 81 40 mail games test (a) 31 70 59 38 bin memo f.c. prog1 /usr/ast /usr/jim 16 81 40 70 mail games test note (b) 31 70 59 38 bin memo f.c. prog1 $ ln /usr/jim/memo /usr/ast/note Ast e Jim podem compartilhar um diretório
  • 53. Conceitos básicos Segurança islene@emilia% ll -rw-r----- so.txt drwxr-xr-x threads/ islene@emilia% ll /usr/bin/passwd -r-s--x--x /usr/bin/passwd*
  • 54. Conceitos básicos Pipe Process Pipe Process A B $ grep str file | wc -l Mais eficiente que: $ grep str file > file-str $ wc -l file-str $ rm file-str
  • 55. Chamada ao sistema • Tipo especial de chamada de procedimento • Passa do modo usuário para o modo supervisor • Instrução TRAP
  • 56. cont = read(fd, buffer, nbytes) Return to caller 4 10 6 0 9 7 8 3 2 1 11 Dispatch Sys call handler Address 0xFFFFFFFF User space Kernel space (Operating system) Library procedure read User program calling read Trap to the kernel Put code for read in register Increment SP Call read Push fd Push &buffer Push nbytes 5
  • 57. Exemplos de chamadas ao sistema Gerência de processos • pid = fork() • waitpid(pid, &statloc, options) • s = execve(name, argv, environp) • exit(status)
  • 58. Exemplos de chamadas ao sistema Shell #define TRUE 1 while (TRUE) { /* repeat forever */ type_prompt( ); /* display prompt on the screen */ read_command(command, parameters); /* read input from terminal */ if (fork( ) != 0) { /* fork off child process */ /* Parent code. */ waitpid(−1, &status, 0); /* wait for child to exit */ } else { /* Child code. */ execve(command, parameters, 0); /* execute command */ } }
  • 59. Exemplos de chamadas ao sistema Gerência de arquivos • 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)
  • 60. Exemplos de chamadas ao sistema Gerência de arquivos e diretórios • s = mkdir(name,mode) • s = rmdir(name) • s = link(name1,name2) • s = unlink(name) • s = mount(special,name,flag) • s = umount(special)
  • 61. Exemplos de chamadas ao sistema Diversas • s = chdir(dirname) • s = chmod(name,mode) • s = kill(pid,signal) • seconds = time(&seconds)
  • 62. Exemplos de chamadas de sistema Unix Win32 fork CreateProcess waitpid WaitForSingleObject execve open CreateFile close CloseHandle
  • 63. Estrutura de sistemas operacionais Sistema monolı́tico • Conjunto de procedimentos • Visibilidade total (qualquer procedimento pode invocar outro procedimento)
  • 64. Estrutura de sistemas operacionais Sistema monolı́tico (estrutura simples) Main procedure Service procedures Utility procedures
  • 65. Estrutura de sistemas operacionais Sistema de camadas Layer Function 5 The operator 4 User programs 3 Input/output management 2 Operator-process communication 1 Memory and drum management 0 Processor allocation and multiprogramming
  • 66. Estrutura de sistemas operacionais Máquinas Virtuais • OS/360: sistema batch • CMS (Conversational Monitor System) I/O instructions here Trap here Trap here System calls here Virtual 370s CMS CMS CMS VM/370 370 Bare hardware
  • 67. Estrutura de sistemas operacionais Exonúcleos • Clone de uma máquina • Recursos alocados individualmente • Sem transparência
  • 68. Estrutura de sistemas operacionais Modelo cliente-servidor Client process Client process Process server Terminal server File server Memory server Microkernel User mode Kernel mode Client obtains service by sending messages to server processes
  • 69. Estrutura de sistemas operacionais Modelo cliente-servidor em um ambiente distribuı́do Machine 1 Machine 2 Machine 3 Machine 4 Client Kernel File server Kernel Process server Kernel Terminal server Kernel Message from client to server Network
  • 70. Resumo 1. Sistema operacional 2. História dos sistemas operacionais 3. Revisão sobre hardware 4. Conceitos básicos 5. Chamadas aos sistema 6. Estrutura de sistemas operacionais Próximo tópico: Processos e threads