• Nenhum resultado encontrado

Sistemas Operacionais 2009/2: Fundamentos de Sistemas Operacionais

N/A
N/A
Protected

Academic year: 2021

Share "Sistemas Operacionais 2009/2: Fundamentos de Sistemas Operacionais"

Copied!
14
0
0

Texto

(1)

Sistemas Operacionais 2009/2:

Fundamentos de Sistemas Operacionais

Prof. Maur´ıcio Aronne Pillon Prof. Rafael Obelheiro UDESC/CCT – Departamento de Ciˆencia da Computa¸c˜ao

{mpillon,rro}@joinville.udesc.br

Joinville, julho de 2009

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Sum´ario

1 Introdu¸c˜ao

2 Hist´orico dos SOs

3 Revis˜ao de Hardware

4 Conceitos de SO

5 Estruturas de SO

6 Estudo de caso: Linux

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 2/53 Introdu¸c˜ao

Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

O que ´e um sistema operacional?

Camadas de um SO

O que ´e um sistema operacional?

O gerenciamento de um sistema computacional moderno ´e sem d´uvida uma tarefa complexa

O computador moderno exige o controle no uso de um ou mais processadores, mem´oria, discos, impressoras de maneira correta e otimizada

Duas vis˜oes

1.Uma m´aquina estendida

esconde os detalhes complicados do funcionamento do hardware oferece uma interface mais amig´avel para as aplica¸c˜oes ⇒m´aquina virtual

2.Um gerenciador de recursos

cada programa utiliza o recurso durante um tempo cada programa ocupa um certo espa¸co no recurso

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 3/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

O que ´e um sistema operacional?

Camadas de um SO

Camadas de um SO

Sistema bancário Reserva de passagens aéreas Sistema operacional Visualizador Web Compiladores Editores Programas de aplicação Hardware Programas do sistema Interpretador de comandos Linguagem de máquina Microarquitetura Dispositivos físicos

(2)

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Hist´oria dos Sistemas operacionais Primeira gera¸c˜ao (1945–1955) Segunda gera¸c˜ao (1955–1965) Terceira gera¸c˜ao (1965–1980) Quarta gera¸c˜ao (1980–HOJE) Tipos de sistemas operacionais

Sum´ario

1 Introdu¸c˜ao

2 Hist´orico dos SOs

3 Revis˜ao de Hardware

4 Conceitos de SO

5 Estruturas de SO

6 Estudo de caso: Linux

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 5/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Hist´oria dos Sistemas operacionais

Primeira gera¸c˜ao (1945–1955) Segunda gera¸c˜ao (1955–1965) Terceira gera¸c˜ao (1965–1980) Quarta gera¸c˜ao (1980–HOJE) Tipos de sistemas operacionais

Hist´oria dos Sistemas Operacionais

O primeiro computador digital foi constru´ıdo por Charles Babbage (1792- 1871).

Ada Lovelace, filha do poeta inglˆes Lord Byron, foi a primeira programadora do mundo.

1.Primeira gera¸c˜ao (1945–1955)

V´alvulas, pain´eis de programa¸c˜ao

2.Segunda gera¸c˜ao (1955–1965)

transistores, sistemas em lote

3.Terceira gera¸c˜ao (1965–1980)

Cls e multiprograma¸c˜ao

4.Quarta gera¸c˜ao (1980–dias de hoje)

computadores pessoais

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 6/53 Introdu¸c˜ao

Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Hist´oria dos Sistemas operacionais

Primeira gera¸c˜ao (1945–1955)

Segunda gera¸c˜ao (1955–1965) Terceira gera¸c˜ao (1965–1980) Quarta gera¸c˜ao (1980–HOJE) Tipos de sistemas operacionais

Primeira gera¸c˜ao (1945–1955)

Howard Aiken (Harvard), John von Neumann (Princeton), J. Presper Eckert e William Mauchley (Pensilvˆania) e Konrad Zuse (Alemanha) construiram m´aquinas de calcular

Sistema totalmente mecˆanico (rel´es lentos), com ciclos medidos em segundos

Primeira evolu¸c˜ao: substitui¸c˜ao dos rel´es por v´alvulas O mesmo grupo de pessoas projetava, constru´ıa, programava, operava e realizava a manuten¸c˜ao de cada m´aquina Programa¸c˜ao feita com c´odigo absoluto e muitas vezes conectando plugs em pain´eis

Os sistemas operacionais ainda n˜ao tinham sido inventados

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 7/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Hist´oria dos Sistemas operacionais

Primeira gera¸c˜ao (1945–1955)

Segunda gera¸c˜ao (1955–1965) Terceira gera¸c˜ao (1965–1980) Quarta gera¸c˜ao (1980–HOJE) Tipos de sistemas operacionais

ENIAC

(3)

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Hist´oria dos Sistemas operacionais

Primeira gera¸c˜ao (1945–1955)

Segunda gera¸c˜ao (1955–1965) Terceira gera¸c˜ao (1965–1980) Quarta gera¸c˜ao (1980–HOJE) Tipos de sistemas operacionais

Quadro de plugues do IBM 402

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 9/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Hist´oria dos Sistemas operacionais Primeira gera¸c˜ao (1945–1955)

Segunda gera¸c˜ao (1955–1965)

Terceira gera¸c˜ao (1965–1980) Quarta gera¸c˜ao (1980–HOJE) Tipos de sistemas operacionais

Segunda gera¸c˜ao (1955–1965)

Introdu¸c˜ao do transistor (substituindo as v´alvulas); Computadores mais confi´aveis;

Passaram a ser fabricados e comercializados com uma expectativa de “vida ´util” mais longa;

Estabeleceu-se uma separa¸c˜ao clara entre as fun¸c˜oes: projetista, fabricantes, programadores e t´ecnicos de manuten¸c˜ao. Estas m´aquinas passaram a ser denominadas de computadores de grande porte (mainframes);

Devido ao alto custo do equipamento, buscou-se uma maneira de reduzir o desperd´ıcio, adotando-se o chamado sistema em lote (batch).

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 10/53 Introdu¸c˜ao

Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Hist´oria dos Sistemas operacionais Primeira gera¸c˜ao (1945–1955)

Segunda gera¸c˜ao (1955–1965)

Terceira gera¸c˜ao (1965–1980) Quarta gera¸c˜ao (1980–HOJE) Tipos de sistemas operacionais

Sistema em lote (batch)

(a)os programadores levavam os cart˜oes para o 1401;

(b)o 1401 gravava o lote de jobs em fita;

(c)o operador levava a fita de entrada para o 7094;

(d)o 7094 executava o processamento;

(e)o 1401 imprimia as sa´ıdas.

1401 7094 1401 (a) (b) (c) (d) (e) (f) Leitora de cartões Unidade de fita magnética Fita de entrada Fita de saída Fita do sistema Impressora

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 11/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Hist´oria dos Sistemas operacionais Primeira gera¸c˜ao (1945–1955)

Segunda gera¸c˜ao (1955–1965)

Terceira gera¸c˜ao (1965–1980) Quarta gera¸c˜ao (1980–HOJE) Tipos de sistemas operacionais

Estrutura de um job t´ıpico

$JOB, 10,6610802, MARVIN TANENBAUM $FORTRAN

$LOAD $RUN

$END

Programa FORTRAN

Dados para o programa

(4)

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Hist´oria dos Sistemas operacionais Primeira gera¸c˜ao (1945–1955)

Segunda gera¸c˜ao (1955–1965)

Terceira gera¸c˜ao (1965–1980) Quarta gera¸c˜ao (1980–HOJE) Tipos de sistemas operacionais

Cart˜ao Fortran

Z(1) = Y + W(1)

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 13/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Hist´oria dos Sistemas operacionais Primeira gera¸c˜ao (1945–1955) Segunda gera¸c˜ao (1955–1965)

Terceira gera¸c˜ao (1965–1980)

Quarta gera¸c˜ao (1980–HOJE) Tipos de sistemas operacionais

3

a

gera¸c˜ao: fam´ılias de computadores

Os computadores de 2agera¸c˜ao eram radicalmente diferentes entre

si, tornando-os incompat´ıveis:

IBM 7094: c´alculo intensivo, orientado a palavra IBM 1401: processamento comercial, orientado a caracter As diferen¸cas representavam:

custos significativos para o fabricante

custos e inconveniˆencias para os usu´arios que precisavam migrar de plataforma

A IBM introduziu a fam´ılia 360

primeiros computadores que usavam CIs (Circuitos Integrados) compatibilidade de software e hardware

Os requisitos e caracter´ısticas diferentes se tornaram um pesadelo para a equipe de desenvolvimento do OS/360;

milh˜oes de linhas de Assembly, milhares de programadores quando bugs eram corrigidos, outros eram introduzidos The Mythical Man-Month (Fred Brooks)

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 14/53 Introdu¸c˜ao

Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Hist´oria dos Sistemas operacionais Primeira gera¸c˜ao (1945–1955) Segunda gera¸c˜ao (1955–1965)

Terceira gera¸c˜ao (1965–1980)

Quarta gera¸c˜ao (1980–HOJE) Tipos de sistemas operacionais

Sistema multiprogramado (3

a

gera¸c˜ao)

No 7094, quando um Job parava para aguardar uma E/S, a CPU simplesmente permanecia ociosa

Em processamento comerciais (I/O Bounds), o tempo de espera por E/S chegava a 80 a 90% 3 jobs na mem´oria Job 3 Job 2 Job 1 Sistema operacional Partições de memória

Deu origem a sistemas de tempo compartilhado (time sharing) Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 15/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Hist´oria dos Sistemas operacionais Primeira gera¸c˜ao (1945–1955) Segunda gera¸c˜ao (1955–1965)

Terceira gera¸c˜ao (1965–1980)

Quarta gera¸c˜ao (1980–HOJE) Tipos de sistemas operacionais

MULTICS

MULTiplexed Information and Computing Service Um “computador utilit´ario”, capaz de atender a centenas de usu´arios simultˆaneos

CPU equivalente a um 386, maior capacidade de E/S O projeto foi um fracasso comercial (menos de 100 instala¸c˜oes), mas teve usu´arios fi´eis (at´e d´ecada de 90)

Extremamente influente do ponto de vista t´ecnico lan¸cou diversas id´eias usadas at´e hoje em alguns aspectos ainda superior

Diversos nomes importantes da computa¸c˜ao nos ´ultimos 40 anos fizeram parte do projeto

(5)

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Hist´oria dos Sistemas operacionais Primeira gera¸c˜ao (1945–1955) Segunda gera¸c˜ao (1955–1965)

Terceira gera¸c˜ao (1965–1980)

Quarta gera¸c˜ao (1980–HOJE) Tipos de sistemas operacionais

UNIX

Ken Thompson (Bell Labs) e o PDP-7 (origem do UNIX); Crescimento comercial dos minicomputadores, culminando no PDP-11, sucesso comercial;

BSD: mem´oria virtual e TCP/IP;

Problemas de incompatibilidade sobre as vers˜oes UNIX levou o IEEE a lan¸car um padr˜ao de desenvolvimento, POSIX (Portable Operating System-IX );

Sistema feito por programadores, para programadores; Caracter´ısticas principais:

ferramentas de desenvolvimento cooperativo; interfaces simples, elegantes, consistentes e sem frescuras; conceito de ferramentas de software: pequenos programas que desempenham fun¸c˜oes espec´ıficas e que podem ser combinados;

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 17/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Hist´oria dos Sistemas operacionais Primeira gera¸c˜ao (1945–1955) Segunda gera¸c˜ao (1955–1965)

Terceira gera¸c˜ao (1965–1980)

Quarta gera¸c˜ao (1980–HOJE) Tipos de sistemas operacionais

Thompson, Ritchie e um PDP-11 (ca. 1972)

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 18/53 Introdu¸c˜ao

Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Hist´oria dos Sistemas operacionais Primeira gera¸c˜ao (1945–1955) Segunda gera¸c˜ao (1955–1965) Terceira gera¸c˜ao (1965–1980)

Quarta gera¸c˜ao (1980–HOJE)

Tipos de sistemas operacionais

Computadores Pessoais (microcomputadores)

Os microcomputadores n˜ao eram muito diferentes do PDP-11, por´em eram muito mais baratos

Desenvolvimento de CIs em larga escala (large scale integration – LSI), que s˜ao chips contendo milhares de transistores em um cent´ımetro quadrado de sil´ıcio

Em 1974, a Intel lan¸cou o 8080, primeira CPU de 8 bits de prop´osito geral

Em 1977, a Digital Research (Gary Kildall) reescreveu o CP/M (Control Program for Microcomputers) para rodar em outras CPUs al´em do 8080

Nos anos 80, a IBM solicitou a um desconhecido desenvolvedor de interpretador Basic, Bill Gates, o contato de uma empresa que pudesse desenvolver um SO para o IBM PC

Bill Gates comprou o DOS (Disk Operating System) e vendeu a IBM o DOS/Basic. A Microsoft ainda contratou o desenvolver do DOS, Tim Paterson, lan¸cando o conhecido MS-DOS

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 19/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Hist´oria dos Sistemas operacionais Primeira gera¸c˜ao (1945–1955) Segunda gera¸c˜ao (1955–1965) Terceira gera¸c˜ao (1965–1980)

Quarta gera¸c˜ao (1980–HOJE)

Tipos de sistemas operacionais

Computadores Pessoais (microcomputadores)

CP/M e MS-DOS, entre outros, eram todos baseados na digita¸c˜ao de comandos

Doug Engelbart (Stanford) inventou uma interface gr´afica voltada para o usu´ario (GUI – Graphical User Interface)

O Apple Macintosh foi o primeiro SO a incorporar esta id´eia Devido ao sucesso comercial da Apple, a Microsoft tamb´em resolveu incorporar esta id´eia

Os computadores tornaram-se cada vez mais poderosos em vez das pessoas esperarem pelo computador, o computador ´e que espera por elas

necessidade de SOs mais sofisticados

Surgimento de redes de computadores, com sistemas operacionais de rede e sistemas operacionais distribu´ıdos

(6)

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Hist´oria dos Sistemas operacionais Primeira gera¸c˜ao (1945–1955) Segunda gera¸c˜ao (1955–1965) Terceira gera¸c˜ao (1965–1980) Quarta gera¸c˜ao (1980–HOJE)

Tipos de sistemas operacionais

Tipos de sistemas operacionais

SOs para mainframes SOs para servidores SOs para multiprocessadores SOs para computadores pessoais SOs de tempo real SOs embutidos SOs para smartcards SOs distribu´ıdos

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 21/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Processador Mem´oria Dispositivos de E/S Barramentos

Sum´ario

1 Introdu¸c˜ao

2 Hist´orico dos SOs

3 Revis˜ao de Hardware

4 Conceitos de SO

5 Estruturas de SO

6 Estudo de caso: Linux

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 22/53 Introdu¸c˜ao

Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Processador Mem´oria Dispositivos de E/S Barramentos

Componentes de um computador

Monitor

Teclado disco flexívelUnidade de Unidade de disco rígido Controlador de disco rígido Controlador de disco flexível Controlador de teclado Controlador de vídeo Memória CPU Barramento

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 23/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Processador Mem´oria Dispositivos de E/S Barramentos

Processador (1/2)

Ciclo busca-decodifica-executa Registradores prop´osito geral

contador de programa / ponteiro de instru¸c˜ao ponteiro de pilha

PSW (program status word) / flags Unidade de busca Unidade de busca Unidade

de busca decodificaçãoUnidade de

Unidade de execução Unidade de execução Buffer de instruções (a) (b) Unidade de execução Unidade de execução Unidade de decodificação Unidade de decodificação

(a) Um pipeline de trˆes est´agios (b) Uma CPU superescalar Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 24/53

(7)

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Processador Mem´oria Dispositivos de E/S Barramentos

Processador (2/2)

Modos de opera¸c˜ao

modo n´ucleo (kernel ou supervisor) modo usu´ario

Chaveamento entre os modos trap: usu´ario→ n´ucleo

chamadas de sistema (software) traps de hardware: exce¸c˜oes instru¸c˜ao: n´ucelo→ usu´ario

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 25/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Processador Mem´oria Dispositivos de E/S Barramentos

Hierarquia de mem´oria

Registradores Cache Memória principal Fita magnética 1 ns 2 ns 10 ns 10 ms 100 s <1 KB 1 MB 64–512 MB 5–50 GB 20–100 GB Capacidade típica Tempo de acesso típico

n´umeros mostrados s˜ao apenas aproxima¸c˜oes

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 26/53 Introdu¸c˜ao

Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Processador

Mem´oria

Dispositivos de E/S Barramentos

Estrutura de uma unidade de disco

Superfície 2 Superfície 1 Superfície 0

Cabeça de leitura/escrita (uma por superfície)

Direção do movimento do braço Superfície 3

Superfície 5 Superfície 4 Superfície 7 Superfície 6

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 27/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Processador Mem´oria Dispositivos de E/S Barramentos

Prote¸c˜ao e reloca¸c˜ao

Programa e dados do usuário Programa e dados do usuário Sistema operacional Endereço 0xFFFFFFFF Limite Base 0 (a) Dados do usuário 2 Programa do usuário Sistema operacional Base 2 Limite 2 Limite 2 Limite 1 Base 2 Base 1 (b) Limite 1 Base 1 Registradores quando o programa 1 está executando Dados do usuário 1 Registradores quando o programa 2 está executando

(a) um par base-limite (b) dois pares base-limite (c´odigo+dados) Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 28/53

(8)

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Processador Mem´oria Dispositivos de E/S Barramentos

Dispositivos de E/S (1/2)

Controladores vs dispositivos registradores de dados, controle, status Drivers de dispositivo

geralmente fornecidos pelo fabricante

executam em modo n´ucleo para ter acesso ao dispositivo Modos de opera¸c˜ao

E/S programada interrup¸c˜oes

DMA (Direct Memory Access)

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 29/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Processador Mem´oria

Dispositivos de E/S

Barramentos

Dispositivos de E/S (2/2)

CPU de interrupçãoControlador Controladorde disco Unidade de disco Instrução atual Próxima instrução 1. Interromper 3. Retornar 2. Despachar para tratador de interrupção Tratador de interrupção (b) (a) 1 3 4 2

(a)os passos para iniciar um dispositivo de E/S e obter uma interrup¸c˜ao

(b)o processamento de uma interrup¸c˜ao

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 30/53 Introdu¸c˜ao

Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Processador Mem´oria Dispositivos de E/S

Barramentos

Estrutura de um sistema Pentium

Ponte ISA Modem Mouse Ponte PCI

CPU Memóriaprincipal

SCSI USB

Barramento local

Placa

de som Impressora Conector ISA

disponível Barramento ISA Disco

IDE Conector PCIdisponível

Teclado Monitor Adaptador gráfico Cache de nível 2

Barramento de cache Barramento de memória

Barramento PCI

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 31/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Processos Deadlock Gerˆencia de mem´oria Gerˆencia de arquivos Chamadas de sistema

Sum´ario

1 Introdu¸c˜ao

2 Hist´orico dos SOs

3 Revis˜ao de Hardware

4 Conceitos de SO

5 Estruturas de SO

6 Estudo de caso: Linux

(9)

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Processos Deadlock Gerˆencia de mem´oria Gerˆencia de arquivos Chamadas de sistema

Processos

Um processo ´e basicamente um programa em execu¸c˜ao Cada processo possui um espa¸co de endere¸camento

faixa de endere¸cos de mem´oria onde ele pode escrever Cada entrada na tabela de processos possui informa¸c˜oes sobre o estado corrente do processo

Processos podem se comunicar→ comunica¸c˜ao interprocessos (IPC)

´Arvores de processos.

A

B

D E F

C

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 33/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Processos Deadlock Gerˆencia de mem´oria Gerˆencia de arquivos Chamadas de sistema

Deadlocks

Situa¸c˜oes que surgem na intera¸c˜ao entre processos e onde o progresso ´e imposs´ıvel:

(a)deadlock potencial

(b)deadlock real

(a) (b)

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 34/53 Introdu¸c˜ao

Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Processos Deadlock Gerˆencia de mem´oria Gerˆencia de arquivos Chamadas de sistema

Gerˆencia de mem´oria

Define como a mem´oria principal ´e alocada para os processos Implementa mecanismos de prote¸c˜ao

Lida com espa¸cos de endere¸camento maiores do que a mem´oria

dispon´ıvel→ mem´oria virtual.

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 35/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Processos Deadlock Gerˆencia de mem´oria Gerˆencia de arquivos Chamadas de sistema

Gerˆencia de arquivos

Define uma interface mais refinada para armazenamento persistente de informa¸c˜oes

A maior parte dos sistemas usa o conceito de arquivos organizados em hierarquias de diret´orios

Diretório-raiz

Estudantes Professores

Leo Prof. Brown

Arquivos Cursos CS101 CS105 Artigos SOSP COST-11 Comissões Prof. Green Prof. White Matty

Robert

Bolsas de estudo

(10)

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Processos Deadlock Gerˆencia de mem´oria Gerˆencia de arquivos Chamadas de sistema

Chamadas de sistema

As chamadas de sistema comp˜oem a interface que o SO oferece `as aplica¸c˜oes

Executam no contexto do SO, usando o modo privilegiado do processador

Tipos de chamada de sistema processos: criar, sincronizar, terminar mem´oria: alocar, desalocar

arquivos e diret´orios: criar, ler, escrever, remover, definir permiss˜oes . . .

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 37/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Processos Deadlock Gerˆencia de mem´oria Gerˆencia de arquivos

Chamadas de sistema

Exemplo de chamada de sistema: read()

Retorne para quem chamou

4 10 6 0 9 7 8 3 1 11 Despache Tratador da chamada ao sistema Endereço 0xFFFFFFFF Espaço do usuário Espaço do núcleo (Sistema operacional) Procedimento read da biblioteca Programa do usuário chamando read úcleo Coloque o código para read no registrador

Incremente SP (apontador da pilha)or d Chame read Armazene fd na pilha Armazene nbytes na pilha 5

read(fd, &buffer, nbytes)

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 38/53 Introdu¸c˜ao

Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Processos Deadlock Gerˆencia de mem´oria Gerˆencia de arquivos

Chamadas de sistema

Exemplo de chamadas de sistema POSIX

Gerenciamento de processos Chamada Descrição

pid = fork( ) Crie um processo filho idêntico ao processo pai pid = waitpid(pid, &statloc, options) Aguarde um processo filho terminar s = execve(name, argv, environp) Substitua o espaço de endereçamento do processo exit(status) Termine a execução do processo e retorne o estado

Gerenciamento de arquivos Chamada Descrição

fd = open(file, how, ...) Abra um arquivo para leitura, escrita ou ambas

s = close(fd) Feche um arquivo aberto

n = read(fd, buffer, nbytes) Leia dados de um arquivo para um buffer n = write(fd, buffer, nbytes) Escreva dados de um buffer para um arquivo position = lseek(fd, offset, whence) Mova o ponteiro de posição do arquivo s =stat(name, &buf) Obtenha a informação de estado do arquivo

Gerenciamento do sistema de diretório e arquivo Chamada Descrição

s = mkdir(name, mode) Crie um novo diretório s = rmdir(name) Remova um diretório vazio s = link(name1, name2) Crie uma nova entrada, name2, apontando para name1 s = unlink(name) Remova uma entrada de diretório s = mount(special,name, flag) Monte um sistema de arquivo s = umount(special) Desmonte um sistema de arquivo

Diversas Chamada Descrição

s = chdir(dirname) Altere o diretório de trabalho s = chmod(name, mode) Altere os bits de proteção do arquivo s = kill(pid, signal) Envie um sinal a um processo seconds = time(&seconds) Obtenha o tempo decorrido desde 1º de janeiro de 1970

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 39/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Processos Deadlock Gerˆencia de mem´oria Gerˆencia de arquivos

Chamadas de sistema

Exemplo de chamadas de sistema da API Win32

Unix Win32 Descrição

fork CreateProcess Crie um novo processo

waitpid WaitForSingleObject Pode esperar um processo sair

execve (none) CrieProcesso = fork + execve

exit ExitProcess Termine a execução

open CreateFile Crie um arquivo ou abra um arquivo existente

close CloseHandle Feche um arquivo

read ReadFile Leia dados de um arquivo

write WriteFile Escreva dados para um arquivo

lseek SetFilePointer Mova o ponteiro de posição do arquivo

stat GetFileAttributesEx Obtenha os atributos do arquivo

mkdir CreateDirectory Crie um novo diretório

rmdir RemoveDirectory Remova um diretório vazio

link (none) Win32 não suporta ligações (link)

unlink DeleteFile Destrua um arquivo existente

mount (none) Win32 não suporta mount

umount (none) Win32 não suporta mount

chdir SetCurrentDirectory Altere o diretório de trabalho atual

chmod (none) Win32 não suporta segurança (embora NT suporte)

kill (none) Win32 não suporta sinais

time GetLocalTime Obtenha o horário atual

(11)

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Introdu¸c˜ao Sistemas monol´ıticos Sistemas em Camadas M´aquinas Virtuais Cliente-Servidor Cliente-Servidor Distribu´ıdo

Sum´ario

1 Introdu¸c˜ao

2 Hist´orico dos SOs

3 Revis˜ao de Hardware

4 Conceitos de SO

5 Estruturas de SO

6 Estudo de caso: Linux

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 41/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Introdu¸c˜ao Sistemas monol´ıticos Sistemas em Camadas M´aquinas Virtuais Cliente-Servidor Cliente-Servidor Distribu´ıdo

Estruturas de SO

Como o SO ´e organizado internamente Estruturas cl´assicas

monol´ıtico em camadas m´aquinas virtuais cliente/servidor

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 42/53 Introdu¸c˜ao

Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Introdu¸c˜ao Sistemas monol´ıticos Sistemas em Camadas M´aquinas Virtuais Cliente-Servidor Cliente-Servidor Distribu´ıdo

Sistemas monol´ıticos

Procedimento principal Procedimentos de serviços Procedimentos utilitários Cole¸c˜ao de procedimentos Invoca¸c˜ao livre Confiabilidade Desempenho Procedimentos de servi¸co implementam chamadas de sistema

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 43/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Introdu¸c˜ao Sistemas monol´ıticos Sistemas em Camadas M´aquinas Virtuais Cliente-Servidor Cliente-Servidor Distribu´ıdo

Sistemas em Camadas

5 O operador 4 Programas do usuário 3 Gerenciamento de entrada/saída 2 Comunicação operador-processo

1 Gerenciamento da memória e do tambor magnético 0 Alocação de processador e multiprogramação

Camada Função

Estrutura do sistema operacional THE Interfaces bem definidas

Cada camada usa os servi¸cos da camada inferior Nem sempre suportada pelo hardware Exemplos: THE, MULTICS

(12)

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Introdu¸c˜ao Sistemas monol´ıticos Sistemas em Camadas M´aquinas Virtuais Cliente-Servidor Cliente-Servidor Distribu´ıdo

M´aquinas Virtuais

Instruções de E / S aqui Desvio (trap) aqui

Desvio (trap) aqui Chamadas ao sistema aqui Cópias virtuais do 370

CMS CMS CMS

Monitor de máquina virtual VM/370 Hardware do 370 Estrutura do VM/370 com o CMS O MMV fornece uma abstra¸c˜ao do hardware para as MVs Isolamento entre as MVs

Diferentes sistemas operacionais nas MVs Desempenho depende do suporte do HW Consolida¸c˜ao de servidores

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 45/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Introdu¸c˜ao Sistemas monol´ıticos Sistemas em Camadas M´aquinas Virtuais Cliente-Servidor Cliente-Servidor Distribu´ıdo

Cliente-Servidor

Processo cliente Processo cliente Servidor de processos Servidor de terminais Servidor de arquivos Servidor de memória Micronúcleo Modo usuário Modo núcleo

Clientes obtêm serviços enviando mensagens aos processos servidores

Funcionalidades do n´ucleo particionadas micron´ucleo (microkernel) servidores no espa¸co de usu´ario Comunica¸c˜ao por troca de mensagens Algumas fun¸c˜oes exigem modo n´ucleo Confiabilidade vs desempenho

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 46/53 Introdu¸c˜ao

Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Introdu¸c˜ao Sistemas monol´ıticos Sistemas em Camadas M´aquinas Virtuais Cliente-Servidor Cliente-Servidor Distribu´ıdo

Cliente-Servidor Distribu´ıdo

Máquina 1 Máquina 2 Máquina 3 Máquina 4

Cliente Núcleo Servidor de arquivos Núcleo Servidor de processos Núcleo Servidor de terminais Núcleo Mensagem de cliente para servidor

Rede

Modelo cliente-servidor se adapta a SD Transparˆencia de falhas ´e diferente

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 47/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Sum´ario

1 Introdu¸c˜ao

2 Hist´orico dos SOs

3 Revis˜ao de Hardware

4 Conceitos de SO

5 Estruturas de SO

6 Estudo de caso: Linux

(13)

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

UNIX e Linux

O desenvolvimento do UNIX come¸cou na d´ecada de 70 Sistemas UNIX tornaram-se padr˜oes de facto na ind´ustria e na academia desde o final dos anos 70

Nos anos 80, diversas vers˜oes de UNIX foram desenvolvidas extens˜oes incompat´ıveis (rede, ambientes gr´aficos, mecanismos de IPC, threads)

padr˜ao POSIX tenta minimizar o problema Em 1987, Tanenbaum desenvolve o Minix

No in´ıcio dos anos 90, PCs comuns passaram a ter capacidade para executar UNIX “completo”

um grande problema era o custo

Minix era barato, mas Tanenbaum n˜ao queria complic´a-lo Em 1991, Linus Torvalds desenvolve um kernel compat´ıvel com UNIX e o libera na Internet

ferramentas de usu´ario e desenvolvimento do projeto GNU Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 49/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Estrutura de um sistema UNIX cl´assico

Hardware Kernel System Call Interface UNIX Commands and Libraries User-written Applications Figure 2.14 General UNIX Architecture

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 50/53 Introdu¸c˜ao

Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Kernel de um sistema UNIX cl´assico

Hardware Hardware Level Kernel Level Kernel Level User Level User Programs Trap Hardware Control System Call Interface

Libraries

Device Drivers File Subsystem Process

Control Subsystem character block Buffer Cache Inter-process communication Scheduler Memory management

Figure 2.15 Traditional UNIX Kernel

Sistemas Operacionais 2009/2 Maur´ıcio A. Pillon & Rafael R. Obelheiro 51/53

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Componentes do kernel do Linux

signals system calls processes & scheduler virtual memory physical memory system

memory network inter-face controller interrupts

processes

Figure 2.18 Linux Kernel Components

hardwar

e

user

level

kernel

CPU terminal disk

traps & faults

char device

drivers block devicedrivers network de-vice drivers file systems networkprotocols

(14)

Introdu¸c˜ao Hist´orico dos SOs Revis˜ao de Hardware Conceitos de SO Estruturas de SO Estudo de caso: Linux

Bibliografia B´asica

Andrew S. Tanenbaum.

Sistemas Operacionais Modernos, 2aEdi¸c˜ao. Cap´ıtulo 1.

Pearson Prentice-Hall, 2003.

Abraham Silberchatz, Greg Gagne e Peter Baer Galvin.

Fundamentos de Sistemas Operacionais, 6aEdi¸c˜ao.

LTC - Livros T´ecnicos e Cient´ıficos Editora S.A., 2004.

Referências

Documentos relacionados

No caso do esporte, consideramos que o corpo (entendido aqui como o.. próprio homem) é a matéria que torna possível a criação de gestos técnicos específicos de

Ellen Semple, discípu l a de Ratzel, discorre sobre as influências das condições geográficas (configuração da costa, padrão dos rios, cadeias de mon - tanhas,

Este trabalho teve como objetivo geral desenvolvimento, caracterização e avaliação de nanopartículas de ácido ursólico incorporadas em formulação cosmética, e os

Pondo em vista todos os conceitos at´ e aqui apresentados principalmente quanto ao tratamento de sistemas dinˆ amicos em conceitos de estados, podemos come¸car a constru¸c˜ ao

Desenvolvimento Denver II (Denver II), por ser o método para avaliação de suspeita de atraso no desenvolvimento infantil mais utilizado pelos profissionais da área

Desse modo, os achados em empresas brasileiras, não corroboram com os resultados da pesquisa de Shyu (2011) realizado em empresas tailandesas, em que a relativa

E, para a promoção deste concurso, firmou parceria com o Shopping Paseo Zona Sul, Projeto Contato Escola de Fotografia e Go Image, que participarão exclusivamente como

Assim como em Montevidéu, em que por muitos anos carreguei comigo os relatos das memórias espaciais de um uruguaio que ali nasceu e de onde fiz meu próprio mapa mental do país que