1 introdução a sistemas operacionais prof. alexandre monteiro recife

48
1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Upload: internet

Post on 22-Apr-2015

114 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

1

Introdução a Sistemas Operacionais

Prof. Alexandre Monteiro

Recife

Page 2: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Contatos

Prof. Guilherme Alexandre Monteiro Reinaldo

Apelido: Alexandre Cordel

E-mail/gtalk: [email protected]

[email protected]

Site: http://www.alexandrecordel.com.br/fbv

Celular: (81) 9801-1878

Page 3: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Computador Moderno

Componentes físicos (hardware)

• Um ou mais processadores• Memória• Discos• Impressoras• Vários outros dispositivos de E/S (tela, mouse…)

Gerenciar todos estes componentes requer uma camada de software (abstração, um modelo mais simples do computador) – o sistema operacional

Sistema Complexo

Page 4: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Exemplo de SO’s SO’s mais conhecidos

• UNIX • Windows (95/98/ME) (NT/2000/XP/Vista/7/8)• Linux (Suse, Ubuntu, Debian, Fedora, Kurumin)• MAC OS X• Solaris• Free BSD• Symbian• IOS• Android• Chorme OS• Ubuntu Mobile OS

Page 5: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Exemplo de SO’s

Programa com o qual usuários interagem Windows e Linux• Shell (interpretador de linhas comandos)

- DOS, Bash, SH, CSH, KornShell, etc.)• GUI (Graphical User Interface)• Não são parte do sistema operacional, embora o utilize para realizar seu trabalho.

Page 6: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Shell vs. SO

Shell é tudo no linux é 1000% poderoso, e é capaz de se fazer tudo nele, como: ouvir MP3, editar textos, navegar na internet, fazer monitoramento de rede, configurações do sistema, usar icq, irc, ou seja, absolutamente.

Bash é o padrão do linux ele completa comandos com a tecla TAB, pode-se ter cores para identificar pastas e arquivos, tem-se repetição de comandos, varias teclas de atalho para manipulação das linhas (sintaxe de comando) mostra o usuário o nome da máquina e a pasta que se está (coisa que o SH não faz), então um se difere do outro por estas funcionalidades, uns tem mais outros menos.

MS-DOS (Microsoft Disk Operating System) é um sistema operacional baseado em um prompt de linhas de comando e é bastante limitado.

Page 7: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Exemplo de SO’s

O iOS é a base do iPhone, do iPad e do iPod touch. Como o iOS foi projetado para aproveitar as tecnologias avançadas de cada hardware Apple, os seus dispositivos estão anos à frente.

Android é um sistema operacional móvel (SO) baseado no núcleo linux e atualmente desenvolvido pela empresa de tecnologia Google utilizando a linguagem de programação Java.

O Chrome OS é um avançado sistema operacional de código aberto baseado em Linux que é totalmente focado na web e nos serviços oferecidos pelo Google, a empresa que o criou.

Page 8: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Computador Moderno

Fonte: Tanenbaum, Modern Operating Systems 3 ed, São Paulo p.1, 2010 Prentice-Hall, Inc. All rights reserved.

Page 9: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Computador Moderno

Page 10: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Sistema Operacional

BIOS

Page 11: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

SO como máquina estendida

Sistemas operacionais tornam o hardware pouco atraente em abstrações mais interessantes

Page 12: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

SO: Interface de Usuário - GUI

Page 13: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

SO: Interface de Usuário - Shell

Page 14: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

SO como Gerenciador de Recursos Gerencia e protege memória, dispositivos de E/S e

outros recursos (hardware) como mouse, teclado, impressora, etc.

Permite o compartilhamento (multiplexação) de recursos

•no tempo (time-sharing)- Ex.: múltiplos programas compartilham o processador

(executam) ao mesmo tempo

•no espaço- Ex.: um sistema de arquivos (parte do SO) permite que dados

de diferentes usuários/arquivos compartilhem o espaço em disco

Page 15: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Mais uma vez: O que é um SO?

É uma Máquina Estendida

•Oculta os detalhes complicados que têm quer ser executados

•Apresenta ao usuário uma máquina virtual, mais fácil de usar

É um Gerenciador de Recurso

•Cada programa tem um tempo com o recurso

- Ex.: compartilhamento de CPU

•Cada programa tem um espaço no recurso

- Ex.: compartilhamento de memória

Page 16: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Vídeo

A história dos principais Sistemas Operacionais

https://www.youtube.com/watch?v=tV3xeB8Pt2I

Page 17: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

História dos SO’s e dos Comutadores Primeira geração: 1945 - 1955

•Válvulas, painéis de programação Segunda geração: 1955 - 1965

• transistores, sistemas em lote Terceira geração: 1965 – 1980

•CIs (circuitos integrados) e multiprogramação

Quarta geração: 1980 – presente

•Computadores pessoais Hoje: onipresença – computação ubíqua

Page 18: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

18

1ª Geração

Computadores com “programas fixos” – todos até a década de 40• Programa implícito no hardware

• A maioria tinha propósito específico, como acontece com as calculadoras modernas

• Apenas uma minoria podia ser reprogramada, o que era feito de maneira mecânica

- Ligando e desligando fios

Page 19: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

19

1ª Geração

Computadores de programas armazenados a partir da década de 40 com o SSEM – Manchester Small-Scale Experimental Machine• São os computadores modernos, de propósito

geral

• Diferentes programas podem ser criados e carregados na memória

• Programas escritos usando um conjunto de instruções, representadas em código binário- Linguagem de máquina!

• Não havia Sistema Operacional

Page 20: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

20

Fonte: http://en.wikipedia.org/wiki/Manchester_Small-Scale_Experimental_Machine

Page 21: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

ENIAC – 1º Computador Programável

Pesava 30 toneladas, media 5,50 m de altura e 25 m de comprimento e ocupava 180 m² de área construída.

Foi construído sobre estruturas metálicas com 2,75 m de altura e contava com 70 mil resistores e 17.468 válvulas a vácuo ocupando a área de um ginásio desportivo, diodos de cristal de 7200, 1.500 relés, 70.000 resistores, 10.000 capacitores e cerca de 5 milhões de juntas soldadas à mão.

Segundo Tom Forester, quando acionado pela primeira vez, o ENIAC consumiu tanta energia que as luzes de Filadélfia piscaram.

Processador de 20 ciclos de clock de 0,1MHz na unidade.

Era incapaz de armazenar programa em memória (cartões perfurados) – Em 1970 DRAM de 1KB, mais tarde 256KB SDRAM.

Page 22: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

ENIAC

Page 23: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

23

1ª Geração

A linguagem de máquina do SSEM pode ser entendida (grosseiramente) como a primeira linguagem de programação

Essa linguagem define a associação entre uma instrução em binário e o efeito dela sobre o hardware• Linguagem entendida diretamente pelo

processador• Cada arquitetura de computador define a sua

própria linguagem

Page 24: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

24

História dos SO’s

Exemplo de instrução• Somar o valor dos registradores 1 e 2 e

guardar o resultado no registrador 3

Exemplo de código de máquina (fictício)

Podemos ver que escrever um programa em linguagem de máquina não é trivial...

1011100 0001 0010 0011

adição reg. 1 reg. 2 reg. 3

Page 25: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

25

História dos SO’s

Programadores definiram uma notação simbólica para representar seus programas• Usada para anotar seus programas em papel

antes de passar para linguagem de máquina

Essa notação definia símbolos para representar cada instrução, tais como:• ADD – operação de adição• LOAD – operação de leitura da memória• R1 – representa o registrador 1• ...

Page 26: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

26

História dos SO’s

A nova notação simbólica recebeu o nome de linguagem assembly ou linguagem de montagem

Exemplo de instrução em assembly• ADD R1 R2 R3

- Representa a mesma operação dada antes em código de máquina

Page 27: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

27

História dos SO’s

Não demorou até alguém ter a idéia de criar um programa para traduzir... • De um texto digitado na linguagem assembly• Para um arquivo em linguagem de máquina

Este tipo de programa passou a ser conhecido pelo nome de assembler ou montador• Um compilador primitivo

Page 28: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

28

História dos SO’s

Programar em linguagem de montagem, porém, ainda tinha muitas das desvantagens da própria linguagem de máquina

O principal problema era a necessidade de pensar não só no algoritmo em si, mas no funcionamento do hardware

Page 29: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

29

História dos SO’s Começaram a surgir outras linguagens

mais elaboradas• Fortran (1957)• LISP (1959)• COBOL (1960)• BASIC (1964)• C (1972)• etc.

Page 30: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

30

História dos SO’s Facilitaram a vida dos programadores ao tornar a

notação mais intuitiva e mais distante dos detalhes de hardware

Por exemplo, o comando Fortran

temp = 2 + 3

Engloba várias operações de hardware:1. Carregar os operadores em registradores2. Operar a adição, guardando o resultado em

algum registrador3. Copiar o conteúdo do registrador de

resultado para a memória

Page 31: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

31

História dos SO’s

As novas linguagens que surgiram foram chamadas de linguagens de alto nível

Em contraste, as linguagens assembly e de montagem passaram a ser chamadas de linguagens de baixo nível

Page 32: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

2ª Geração

Estrutura de um job típico (lote de cartões)

Transistores e sistemas em lote (batch) - Mainframes

(a) Programadores levam os cartões para o 1401 (b) 1401 gravada o lote de tarefas dos cartões em fita (c) operador levava a fita de entrada para 7094 (d) 7094 executava o processamento (e) operador levava a fita de saída para o 1401 (f) coloca a fita no 1401 que imprime a saída

Page 33: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

2ª Geração

$JOB -> $FORTRAN -> $LOAD -> $RUN -> $END

Fonte -> Compila -> Carrega -> Processa -> Finaliza

Page 34: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

3ª Geração

CI’s e Sistema de multiprogramação

•Três jobs na memória

Page 35: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

4ª Geração

Computadores Pessoais (1º SO – CP/M)

DOS como sistema operacional (Bill Gates)

Page 36: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Diversidade dos SOs

Sistemas operacionais de computadores de grande porte (mainframe)

Sistemas operacionais de servidores / redes

Sistemas operacionais de multiprocessadores (paralelismo)

Sistemas operacionais de computadores pessoais

Sistemas operacionais de dispositivos portáteis/móveis (ex. celulares)

Sistemas operacionais de tempo-real

Sistemas operacionais embarcados

Sistemas operacionais de cartões inteligentes

Sistemas operacionais de sensores

Page 37: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Estrutura do SO: Sistema Monolítico

Modelo simples de estruturação de um sistema monolítico.

Page 38: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Monoprogramado vs. Multiprogramado Sistemas Operacionais Monoprogramados ou

Monotarefa são os SO que executam apenas um programa do usuário de cada vez.

Por exemplo, se se utiliza um processador de texto e se pretende fazer um desenho, tem que se fechar o processador de texto e abrir a folha de desenho.

• Ex.: MS-DOS

Page 39: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Monoprogramado vs. Multiprogramado Sistemas Operacionais Multiprogramados ou

Multitarefa são os SO que executam dois ou mais programas aparentemente em simultâneo. Este é o conceito de Paralelismo Concorrente.

Na verdade o que o processador faz é atribuir frações de tempo aos programas que estão a executar. Existem diferentes técnicas de multitarefa.

• Multitarefa cooperativa• Multitarefa preempetiva• Multitarefa multithreading

Page 40: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Monoprogramado vs. Multiprogramado

Multitarefa cooperativa: Executa dois ou mais programas em simultâneo mas o programa que está em primeiro plano tem controle sobre o processador. Neste caso se este programa falhar bloqueia o computador e tem que ser reiniciado. Exempo de SO: Windows 3.x e versões anteriores ao Mac OS 8.

Multitarefa preempetiva: É o processador que controla a execução dos programas, desta forma permite ao sistema operacional recuperar o controle caso um programa bloqueie. O utilizador perde os trabalhos do programa que falhou mas os restantes programas continuam a trabalhar. Exemplo de SO: Unix; Linux; Windows 95 e superiores; MAC OS 8 e superiores.

Multitarefa multithreading: Executa mais que uma tarefa do mesmo programa. Os programas criam threads, ou seja, tarefas distintas que executam determinadas funções dentro do mesmo programa. Por exemplo, quando conversamos em um chat, outro thread está escutando se alguém está querendo falar. Os mais recentes SO utilizam este tipo de multitarefa.

Page 41: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Monoprocessado vs. Multiprocessado Monoprocessamento é a capacidade de um

sistema operacional executar vários processos compartilhando memória mas utilizando apenas um processador.

Multiprocessamento é a capacidade de um sistema operacional executar simultaneamente dois ou mais processos em Paralelo. Pressupõe a existência de dois ou mais processadores. Este é o conceito de Paralelismo Real.

Difere da multitarefa, pois esta simula a simultaneidade, utilizando-se de vários recursos, sendo o principal o compartilhamento de tempo de uso do processador entre vários processos.

Page 42: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Monousuário vs. Multiusuário

Monousuário• O SO controla e considera apenas um usuário por vez.

• Ex. MS-DOS Multiusuário

• O SO identifica usuários diferentes por suas contas (username e senha) e permite perfis diferentes.

• Ex. Mac OS, Windows XP, Linux...

Page 43: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Sistemas Operacionais Clássicos

Batch: Sistema Operacional em lote, era utilizado por terminais de máquinas de grande porte, que reuniam um “lote de programas” para enviar para execução, onde o usuário não interage com o seu programa.

Time-sharing: permite que diversos usuários compartilhem o computador onde cada usuário possui seu programa (ou parte dele) na memória principal e o processador é alocado por um pequeno período de tempo (fatia de tempo ou time slice) a cada programa de usuário.

Real-time: responde dentro de um período de tempo previamente especificado (geralmente muito pequeno), a estímulos gerados externamente e utiliza conceitos de multiprogramação, oferecendo facilidades para as aplicações de tempo real.

Page 44: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Estrutura do SO: Sistema Camadas

Estrutura em camadas

Modularidade

Hierarquia

Facilita evolução e adaptação a novos ambientes (Flexibilidade)

Page 45: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Estrutura do SO: Sistema Camadas

Estrutura em camadas

Modularidade

Hierarquia

Facilita evolução e adaptação a novos ambientes (Flexibilidade)

Page 46: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Vídeo

A evolução dos Computadores e suas Gerações

https://www.youtube.com/watch?v=aCAyrscLwKM

Page 47: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

Referências

Sistemas Operacionais Modernos – 2ª Edição. A. Tanenbaum, 2003.

Modern Operating Systems 3 e. Prentice-Hall, 2008.

Page 48: 1 Introdução a Sistemas Operacionais Prof. Alexandre Monteiro Recife

48

Introdução a Sistemas Operacionais

Prof. Alexandre Monteiro

Recife