Você está na página 1de 52

Universidade de So Paulo Instituto de Cincias Matemticas e de Computao Departamento de Sistemas de Computao

SSC 140 - SISTEMAS OPERACIONAIS I


Turmas A e B

Aula 20 Exemplo de SO - Windows


Sarita Mazzini Bruschi Regina Helena Carlucci Santana Marcos Jos Santana Glenda Michele Botelho
Slides adaptados de Luciana A. F. Martimiano

Roteiro
Histria Famlia Windows; Estrutura do Windows 2000

Win32 API;

Gerenciamento de Processos; Gerenciamento de Memria; Gerenciamento de E/S;

Histria

Sistemas Operacionais da Microsoft podem ser divididos em trs famlias:


MSDOS; Consumer Windows (3.11/95/98/ME); Windows NT/2000/XP/Server 2003/Vista/Server 2008/7/Server 2008 R2; MS-DOS: Lanado em 1981 (8KB); Monousurio; Linha de Comando; Baseado no CP/M (processador 8-bits Z80); MS-DOS 2.0 usava 24 KB da RAM;

A partir do IBM PC/AT, surgiu o DOS 3.0 usando 36KB;


3

Histria

MS-DOS:

Em todas as verses, a interface jamais foi mudada;


Interface grfica: Windows 1.0 (1985); Windows 2.0 (1987); Windows 3.0 (1990 para 386); Windows 3.1 e 3.11 (sucesso);

Inspirada no Apple Lisa (precursor Apple Macintosh);

Todos os programas executavam no mesmo espao de endereamento (um bug em qualquer um deles trava o sistema inteiro);

Histria

Simulador Windows 3.11

http://www.michaelv.org.nyud.net/

Histria

Windows 95:

Surgiu em 1995;
Ainda tinha o MS-DOS, verso 7.0; Era um ambiente grfico (shell) Possua todas as caractersticas de um SO, como memria virtual, multiprogramao e gerenciamento de processos; No era totalmente 32 bits, tendo parte do cdigo escrito em linguagem de montagem de 16bits para compatibilidade com MS-DOS; Ainda usava o sistema de arquivos do MS-DOS, sendo a nica diferena a possibilidade de ter nomes mais longos
6

Histria

Windows 98: mais funcionalidades migram do MS-DOS para a parte Windows;


Ainda com o MS-DOS, verso 7.1; Interface mais prxima Internet, o que gerou um processo judicial por monoplio ilegal; um sistema operacional por si s;

Dois grandes problemas do Win98:


1. Embora definido como um sistema multiprogramado, o Kernel no era.

Possibilidade de inconsistncia de estruturas de dados do ncleo Utiliza um semforo mutex gigante (compartilhado pelos processos ) para todo o sistema;

Um processo pode ter que esperar que um outro processo deixe o Kernel; 7

Histria

Windows 98:
2. Cada processo possui um endereamento virtual de 4GB;

espao

de

2Gb para os processos; 1Gb (podendo ser escrito) para compartilhamento entre os processos; 1Gb para compartilhamento entre os processos, inclusive o kernel, para eles acessarem os vetores de interrupo do MS-DOS;

No era possvel no deixar estruturas de dados do ncleo no espao do usurio Essencial para rodar velhos programas MS-DOS sob o Win98;
8

Histria

Windows ME: apenas uma reviso do 98 lanada em 2000;

Maneira adequada para catalogar filmes, imagem, musica; suporte para redes caseiras, para jogos multiusurios, para comunicao instantnea e para conexes banda larga. Uma caracterstica interessante era a possibilidade de restaurar o sistema depois de alguma configurao mal

sucedida;

Mudar a configurao do vdeo de 640X480 para 1024X768;


9

Histria

Windows NT (New Technology):

Projeto surgiu no final dos anos 80 com o intuito de criar um Windows inteiramente 32Bits;

Lanamento em 1993 Verso 3.1;

Compatibilidade Windows 3.1

com

nmero

da

verso

do

Exigia mais memria e no havia programas de 32 bits que ele pudesse executar.

Escrito em C com 3,1 milhes de linhas de cdigo

Funes de baixo nvel (tratamento de interrupes) em linguagem de mquina. 10

Histria

WinNT 4.0 (1996)

Principal objetivo: desenvolver um SO multitarefa tanto para ambiente monousurio quanto multiusurio;

Portabilidade; Segurana; 16 milhes de linhas de cdigo; Funes de baixo nvel (tratamento de interrupes) em linguagem de mquina.

Escrito em C, C++ (interface);


Foi influenciado pelo desenvolvimento do OS/2 da IBM; Verses para 80x86, Alpha, MIPS, PowerPC; Evoluo da interface grfica, semelhante ao Win95;
11

Histria Windows 95/98 versus NT


Caracterstica Puro 32-Bit
Polticas de segurana Mapeamento de Arquivos Protegidos

Windows 95/98 No
No No

Windows NT Sim
Sim Sim

End. Privado para cada programa MSDOS


Unicode Verses Multiprocessador Plug and Play

No

Sim

No 80x86 No Sim

Sim 80x86, Alpha, MIPS,... Sim No


12

Histria Windows 95/98 versus NT


Caracterstica Gerenciamento de Energia FAT-32 Windows 95/98 Sim Sim Windows NT No Opcional

NTFS
Maior proteo no Kernel (com multiprogramao) Win32 API Executa todos os antigos programas MS-Dos Algum dado crtico pode ser sobrescrito pelo usurio?

No
No

Sim
Sim

Sim Sim

Sim No

Sim

No

13

Histria

Windows 2000:

Lanamento em 1999 (NT 5.0); Lanou a era NT para o usurio comum; Herdou toda estrutura do NT 4.0, melhorado com a interface ao usurio do Windows 98 (plug and play, barramentos USB, etc.); Melhora na internacionalizao de idiomas; MS-DOS completamente excludo, assim como no NT;

Interface de linha de comandos de 32 bits com algumas funcionalidades do MS-DOS;

Menos portvel que o NT;


14

Histria

Windows 2000:

Servios para ambientes distribudos, com multiprocessadores e de rede; Ambiente multiprogramado com proteo aos processos;

Cada processo possui um endereamento virtual privado de 32 bits 4Gb (paginao sob demanda);

Suporta multithreading; Suporte a execuo em multiprocessadores simtricos com at 32 CPUs (verso Datacenter Server); Possui mais de 29 milhes de linhas de cdigo em C; Todo o sistema de janelas e GUI fazem parte do kernel; Active Directory (LDAP - Lightweight Directory Access Protocol): suporte para administrao de usurios e grupos OU (Organization Unit)
15

Histria

Windows XP (Windows eXPerience):


Lanado em 2001 (NT 5.1)


Tentativa de unir em um nico produto o coorporativo e o mercado de usurios domsticos; Conectividade Internet segurana; mercado

Mecanismos de proteo ao sistema de arquivos;


Mecanismos de proteo contra pirataria: Windows Product Activation WPA criao de um cdigo nico para cada instalao (identificadores como nmero de srie da BIOS, do HD, do endereo fsico da placa de rede (endereo MAC Media Access Control); Considerada por diversos anos como a melhor verso para usurios domsticos;
16

Histria

Windows Server 2003

Lanado em 2003 (5.2) Sucessor do Windows 2000 Server

Tambm considerado como um sucessor do Windows XP para ambientes coorporativos

Windows Server 2003 R2

Apresenta diversas melhorias em relao ao seu antecessor

17

Histria

Windows Server 2008

Verso mais recente do Server lanada em 2008 Prov servios e recursos para outros sistemas em uma rede Verso Windows Web Server 2008

Projetada para fornecer servios web

Windows Server 2008 R2

18

Histria

Windows Vista

Lanado em 2007 (NT 6.0) 6 verses adaptadas a como o usurio deseja utilizar o seu computador

Starter Edition Home Basic Home Premium Vista Business Vista Enterprise Vista Ultimate

Ampliou as ferramentas integradas para segurana (Windows Defender e o Windows Firewall)


19

Histria

Windows 7

Lanado em 2009 Inclui diversas alteraes na parte grfica Um Windows Vista melhorado

20

Histria

Windows Vista

Windows7

50 milhes de linhas de cdigo (sem o SP1) 6 anos de desenvolvimento a partir do zero 6 bilhes de dlares. 4 mil programadores, 4 mil testadores Cdigo mal projetado, spaghetti 65 milhes de linhas de cdigo, atualmente 7 bilhes de dlares Mesmo Kernel do Vista, mas foi "limpado" de milhares de linhas de cdigo repetidas e chamadas multiplicadas. E resolveram modularizar o cdigo.

Fontes

http://tecnologia.uol.com.br/ultnot/2007/01/29/ult4213u21.jhtm http://engenhariadesoftware.blogspot.com/2007/03/por-que-o-windowsvista-atrasou.html http://info.abril.com.br/forum/viewtopic.php?f=231&t=1105 http://www.g6-team.com/f1175/windows-7-rc-ja-disponivel-151755/


21

Histria

Linha da histria do Windows

22

Histria Comparando tamanhos

Verso e Tamanho (linhas de cdigo)

23

Estrutura do Win2000 Win32 API


Chamadas de Sistema no Windows no so pblicas; Conjunto de chamadas API Win32

Bibliotecas que fazem chamadas ao sistema; UNIX: pblica e a interface mnima; API Win32 : interface ampla, fcil de entender, mas com muitas funes realizando a mesma operao;
24

API Win32 diferente do UNIX


Estrutura do Win2000 Win32 API

Chamadas da API criam objetos (arquivos, processos, threads...);

no

Kernel

Retorna manipulador (handle);

Possui funes diversas para E/S, gerenciamento de processos e GUI; Compatvel com a maioria das verses Windows, porm h pequenas diferenas:

Segurana (9x); UNICODE (somente NT, 2000, XP, Vista); Coordenadas grficas de 32/16 bits (Win98);
25

Estrutura do Win2000 Win32 API


O Win32 API permite que programas rodem na maioria das verses do Windows

26

Estrutura do Win2000 Registro

Configuraes:

Windows precisa controlar informaes sobre hardware, software e usurios. Win 3.x Arquivos .ini A partir do Win95

Banco de dados central chamado registry;


Coleo de diretrios e subdiretrios rvore de chaves (key) e valores (values);

APIs permitem manipulao do registro;

27

Estrutura do Win2000

Win2000 partes:

pode

ser

dividido

em

duas

Modo usurio: subsistemas protegidos que se comunicam por troca de mensagens (local procedure call LPC); Modo kernel e Executivo: subsistemas que interagem diretamente com o hardware;

28

Estrutura do Windows 2000

Executivo

29

Estrutura do Windows 2000

HAL Camada que encapsula dependncias de mquina, proporcionando portabilidade;

Escrito em C e linguagem de montagem;

Algumas funes de gerenciamento:

30

Estrutura do Windows 2000

Camada do Kernel:

Tem idia de microncleo, mas no .. Gerenciador de memria, SA... Complementa a HAL no quesito portabilidade (independente do hardware); Escrito em C e linguagem de montagem; Ncleo gerencia: threads, processos, interrupes, semforos, escalonamento;

Objetos de controle controlam o sistema; Executivo constri objetos do usurio sobre estes objetos;

Drivers: escritos em C e C++;


31

Estrutura do Windows 2000

Executivo: implementa os servios bsicos do Win2000 (gerenciadores):

Gerenciador de Objetos: tipos de dados utilizados para representar os recursos do sistema, como: processos, threads, alocao de memria, etc.; Gerenciador de E/S (onde esto os drivers): fornece estrutura para gerenciamento de E/S. E/S independente do dispositivo. Rede; PnP; Energia; Configurao;

Caching: mantm na memria blocos de disco mais recentemente usados; 32

Estrutura do Windows 2000

Executivo:

Gerenciador de Processos e Threads; Gerenciador de Memria Virtual; Gerenciador de Segurana; Gerenciador de Comunicao: LPC (Local Procedure Call): comunicao interprocessos GDI (graphics device interface): trata gerenciamento de imagens enviadas para o monitor e impressora;

33

Estrutura do Windows 2000


Modo usurio componentes: Environment Subsystem e DLL (Dynamic Link Library): servem ao modo usurio, provendo interface entre processos e chamadas do sistema;

Ligao de cada programa com todos os procedimentos de biblioteca que ele usa desperdcio vrios programas abertos. DLLs evitam que programas criem cpias para si de uma mesma funo, evitando consumo de memria;
34

Estrutura do Windows 2000

35

Estrutura do Windows 2000

Alguns arquivos chave do Windows 2000:


Arquivo
hal.dll ntoskrnl.dll win32k.sys ntdll.dll Csrss.exe Kernel32.dll

Modo
Kernel Kernel Kernel Usurio Usurio Usurio

Contedo
Gerenciamento de Hardware baixo-nvel Windows 2000 (Kernel + Executivo) Vrias chamadas do sistema Interface entre processo do usurio e SO Processo do subsistema de ambiente Win32 Maioria das chamadas de sistema (no-grficas)

Gdi32.dll
User32.dll

Usurio
Usurio

Fontes, Textos, Cores, Bitmaps, pallete, etc...


janelas, cones, cursores, etc...
36

Gerenciamento de Processos e Threads

Objetos:

Objeto trabalho (job): coleo de processos que compartilham cotas e limites de recursos (n de filhos); Objeto processo: corresponde aos recursos do sistema, tais como: memria, arquivos; Objeto thread: unidade de trabalho executada seqencialmente;

Cada objeto processo instanciado recebe um identificador pid;


37

Gerenciamento de Processos e Threads

Um processo possui pelo menos um thread

Escalonador seleciona threads para serem executadas; Toda thread tem um ID thread;

Threads comuns relacionadas aos processos; Threads daemons executam no modo Kernel e no esto associadas aos processos de usurio;

38

Gerenciamento de Processos e Threads

Relao Trabalhos, Processos e Threads


39

Gerenciamento de Processos e Threads

Estados de uma Thread:

Apta (ready); Ativa (standby); Em execuo (running); Espera (waiting); Transio (transition); Trmino (terminated);

40

Gerenciamento de Processos e Threads


Escalonamento ativa
Preempo apta Desbloquear (recurso disponvel) Recurso disponvel espera transio trmino Trmino Bloquear Chaveamento de Contexto

execuo

Desbloquear (recurso no disponvel)

Estados de Threads no Win2000


41

Gerenciamento de Processos e Threads

O escalonador prioridades;

preemptivo

com

Filas de prioridades utilizam Round-Robin;

Prioridades so organizadas em classes, cada qual com 16 nveis;

duas

Tempo real (sistema):


Prioridade fixa; Maior prioridade; 16-31;

42

Gerenciamento de Processos e Threads

Varivel (usurio):

Prioridade dinmica; Menor prioridade que threads do sistema; Dois parmetros: um relacionado thread e outro ao processo ao qual a thread pertence; Prioridades 0-15;
Prioridade base;

Tempo do prioridade;

processador

determina

mudana

de

43

Gerenciamento de Processos e Threads


Round-Robin
Prioridade 31

Classe Prioridade 30 Tempo . Real - fixa

. .
Round-Robin

Prioridade 16

Prioridade 15

Classe varivel

. .
Prioridade 1

. .

Prioridade 0

44

Gerenciamento de Memria

Espao de endereamento de memria virtual de 32bits 4Gb;

Dividido em duas parte de 2Gb


Processos do usurios; Processos do SO;

Win2000 prev uma extenso VLM (Very Large Memory) destinada a arquiteturas de 64bits; Feito em funo dos processos e no das threads;

45

Gerenciamento de Memria

Espao de Endereamento para 3 processos

46

Gerenciamento de Memria

Paginao:

Pginas podem estar:

Livres: no est em uso, referncia causa uma falta de pgina; Dedicadas (ou comprometidas): cdigos ou dados esto mapeados; apenas essas ocupam espao efetivo; Reservadas: no esto disponveis para serem mapeadas;

Win2000 permite que um processo bloqueie pginas na memria, impedindo uma troca de pginas;
47

Gerenciamento de Memria

Troca de pginas:

Demanda com clustering (grupo): quando ocorre uma falta de pgina, o gerenciador de memria carrega a pgina que faltava e mais um pequeno nmero de pginas ao redor Minimizar acesso a disco; Algoritmo de troca de pgina depende da arquitetura:

Famlia Intel Multiprocessadores e famlia Alpha: FIFO, considerando apenas as pginas do processo em questo; Famlia Intel Monoprocessadores: LRU com o algoritmo do relgio;

Sistema de paginao usa conjunto de trabalho (Working Set) pginas que esto na memria.

Tamanho e composio variam conforme execuo das threads do processo (Limite mnimo e mximo de pginas); Conjunto< mnimo = pgina adicionada; 48 Conjunto>mximo = retira pgina para liberar espao para outra;

Gerenciamento de Memria Componentes

O gerenciador de memria faz parte do executivo do Windows 2000; Est localizado no arquivo NTOSKRNL.EXE ; No existem partes do gerenciador de memria na camada de acesso de hardware (HAL); Sobre o gerenciador de memria est o gerenciador de heap, no qual um conjunto de funes aloca/desaloca memria;

As funes do gerenciador de heap existem em dois lugares: NTDLL.DLL e NTOSKRNL.EXE;


49

Gerenciamento de E/S

O sistema de E/S do Windows 2000 aceita solicitaes de E/S dos processos do modo usurio e do modo Kernel e as transmite de uma forma diferente aos dispositivos de E/S; Permite ao processo solicitar uma operao de E/S e depois executar outro trabalho enquanto o dispositivo conclui a transferncia dos dados E/S assncrona;

Cada solicitao de E/S representada por um pacote de solicitao de E/S;


50

Gerenciamento de E/S

O gerenciador de E/S define uma estrutura ordenada dentro da qual as solicitaes de E/S so transmitidas ao sistema de arquivos e aos drivers de dispositivos;

IRP (I/O Request Packet pacote de requisio de E/S); IRP direcionado ao driver de dispositivo responsvel pela operao solicitada; Aps operao finalizada, driver avisa o gerenciador de E/S;

51

Gerenciamento de E/S

ACPI (Advanced Interface):

Configuration

and

Power

SO gerencia Plug and Play e energia;


Drivers devem fornecer suporte completo a plug and play; Gerenciamento de energia deve ser suportado pelos dispositivos;

52

Você também pode gostar