Linux x Windows

Transcrição

Linux x Windows
FACENS - Faculdade de Engenharia de Sorocaba
Sistemas Operacionais
Estudo de Caso
Processos
GNU/Linux
• Linus Torvalds — 1991, desenvolveu o núcleo do SO
• baseado no Minix
• clone do Unix
• kernel hı́brido monolı́tico
• sob licença GPL
PID = 501
sh
PID = 748
New process
sh
1. Fork call
Fork code
PID = 748
ls
Same process
3. exec call
2. new sh
created
Allocate child's process table entry
Fill child's entry from parent
Allocate child's stack and user area
Fill child's user area from parent
Allocate PID for child
Set up child to share parent's text
Copy page tables for data and stack
Set up sharing of open files
Copy parent's registers to child
4. sh overlaid
with ls
Exec code
Find the executable program
Verify the execute permission
Read and verify the header
Copy arguments, environ to kernel
Free the old address space
Allocate new address space
Copy arguments, environ to stack
Reset signals
Initialize registers
Processos
• Gerenciador – mantém uma lista de todos os
processos usando duas estruturas de dados:
– lista circular – examinar todas as tarefas
– tabela hash – localizar/acessar uma tarefa
• processos interativos – constante interação
com usuário
• processos em lote – baixa prioridade
Escalonamento (kernel 2.6)
• Filas por prioridade – 140 nı́veis
– 1 a 100 – processos de tempo real
– 101 a 140 – demais processos
• ↑ prioridade, ↑ qualidade de serviço, ↑ fração
de tempo de CPU, ↓ tempo de resposta
• processos de tempo real – alta prioridade
Profa. Tiemi Christine Sakata
1
FACENS - Faculdade de Engenharia de Sorocaba
Sistemas Operacionais
Escalonamento de Processos
Highest
priority
-4
Waiting for disk I/O
-3
Waiting for disk buffer
-2
Waiting for terminal input
-1
Waiting for terminal output
0
Waiting for child to exist
0
User priority 0
1
User priority 1
2
User priority 2
3
User priority 3
Lowest
priority
Gerência de Memória
Process waiting
in kernel mode
• Paginação por demanda
• Tabela de página com três nı́veis
Process waiting
in user mode
• Algoritmo de substituição de página: LRU
Process queued
on priority level 3
Escalonamento (kernel 2.6)
• Processos de tempo real: prioridade estática
Gerência de Memória
– Round Robin
Page
– FCFS
Global
directory
Page
middle
directory
Word selected
Page
table
• Demais processos: prioridade dinâmica
(prioridade base + tempo restante)
– Round Robin (20 ms)
– I/O bound tem maior prioridade que CPU
bound
Profa. Tiemi Christine Sakata
Directory
Middle
Page
Offset
Virtual address
2
FACENS - Faculdade de Engenharia de Sorocaba
Sistemas Operacionais
E/S
Streams
• dispositivos de E/S são tratados como arquivos
e acessados com read e write
• bloco – endereçado e acessado individualmente,
ou seja, é possı́vel acessar o bloco 231 sem
passar pelos blocos de 0 a 130. Ex.: disco
• caracter – muitas vezes precisam ser
especialmente controlados (apagar uma
entrada digitada no teclado). Exs.: teclado,
mouse, impressoras,...
Reading/writing files
Cooked
interface to
/dev/tty
File system
Line disciplines
Kernel
A
B
Stream head
Stream head
TCP
TCP
Kernel mode
IP
Ethernet driver
Token ring driver
Ethernet controller
Token ring controller
Ethernet
Token Ring
Sistema de Arquivos
E/S
User
space
Computer
Process
User mode
Buffer cache
Raw interface
to/dev/tty
VFS (Virtual File System):
• Permite diferentes SAs: sistema de arquivos do
Minix, MS-DOS, VFAT, NTFS, Ext2, Ext3,
ReiserFS
• projetado segundo orientação a objetos
Disk drivers
Terminal drivers
• inode-object – representam arquivos
Disk
• file-object – usados para acesso de arquivos
• file-system-object – sistema de arquivos
Profa. Tiemi Christine Sakata
3
FACENS - Faculdade de Engenharia de Sorocaba
Sistemas Operacionais
História do Windows
Sistema de Arquivos
Parent’s
file
descriptor
table
Child’s
file
descriptor
table
• Windows 1.0, 1985
Open file
description
i-node
File position
R/W
Pointer to i-node
Link count
File position
R/W
Pointer to i-node
Mode
• Windows 2.0, 1987
Uid
Gid
• Windows 3.0, 1990 (sucesso comercial)
File size
Times
Addresses of
first 10
disk blocks
Unrelated
process ‘
file
descriptor
table
Pointers to
disk blocks
• Interface gráfica sobre o MS-DOS
Single indirect
• Espaço de endereçamento compartilhado
Double indirect
Triple indirect
Triple
indirect
block
• Windows 95/98/Me/2000
Double
indirect
block
Single
indirect
block
• Windows XP, 2001
• Windows Vista, 2007
ext2:::????
MS-DOS
DLL (Dynamic Link Libraries)
• IBM-PC, 1981
Gdi32.dll
Call
User32.dll
Call
Kernel32.dll
Call
• CP/M (Digital)
Enviroment
subsystem
process
(csrss.exe)
– Gary Kildall não fechou negócio com a IBM
• MS-DOS (MicroSoft Disk Operanting System)
User
space
1
2b
Win32
subsys
2a
3b
– DOS foi comprado da Seattle Computer
Products por 50 mil dólares
• 16 bits
User
process
System interface (ntdll.dll)
4b
Kernel
space
3a
Operating system
• linha de comandos
Profa. Tiemi Christine Sakata
4
FACENS - Faculdade de Engenharia de Sorocaba
Sistemas Operacionais
Escalonamento no Windows
Processos e Threads
Priority
31
Job
Next thread to run
Thread
Address
space
System
priorities
Process
User
stack
16
User
priorities
Process
handle
table
24
8
Kernel mode thread stack
P
T T
Access token
T T
P
1
Zero page thread 0
Idle thread
Escalonamento Windows
NT/2000/XP
Escalonamento no Windows
• Escalonador escolhe thread de maior prior.
• I/O bound tem maior prioridade que CPU
bound
• prioridade:
– 16 a 31 : tempo real
– 1 a 15: outros processos
• prioridade 0 – zero thread, responsável por
zerar as páginas livres do sistema.
Profa. Tiemi Christine Sakata
• Proc. tempo real – não-preemptivos, prioridade
estática
• Outros – bônus de aumento de prioridade:
– no retorno de I/O (1 para disco e 6 para
teclado
– após operação de sincronização
5
FACENS - Faculdade de Engenharia de Sorocaba
Sistemas Operacionais
Gerência de Memória (NT)
I/O
User process
4GB de memória virtual (2GB para usuários e
2GB para SO)
User
program
Win32
Process A
Process B
Process C
4 GB
2 GB
Nonpaged pool
Paged pool
Nonpaged pool
Paged pool
Nonpaged pool
Paged pool
A's page tables
B's page tables
C's page tables
Stacks, data, etc
Stacks, data, etc
Stacks, data, etc
HAL + OS
HAL + OS
HAL + OS
System data
System data
System data
Process A's
private code
and data
Process B's
private code
and data
Process C's
private code
and data
Rest of windows
Filter
Monolithic
Function
Function
Bus
Bus
Driver
stack
Hardware abstraction layer
Controller
Controller
Controller
0
Bottom and top
64 KB are invalid
Gerência de Memória
Sistema de Arquivos 2000/XP
• Quando um processo é carregado, n páginas
são alocadas
• NTFS (New Technology File System), 1990 –
alto desempenho, flexibilidade e segurança
• Páginas com três estados
• divide o disco em clusters lógicos (quantidade
de blocos utilizadas de cada vez) – padrão 4KB
– livre: não utilizada
– reservada: alocadas, porém não mapeadas
– fı́sico/dedicadas: mapeadas para o processo
• Tabela de página de 2 nı́veis
• Alg. de subst.: LRU + conjunto de trabalho
Profa. Tiemi Christine Sakata
• MFT (Master File Table) – mantém atributos
dos arquivos
• Implementa tolerância a falhas através de
transações (partes – arquivo log).
6
FACENS - Faculdade de Engenharia de Sorocaba
Sistemas Operacionais
Tabela de arquivos-mestre do NTFS
1 KB
Sistema de Arquivos 2000/XP
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
First user file
(Reserved for future use)
(Reserved for future use)
(Reserved for future use)
(Reserved for future use)
$Extend Extentions: quotas,etc
$Upcase Case conversion table
$Secure Security descriptors for all files
$BadClus List of bad blocks
$Boot
Bootstrap loader
$Bitmap Bitmap of blocks used
$
Root directory
$AttrDef Attribute definitions
$Volume Volume file
$LogFile Log file to recovery
$MftMirr Mirror copy of MFT
$Mft
Master File Table
• Change Journal – armazena alterações
ocorridas no SA. Utilizado para backup
• Proteção: leitura, escrita e execução
Metadata files
• Metadados: 16 registros com informações
sobre gerência do do NTFS
Um Registro da MTF
(três séries e nove blocos)
Standard
info header
File name
header
Data
header
Info about data blocks
Record
header
MTF
record
Header Run #1 Run #2 Run #3
Standard
info
File name
0
9
20
4
64
2
80
3
Unused
Disk blocks
Blocks numbers
20-23
Profa. Tiemi Christine Sakata
64-65
80-82
7