• Nenhum resultado encontrado

Estudo de caso Windows

N/A
N/A
Protected

Academic year: 2021

Share "Estudo de caso Windows"

Copied!
55
0
0

Texto

(1)

Estudo de caso

Windows

(2)

Hist´

oria do Windows

• MS-DOS

• Consumer Windows (95/98/Me)

• Windows NT

(3)

CP/M

• 1974

• Intel, processador 8080, 8 bits

• Control Program for Microcomputers

(4)

IBM-PC

• In´ıcio dos anos 80

• Qual sistema utilizar?

(5)

MS-DOS

• QDOS (Quick and Dirty Operating System)?

• Bill Gattes

• Comprado da Seattle Computer Products por 50 mil

d´olares

(6)

MS-DOS

• linha de comando

• 16 bits

(7)

Windows 1.0

(8)

Windows 2.0

• 1987

(9)

Windows 3.0

• 1990

(10)

Windows

• Interface gr´afica sobre o MS-DOS

(11)

Windows 95

• N˜ao elimina o MS-DOS, mas transfere funcionalidades

(12)

Windows 95

• Mem´oria virtual • Multiprograma¸c˜ao

• 32 bits, mas v´arias partes de 16 bits

(13)

Windows 98

• Mais funcionalidades s˜ao transferidas do MS-DOS para o

Windows

(14)

Windows 98

• 4 GB de mem´oria virtual

– 2 GB privados para um processo – 1 GB compartilhado (bugs!)

– 1 MB para compatibilidade com o MS-DOS

• Kernel n˜ao era re-entrante

– Mutex ´unico trava todo o sistema

– Um processo pode ter de esperar por outro n˜ao

relacionado

• Integra¸c˜ao entre o desktop e a Internet – Acusa¸c˜ao de monop´olio

(15)

Windows Me

Windows Millennium Edition

(16)

Windows Me

• Facilidades extras:

– Simplificou compartilhamento de imagens e m´usicas – Aplica¸c˜oes voltadas para a Internet

– Jogos multiusu´ario

(17)

Windows NT

• Conclus˜ao ao final dos anos 80:

– Seria dif´ıcil construir um sistema 32 bits sobre o

MS-DOS 16 bits

• Windows New Technology

• Baseado no VMS da DEC (contrata¸c˜ao de David Cutler) • Vis˜ao importante: computadores pessoais seriam usados

em aplica¸c˜oes comerciais

(18)

Windows NT 3.1

• Primeira vers˜ao em 1993. N´umero escolhido para

combinar com o Windows 3.1

(19)

Windows NT 3.1

• Apesar de muito superior, as pessoas n˜ao quiseram

trocar o Windows 3.1 pelo Windows NT 3.1

– NT precisava de m´aquinas mais poderosas – N˜ao havia muitas aplica¸c˜oes dispon´ıveis

• Fracasso do NT fez com que fossem lan¸cados o

(20)

Windows NT 4.0

• Algum espa¸co no mercado de servidores

• Mesma interface do Windows 95

• Portabilidade

– 16 milh˜oes de linhas de c´odigo (C, C++ e assembly)

(21)

Windows 95/98 e Windows NT

Item Windows 95/98 Windows NT

Full 32-bit system? No Yes

Security? No Yes

Protected file mappings? No Yes

Private addr space for each MS-DOS prog? No Yes

Unicode? No Yes

Runs on Intel 80x86 80x86, Alpha, MIPS, ...

Multiprocessor support? No Yes

Re-entrant code inside OS? No Yes

Plug and play? Yes No

Power management? Yes No

FAT-32 file system? Yes Optional

NTFS file system No Yes

Win32 API? Yes Yes

Run all old MS-DOS programs? Yes No

(22)

Windows 2000

• Mesma interface do Windows 98

• Windows NT 5.0 com um nome mais neutro

• Modo usu´ario e modo supervisor

• Cluster: duas ou mais m´aquinas parecem uma ´unica

para o mundo externo

(23)

Vers˜

oes do Windows 2000

Version Max RAM CPUs Max clients Cluster size Optimized for

Professional 4 GB 2 10 0 Response time

Server 4 GB 4 Unlimited 0 Throughput

Advanced server 8 GB 8 Unlimited 2 Throughput

Datacenter server 64 GB 32 Unlimited 4 Throughput

• Diferen¸cas entre as vers˜oes s˜ao m´ınimas

(24)

Tamanho do c´

odigo de alguns

Sistemas Operacionais

Year AT&T BSD MINIX Linux Solaris Win NT

1976 V6 9K 1979 V7 21K 1980 4.1 38K 1982 Sys III 58K 1984 4.2 98K 1986 4.3 179K 1987 SVR3 92K 1.0 13K 1989 SVR4 280K 1991 0.01 10K 1993 Free 1.0 235K 5.3 850K 3.1 6M 1994 4.4 Lite 743K 1.0 165K 3.5 10M 1996 2.0 470K 4.0 16M 1997 2.0 62K 5.6 1.4M 1999 2.2 1M 2000 Free 4.0 1.4M 5.8 2.0M 2000 29M        

(25)

Ciclo de desenvolvimento do

Windows

• Centenas de programadores trabalham no Windows

durante o dia

• Trechos de c´odigo finalizado s˜ao submetidos • As 18:00hs, o sistema ´e reconstru´ıdo`

• O novo sistema operacional ´e distribu´ıdo e submetido a

uma s´erie de testes durante a noite

(26)

Windows XP

• Sucessor do Windows 2000

• Mais testes para devices drivers

• Eliminou alguns cen´arios de reboot

• Estruturas cr´ıticas do kernel s˜ao read-only • . . .

(27)

Programa¸c˜

ao no Windows 2000

Win32 Application Programming Interface

• Chamadas ao sistema

– n˜ao s˜ao p´ublicas

– mudam de vers˜ao para vers˜ao

• Win32 API - conjunto de fun¸c˜oes bem definidas que

fazem as chamadas ao sistema ou operam em espa¸co do usu´ario

(28)

Win32 API

Win32

application program

Win32 Application Programming Interface

Win32s

Windows 3.x Windows Windows NT Window 2000

95/98/Me

• Existem pequenas varia¸c˜oes; nem tudo funciona da

(29)

Tipos de fun¸c˜

oes do Win32 API

• Processos, threads • Gerˆencia de mem´oria • Sincroniza¸c˜ao • I/O ⇒ Interface gr´afica

(30)

Objetos do n´

ucleo

• Arquivos, processos, threads, pipes, . . .

• Toda chamada retorna um handle, que pode ser usado

posteriormente

• Handles possuem permiss˜ao de acesso

• N˜ao podem ser simplesmente passados de um processo

para outro

• Windows n˜ao ´e orientado a objetos

(31)

Informa¸c˜

oes de controle

• Windows 3.1: v´arios arquivos .ini • A partir do Windows 95: registry

– Banco de dados centralizado

– Semelhante a um sistema de arquivos: diret´orios,

(32)

Registry

Key Description

HKEY_LOCAL _MACHINE Properties of the hardware and software

HARDWARE Hardware description and mapping of hardware to drivers SAM Security and account information for users

SECURITY System-wide security policies

SOFTWARE Generic information about installed application programs SYSTEM Information for booting the system

HKEY_USERS Information about the users; one subkey per user USER-AST-ID User AST’s profile

AppEvents Which sound to make when (incoming email/fax, error, etc.) Console Command prompt settings (colors, fonts, history, etc.)

Control Panel Desktop appearance, screensaver, mouse sensitivity, etc. Environment Environment variables

Keyboard Layout Which keyboard: 102-key US, AZERTY, Dvorak, etc. Printers Information about installed printers

Software User preferences for Microsoft and third party software HKEY_PERFORMANCE _DATA Hundreds of counters monitoring system performance HKEY_CLASSES_ROOT Link to HKEY_LOCAL _MACHINE\SOFTWARE\CLASSES HKEY_CURRENT_CONFIG Link to the current hardware profile

(33)

Gerˆ

encia de entradas no Registry

• Fun¸c˜oes dispon´ıveis na API

Win32 API function Description

RegCreateKeyEx Create a new registry key RegDeleteKey Delete a registry key

RegOpenKeyEx Open a key to get a handle to it

RegEnumKeyEx Enumerate the subkeys subordinate to the key of the handle RegQueryValueEx Look up the data for a value within a key

(34)

Estrutura do Windows 2000

POSIX program POSIX subsystem Win32 program Win32 subsystem OS/2 program OS/2 subsystem Service process System interface (NT DLL.DLL) System services Hardware

Hardware Abstraction layer (HAL) Kernel File sys I/O mgr Object mgr Process mgr Memory mgr Security mgr Cache mgr PnP mgr Power mgr Config mgr LPC mgr Win32 GDI Video driver D K er nel mode User mode

(35)

Hardware Abstraction Layer (HAL)

• Portabilidade

– f´acil nos n´ıveis mais altos

– dif´ıcil para o c´odigo que trabalha diretamente no

hardware

• HAL ´e uma camada que abstrai detalhes e esconde

(36)

Hardware Abstraction Layer

Device

registers

Device

addresses Interrupts DMA Timers

Spin locks BIOS Disk RAM Printer 1. 2. 3. MOV EAX,ABC ADD EAX,BAX BNE LABEL MOV EAX,ABC MOV EAX,ABC ADD EAX,BAX BNE LABEL MOVE AX,ABC ADD EAX,BAX BNE LABEL

Hardware abstraction layer

• Por quest˜oes de eficiˆencia, pode ser interessante fazer

(37)

A camada do n´

ucleo

• Constr´oi abstra¸c˜oes de n´ıvel mais alto a partir das

fornecidas pelo HAL

• A maior parte est´a escrita em C • Troca de contexto

• Objetos de controle

– DPC (Deferred Procedure Call)

– APC (Asynchronous Procedure Call)

(38)

Executive

• Dividido em m´odulos – Object manager – I/O manager – Process manager – Memory manager – Security manager – Cache manager – Plug-and-play manager – Power manager – Configuration manager

– Local procedure call manager

(39)

Tipos de objetos

Type Description

Process User process

Thread Thread within a process

Semaphore Counting semaphore used for interprocess synchronization Mutex Binary semaphore used to enter a critical region

Event Synchronization object with persistent state (signaled/not) Port Mechanism for interprocess message passing

Timer Object allowing a thread to sleep for a fixed time interval Queue Object used for completion notification on asynchronous I/O Open file Object associated with an open file

Access token Security descriptor for some object

Profile Data structure used for profiling CPU usage

Section Structure used for mapping files onto virtual address space

Key Registry key

Object directory Directory for grouping objects within the object manager Symbolic link Pointer to another object by name

Device I/O device object

(40)

Estrutura de um objeto

Object

header

Object

data Object-specific data Object name

Directory in which the object lives

Security information (which can use object) Quota charges (cost to use the object) List of processes with handles

Reference counts

Pointer to the type object

Type name Access types Access rights Quota charges Synchronizable? Pageable Open method Close method Delete method Query name method Parse method

(41)

Tabelas de handles e tipos de objetos

Thread 1 Mutex 1 Mutex 2 Mutex 3 Thread 2 Thread 3 Thread 4 Thread type object Mutex type object Handle table for process A Handle table for process B 1010 1011 1110 1111 0101

(42)

Diret´

orios no espa¸co de nomes

Directory Contents

?? Starting place for looking up MS-DOS devices like C: Device All discovered I/O devices

Driver Objects corresponding to each loaded device driver ObjectTypes The type objects shown in Fig. 0-0

Windows Objects for sending messages to all the windows

BaseNamedObjs User-created objects such as semaphores, mutexes, etc. Arcname Partition names discovered by the boot loader

NLS National language support objects

FileSystem File system driver objects and file system recognizer objects Security Objects belonging to the security system

(43)

Dynamic Link Libraries

• x.dll - arquivo contendo um conjunto de procedimentos

relacionados

• Chamadas a procedimentos em DLLs s˜ao feitas de

maneira indireta por meio de um vetor

• Apenas uma c´opia da DLL existe na mem´oria em um

(44)

Duas maneiras de implementar as

chamadas de fun¸c˜

oes da API

Gdi32.dll User32.dll Kernel32.dll Call Call Call Operating system User process 2a 3a 2b 3b 4b System interface (ntdll.dll) Enviroment subsystem process (csrss.exe) Win32 subsys 1 User space Kernel space

(45)

Conceitos b´

asicos sobre gerˆ

encia de

processos e threads

Name Description

Job Collection of processes that share quotas and limits Process Container for holding resources

Thread Entity scheduled by the kernel

(46)

Relacionamento entre jobs, processos

e threads

Address space Thread Process User stack

Kernel mode thread stack Access token

Process handle

table P T T T T P

(47)

Prioridades para Escalonamento

Win32 process class priorities Above Below

Realtime High Normal Normal Normal Idle Time critical 31 15 15 15 15 15

Highest 26 15 12 10 8 6

Win32 Above normal 25 14 11 9 7 5

thread Normal 24 13 10 8 6 4

priorities Below normal 23 12 9 7 5 3

Lowest 22 11 8 6 4 2 Idle 16 1 1 1 1 1                  

(48)

Filas de prioridades

Next thread to run Priority

System priorities

User priorities Zero page thread

31 24 16 8 1 0 Idle thread

(49)

Invers˜

ao de prioridades

12

4 8 12 Does a down on the

semaphore and blocks

Semaphone Semaphone

Blocked

Running

Ready

Waiting on the semaphore

Would like to do an up on the semaphore but

never gets scheduled

(50)

Emula¸c˜

ao do MS-DOS

Process MS–DOS program 1 2 3 4 Trampoline Operating system Ntvdm

(51)

Gerˆ

encia de mem´

oria

Process A 4 GB 2 GB 0 Nonpaged pool Paged pool A's page tables Stacks, data, etc

HAL + OS System data Process A's private code and data Process B Nonpaged pool Paged pool B's page tables Stacks, data, etc

HAL + OS System data Process B's private code and data Process C Nonpaged pool Paged pool C's page tables Stacks, data, etc

HAL + OS System data Process C's private code

and data

Bottom and top 64 KB are invalid

(52)

Mapeamento de p´

aginas

Process A Process B

Backing store on disk

Paging file Lib.dll Prog1.exe Prog2.exe Program Program Shared library Shared library Data Stack Stack Data Region

(53)

Gerˆ

encia de p´

aginas

Working sets

Zero page needed (8) Page read in (6)

Soft page fault (2)

Mod-ified page list Standby page list Free page list Zeroed page list Bad RAM page list Top Bottom Modified page writer(4) Dealloc(5) Zero page thread (7) Page evicted from a working set (1) Process exist (3)

(54)

Gerˆ

encia de p´

aginas

X X X X State Cnt WS Other PT Next Clean Dirty Clean Active Clean Dirty Active Dirty Free Free Zeroed Active Active Zeroed 13 12 11 20 10 8 4 7 6 5 4 3 6 2 1 14 0 14 Standby Modified Free Zeroed Page tables Page frame database

Zeroed List headers

(55)

Mais informa¸c˜

oes sobre o Windows

• http://en.wikipedia.org/wiki/Windows

Referências

Documentos relacionados

O s critérios de pontuação para apresentação do seminário: - Entregar resumo por escrito, com a essência do conteúdo central do seminário em no máximo três folhas, com oito dia

Tecle , será exibido no display o peso médio em kg das pesagens realizadas desde a última vez que a MGR 4000 Campo foi

Aberta à sessão, o Pregoeiro procederá com a abertura dos envelopes “A” contendo as declarações e propostas comerciais, que deverão ser rubricadas por ele e membros

Até se pode fazer um pesquisador a partir de 30 anos, mas isso é o menos recomendável, porque um profissional quando chega aos 30 anos já está no meio da sua

“O planejamento não é uma tentativa de predizer o que vai acontecer, é um instrumento para raciocinar agora, sobre que trabalhos e ações serão necessários hoje, para merecermos

No Centro Universitário Franciscano, a revista Disciplinarum Scientia serve como exemplo para divulgação dessas práticas, tendo em vista que oportuniza espaço para a publicação

4.6 Efetuar o pagamento à contratada, até o 15º (décimo quinto), dia a contar do recebimento definitivo, mediante apresentação da nota fiscal/fatura

Durante o curso, os alunos trabalham com várias ferramentas de estatística e machine learning, como análise de classificação e agrupamento (clustering), análise fatorial