• Nenhum resultado encontrado

Apresentação e Introdução

N/A
N/A
Protected

Academic year: 2021

Share "Apresentação e Introdução"

Copied!
20
0
0

Texto

(1)

Apresentação e Introdução

• Sistemas Operativos

– Apresentação da UC

– Breve enquadramento histórico

– Definição

– Arquitectura geral

Alguns slides adaptados de slides do Eng. João Patriarca

(2)

Avaliação

• Avaliações

– 3 Trabalhos práticos

(grupos de 2/3 pessoas)

– 3 Mini-Testes

(Média dos 2 melhores com nota mínima de 8 valores)

– Teste Final

• Nota Final

– 40% Teste + 20% Mini Testes + 40%Trabalhos

(3)

Operating Systems: Internals and Design Principles, Sixth Edition William Stallings

Prentice-Hall,2009

Bibliografia

Windows® via C/C++, Fifth Edition Jeffrey Richter

Microsoft Press, 2007

Windows® Internals, Fifth Edition Mark Russinovitch, David Salomon Microsoft Press, 2009

principal

(4)

Programa

• Enquadramento

1 semana

• Gestão de memória

3 a 4 semanas

– Endereço virtuais e endereços físicos – Mecanismos hardware

• MMU

– Memória virtual

– Bibliotecas de ligação dinâmica

• Processos e Threads

4 a 5 semanas

– Programação Concorrente – Mecanismos de Sincronização

• Input/Output

2 semanas

– Acesso síncrono e assíncrono – Comunicação em rede

• Sockets

(5)

O que é um sistema operativo?

• Camada de software abstrai o hardware das aplicações com o

objectivo de:

• Simplificar e uniformizar o acesso à máquina física, mapeando os recursos físicos em recursos lógicos, acessíveis através de uma API (Aplication program Interface).

• Gerir de forma eficiente a utilização dos recursos oferecidos pela máquina física (CPU, memória, dispositivos externos) entre todos os utilizadores (aplicações em execução).

26-09-2014 Sistemas Operativos 5

Hardware Bibliotecas utilitárias

Aplication Program Interface

Sistema Operativo

Aplicações

Interface programática

Interface com o utilizador

Modo Utilizador(User) Modo Supervisor(Kernel)

(6)

Evolução dos Sistemas Operativos

• Pré-História

- Processamento em série com alocação de temp fixa por utilizador - Carregamento em lotes de jobs (tarefas a eecutar).

• Multi-utilizador em utilização de tempo real

- Tempo partilhado com time slice - Endereçamento Virtual (isolamento) - Memória Virtual (swapping/paging file)

• Mono-utilizador - Interfaces gráficas • Sistemas em Rede • Sistemas Distribuídos • Sistemas Multi-Processamento • Multi-Tarefa

• Sistemas assimétricos e simétricos • Arquitecturas UMA e NUMA

• Sistemas para pequenos dispositivos

- Sistemas Embebidos - Telemóveis,PDA´s

• Sistemas para a cloud

26-09-2014 Sistemas Operativos 6 1940-1950 1970 1980 1990 Unix BSD-Unix MSDOS Mac,Windows,X-Windows Multics 2000 Sun OS Windows NT, Solaris, Linux

Symbian, IOS, Windows Phone, Android

eCos

1960

(7)

Evolução dos sistemas operativos

[fins anos 40, meios 50] Processamento em série

• Computador de elevadas dimensões e caro

• Vários utilizadores usavam o mesmo computador

• Alocados blocos de tempo com granularidade bem definida

– Desperdício de utilização do CPU se termina a tarefa mais cedo – Não terminar a tarefa no tempo alocado

• Os programas executavam diretamente na arquitetura:

– Não existia o conceito de sistema operativo

– O programa era dado num cartão colocado num dispositivo de entrada – Os programas eram carregados em memória através de um programa

monitor

26-09-2014

(8)

Evolução dos sistemas operativos

[meios 50, início 60s] Sistemas batch

• O método anterior gastava demasiado tempo na preparação e mudança de utilizadores

• Neste cenário o computador continua a ser uma peça cara • Primeiros sistemas operativos:

– General Motors for the IBM 701/704 – IBSYS, IBM OS for 7090/7094 computers

• Ideia central: software conhecido como Monitor(aqui monitor funciona como SO) • Aspetos ainda a considerar

– Bloqueio em esperas ativas por IO

(9)

Evolução dos sistemas operativos

[60s] Sistemas Time-sharing

• Mantendo o cenário da peça computador cara, o

conceito multiprograma, que corresponde à partilha do

CPU por vários programas, pode ser usado para

partilhar o CPU por múltiplos utilizadores.

• Cada utilizador dispõe de um terminal onde insere o

programa a executar

– A dinâmica do utilizador é bastante mais lenta que a do

CPU permitindo um único CPU ser partilhado por múltiplos

utilizadores.

• Esta perspetiva de utilização suporta-se na

infra-estrutura

– Temporizador para escalonar o CPU por tempos contantes

pelos múltiplos programas criando a ilusão de uma

execução contínua (quantum de computação)

(10)

Evolução dos sistemas operativos

[80s] MSDOS

• Mudança de paradigma – hardware a preço acessível: mainframe → PC • Menos exigente que um mainframe, o MSDOS é uniprograma.

• 1981, DOS 1.0, SO desenvolvido pela Microsoft para o primeiro PC da IBM

– 4000 linhas de código fonte assembly - Ocupava 8K Bytes de memória no Intel 8086

• 1983, DOS 2.0, desenvolvido para o primeiro PC IBM com disco, PC XT. O SO suportava um esquema hierárquico de directorias (muito restritivo ainda: apenas uma directoria com 64 ficheiros no máximo, adequado apenas paraa era da disquete, mas inadequado para discos rígidos).

– Ocupava já 24K Bytes de memória residente

• 1984, DOS 3.0, para o PC AT (Intel 286)

– O SO não retira partido da nova arquitectura considerando um “8086 rápido” – Ainda assim passou a ocupar 36K Bytes

• 1984, DOS 3.1, suporte de PC’s em rede

• 1987, DOS 3.3 para a nova linha de PC’s da IMB, PS/2

– Continua a não retirar partido dos recursos proporcionados pelas novas arquitecturas – Arquitectura Intel386 a 32 bits, ocupava 46K Bytes

• Este sistema operativo não consegue acompanhar a evolução do hardware

(11)

Evolução dos sistemas operativos

Windows

• Em paralelo (anos 80), a Microsoft desenvolve GUI que será colocado ente o utilizador e o DOS

• 1990, Windows 3.0, executa por cima do DOS

• Na tentativa falhada, de junto com a IBM, em desenvolver novo SO que tirasse proveito das novas arquitecturas,inicia um caminho próprio com o desenvolvimento do Windows NT

– Para além de aproveitar os recursos proporcionados pelas novas arquiteturas, disponibiliza sistema multi-tarefa tanto num ambiente mono utilizador como para vários utilizadores.

• 1993, Windows NT 3.1, mesmo GUI que o Windows 3.1 (sucessor do Windows 3.0) – Novo SO a 32 bits

• 1996, Windows NT 4.0

– Baseado na arquitetura interna do NT 3.x

– Mesmo GUI que o Windows 95 (sucessor do Windows 3.1)

– Principal alteração arquitetónica na mudança de alguns componentes gráficos pertencentes ao subsistema Win32que executavamem user mode para modo Kernel

• 2000, Windows NT 2000, arquitetura do kernel idêntica ao do NT 4.0

– Adição de serviços e funcionalidades de suporte a processamento distribuído – Elemento central do Windows 2000: active directory

– Adicionadas facilidades Plug&Play, tal como no Windows 98 (sucessor do Windows 95)

– Adicionadas facilidades de gestão de consumo, tal como no Windows 98 (sucessor do Windows 95) – Primeiro a distinguir a versão Servidora da versão pessoal: incluí serviços para componentes servidor em

rede

• 2001, Windows XP, versão Home, Professional • 2003, Windows Server 2003

– Suporta CPUs a 32 bits e 64 bits (64 bit Intel Intanium)

– O primeiro service pack suporta os processadores AMD64, versão desktop e servidora • 2007, Windows Vista

– Suporta arquiteturas Intel x86 e arquiteturas AMD x64 – Versão servidora: Windows Server 2008

• 2009, Windows 7, Windows 7 foi uma atualização mais modesta e focalizada para a linha Windows • 2012, Windows 8 – suportado em diferentes tipos de dispositivos

(12)

Evolução dos sistemas operativos

UNIX

• 1970, PDP-7, Bells Labs (envolveu as mesmas pessoas do projecto MIT’s Project MAC que deu origem ao CTSS e ao Multics)

• Primeiro milestone com o PDP-11 e o seguinte milestone com a rescrita do SO em C

• 1974, primeira vez publicado numa Revista Técnica • 1976, licenças comerciais e para uso académico

• Primeira versão UNIX fora deste consórcio Bell e AT&T: UNIX BSD (Berkeley Software Distribution)

• 1982, Bell Labs combinou as várias variantes UNIX AT&T dando origem à versão com nome comercial UNIX System III, e mais tarde, com a adição de novas funcionalidades, a versão UNIX System V

• Sistemas UNIX modernos:

– System V Release 4 (SVR4), by AT&T and Sun Microsystems: combinação de funcionalidades do SVR3, 4.3BSD, Microsoft Xenix System V, e SunOS

– 4.4BSD: uma das versões mais amplamente usadas foi a FreeBSD; o MAC OS X, é baseado no FreeBSD 5.0 e no Mach 3.0 microkernel

– Solaris 10: baseado no SVR4

(13)

Evolução dos sistemas operativos

Linux

• Variante UNIX para arquiteturas IBM PC (Intel

80386)

• 1991, primeira versão publicada na Internet pelo

autor original Linus Torvalds (alunos finalista de

curso de ciências da computação)

– o código fonte foi publicado e livre

• Rapidamente aceite pela comunidade

colaborando na evolução do SO

• Atualmente suportado num grande número de

plataformas

(14)

Arquitectura do Sistema Operativo (monolítica)

• Arquitectura monolítica

– Organização em módulos – Estruturas de dados globais

– Serviços do SO executam no contexto do processo chamador

26-09-2014 Sistemas Operativos 14 Sistema Operativo Hardware Gestão de Processos Gestão de Memória Gestão de I/O Interrupções e Gestores de Periféricos Comunicação e sincronização Sistemas de Ficheiros

Biblioteca de system calls (API)

User Kernel

(15)

Arquitetura do Sistema Operativo (micro-kernel)

• Arquitectura micro-kernel

– No kernel apenas os módulos essenciais: gestão de interrupções , espaços de endereçamento, comunicação e sincronização.

– Outras componentes do S.O. como serviços em modo utilizador: memória virtual, device drivers, sistemas de ficheiros.

– Os serviços comunicam entre si através de mecanismos de comunicação através de mensagens providenciado pelo (micro) kernel.

– Adequado em ambientes distribuídos: processos servidores locais ou – remotos são tratados da mesma forma.

26-09-2014 Sistemas Operativos 15 Sistema Operativo Hardware Gestão de Processos Gestão de Memória Gestão de I/O Interrupções e Gestores de Periféricos Comunicação e sincronização Sistemas de Ficheiros

Biblioteca de system calls (API)

User Kernel

(16)

Arquitectura simplificada do Windows NT

26-09-2014 Sistemas Operativos 16

Tirado do livro: Windows Internals, 5 Ed, de Russinovitch, Solomon e Ionescu

csrss.exe smss.exe kernel32.dll user32.dll win32k.sys ntoskrnl.exe hal.dll Ntdll.dll

(17)

Arquitectura do Windows NT (tipos de processos)

 The four basic types of user-mode processes are described as follows:

System processes, such as the logon process and the session manager, that are not Windows services. (That is, they are not started by the service control manager. Chapter 4 describes services in detail.)

Service processes that host Windows services, such as the Task Scheduler and Spooler

services. Services generally have the requirement that they run independently of user logons. Many Windows server applications, such as Microsoft SQL Server and Microsoft Exchange Server, also include components that run as services.

User applications, which can be one of six types: Windows 32-bit, Windows 64-bit, Windows

3.1 16-bit, MS-DOS 16-bit, POSIX 32-bit, or OS/2 32-bit.

Environment subsystem server processes, which implement part of the support for the operating system environment, or personality presented to the user and programmer. Windows NT originally shipped with three environment subsystems: Windows, POSIX, and

OS/2. OS/2 was dropped as of Windows 2000. As of Windows XP, only the Windows

subsystem is shipped in the base product—an enhanced POSIX subsystem is available aspart of the free Services for Unix product.

(18)

Requisitos típicos do hardware

• Mínimo de 2 níveis de execução

– Modo Utilizador (User Mode) , Modo Supervisor (Kernel Mode)

• Instruções privilegiadas

• Comutação controlada entre modos de execução

• Mecanismos para criação de espaços de endereçamento

virtuais

– Tradução entre endereços virtuais e endereços físicos

• Periféricos inteligentes

– Suportar a execução de operações de I/O de forma independente do CPU.

• Interrupções e DMA

• Timer

– Suporte a base de tempo do sistema. Entre outras razões para suportar um mecanismo de preempção na execução de processos ( evitar a

monopolização do CPU).

(19)

Alguma terminologia

• Processo

– instância de execução de um programa. Consiste num espaço de endereçamento, um ou mais fios de execução (threads) e conjunto de objectos sistema utilizados

• Memory Management Unit (MMU)

– Entidade hardware que mapeia, os endereços (virtuais) especificadas pelo execução de um programa em endereços físicos

• Scheduler

– Entidade que escalona, segundo as políticas especificadas, as threads activas para execução pelos CPUs disponíveis 26-09-2014 Sistemas Operativos 19 Memory Management Unit Espaço de endereçamento virtual RAM Tabelas de mapeamento(por cada processo) construídas pelo SO

(20)

Bibliografia

26-09-2014 Sistemas Operativos 20

•Stallings, Operating Systems

•Cap. 2, Operating Systems Overview, Secções 2.1 a 2.5 •Solomon,Russinovitch- Windows Internal, 5ªEd

•Cap. 1, Concepts and Tools, Sec. 1.1 e 1.2

Referências

Documentos relacionados

• Os métodos para execução do trabalho deveriam ser baseados no estudo cientifico, e não no julgamento empírico do contramestre ou dos trabalhadores. • Para motivar

Quero ir com o avô Markus buscar a Boneca-Mais-Linda-do-Mundo, quero andar de trenó, comer maçãs assadas e pão escuro com geleia (17) de framboesa (18).... – Porque é tão

Esta última tendência no Cinema Alemão Contemporâneo está intimamente associada ao modo como se estabelecem as relações interculturais na sociedade alemã, que podem

O Conselho Nacional de Desenvolvimento Científico e Tecnológico – CNPq e o Serviço Brasileiro de Apoio às Micro e Pequenas Empresas – SEBRAE, tornam público

O destino foi irônico porque deu à galinha o aspecto de uma ave capaz de agarrar as presas com rapidez e lhe tirou a visão, deixando-a incapaz até mesmo de recolher seu alimento

- sensibilização do público para as normas de conduta, em matéria de prevenção, uso do fogo e de gestão de combustíveis nos espaços rurais. No âmbito da Defesa da Floresta

b) Entregar no DESTINADOR, caso o transporte passe a ser por intermédio dos DESTINATÁRIOS, até a data da primeira coleta, a lista com os nomes dos catadores,

Ocorrência de Marcas Registradas, nas empresas Ocorrência de Marcas Registradas, nas empresas que produzem com marca.. que produzem