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