engenharia de software e tópicos de programação avançada ... · entre o usuário e o hardware...

20
Sistemas Operacionais Prof. André Y. Kusumoto [email protected]

Upload: lamtu

Post on 09-Nov-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Sistemas Operacionais

Prof. André Y. Kusumoto

[email protected]

Prof. André Y. Kusumoto – [email protected]

Introdução

• Um sistema operacional é um programa que atua como intermediário

entre o usuário e o hardware de um computador.

• O propósito de um sistema operacional é fornecer um ambiente no qual o

usuário possa executar programas.

• O principal objetivo de um sistema operacional é, portanto tornar o uso do

sistema de computação conveniente, isto é, simplificar, o uso computador

(visão top-down).

• Uma meta secundária é usar o hardware do computador de forma

eficiente, isto é, disponibilizar os serviços da máquina de forma ordenada

e de alocação controlada para os processadores, memória, dispositivos

de E/S para os programas que competem para seu uso (visão bottom-up).

2/12

Prof. André Y. Kusumoto – [email protected]

O que é um Sistema Operacional?

• Um sistema de computação pode ser dividido em quatro componentes básicos:

• hardware – CPU, a memória e os dispositivos de entrada/saída (I/O) – fornece os

recursos básicos de computação.

• programas aplicativos – planilhas eletrônicas, compiladores e navegadores Web –

definem as maneiras em que esses recursos são usados para resolver os problemas

de computação dos usuários.

• Pode haver muitos usuários diferentes (pessoas, máquinas, outros computadores)

tentando resolver problemas diferentes.

• Sistema Operacional controla e

coordena o uso do hardware entre os

vários programas aplicativos para os vários

usuários.

3/12

Visão abstrata dos componentes de um

sistema de computação

Um sistema operacional é semelhante a um governo.

O sistema operacional não executa nenhuma função

útil por si mesma. Simplesmente fornece um

ambiente no qual os outros programas podem

realizar tarefas úteis.

Prof. André Y. Kusumoto – [email protected]

Introdução

Sistema Operacional como um alocador de recursos

• Um sistema de computação possui muitos recursos (hardware e software) que podem ser

necessários para resolver um problema: tempo de CPU, espaço de memória, espaço de

armazenamento de arquivos, dispositivos de entrada/saída, entre outros.

• O sistema operacional atua como gerente desses recursos e os aloca conforme

necessário para a execução de tarefas.

Sistema operacional é um programa de controle

• Controla a execução dos programas de usuários e preocupa-se especialmente com a

operação e o controle de dispositivos de I/O.

• É mais fácil definir um sistema operacional pelo que ele faz do que pelo que ele é.

O principal objetivo de um sistema operacional é a conveniência do usuário. Os

sistemas operacionais existem porque tem como missão tornar a tarefa computacional

mais fácil. Uma meta secundária é a operação eficiente do sistema de computação.

• No passado, a eficiência era frequentemente mais importante que a conveniência.

4/12

Prof. André Y. Kusumoto – [email protected]

História dos Sistemas Operacionais

• A história dos Sistemas Operacionais está estreitamente ligada

a arquitetura dos computadores.

• Primeiro computador digital foi projetado pelo matemático inglês

Charles Babbage (1792-1871).

• Gastou parte de sua fortuna e de

sua vida tentando construir uma

máquina analítica.

• Os recursos tecnológicos

disponíveis na sua época, não

permitiram a efetivação de seu projeto.

5/12

Babbage Difference Engine No.2

https://commons.wikimedia.org

Prof. André Y. Kusumoto – [email protected]

História dos Sistemas Operacionais

Primeira Geração (1945-1955): computadores a válvulas

• ENIAC – 1946

• LINGUAGEM DE PRIMEIRA GERAÇÃO – LINGUAGEM DE MÁQUINA

• Cálculos de Balística e Fórmulas Científicas

• O ENIAC pesava 30 t, tinha 18 mil válvulas, consumia 25 KW e executava 100.000

cálculos por segundo

6/12

Prof. André Y. Kusumoto – [email protected]

História dos Sistemas Operacionais

Segunda Geração (1955-1965): transistores e sistemas em lote

• UNIVAC – 1952

• LINGUAGEM DE SEGUNDA GERAÇÃO – LINGUAGEM ASSEMBLER

• Cálculos e Processamento de Dados

• O computador continuava desajeitado e era usado basicamente em universidades e no

governo

7/12

Prof. André Y. Kusumoto – [email protected]

História dos Sistemas Operacionais

Terceira Geração (1965 -1980): Circuitos Integrados e Multiprogramação

• Linguagem de Terceira Geração – Fortran (1953) e Cobol (1959)

• Conceito de sistema operacional

• UNIX – sistema operacional multiplataforma – 1969

• Arpanet – precursora da internet

• Bancos de Dados, Contabilidade, Recursos Humanos, Hollerith, Controle de

Estoque e Sistemas de Informação

• O computador chega aos bancos, companhias de

seguro, empresas de menor porte

8/12

Prof. André Y. Kusumoto – [email protected]

História dos Sistemas Operacionais

Terceira Geração (1970 -1980)

• Aprimoramento da linguagem de terceira geração – Basic, Pascal, C

• Intel lança o primeiro micro processador (4004)

• Xerox lança o padrão Ethernet para rede de computadores

• Surge o primeiro microcomputador – MITS ALTAIR

• Surgem a Microsoft e a Apple

• Surge o Visicalc (planilha) e o Wordstar (processador de textos)

• Arpanet é aberta a usos não militares.

• A Internet se internacionaliza

• Processamento de Textos e Planilha de Cálculo

• O computador vai se tornando rapidamente menor e mais barato

9/12

Prof. André Y. Kusumoto – [email protected]

História dos Sistemas Operacionais

Quarta Geração (1980-1990): Computadores Pessoais

• Padrão IBM – PC e UNIX

• O microcomputador, máquina de quarta geração,

conquista o mercado

• Planilha Lotus 1,2,3

• Primeiro micro com interface gráfica – Apple Lisa

• Primeiro micro com mouse – Apple Macintosh

• MS Windows

• Surge a World Wide Web (www)

• Automação de Escritórios

• O computador está, finalmente, disponível para as

pessoas comuns

10/12

Apple Lisa

Prof. André Y. Kusumoto – [email protected]

História dos Sistemas Operacionais

Quinta Geração: 1990

• Proliferação de programas amigáveis

• Explosão das redes locais

• Surgem os browsers – Mosaic, Netscape e Internet Explorer

• Popularização da Internet

• Linguagens de quarta geração

• Surge o Linux, primeiro sistema operacional freeware de ótima qualidade

• Correio Eletrônico

• Trabalho em Grupo

• Corporativos Integrados

• O computador muda a forma de se fazer negócios

11/12

Prof. André Y. Kusumoto – [email protected]

História dos Sistemas Operacionais

Quinta Geração: hoje

• Avanço e massificação das telecomunicações

• A Internet torna-se ferramenta de trabalho

• Surgem linguagens próprias para o ambiente Web (Java, asp, etc.)

• e-commerce

• e-learning

• e-government

• Redes de Conhecimento

• O computador firma-se como equipamento multimídia

12/12

Prof. André Y. Kusumoto – [email protected]

Estrutura dos Sistemas Operacionais

Sistemas Monolíticos

“The Big Mess”

O SO é escrito com uma coleção de procedures, cada uma delas pode chamar as outras

quando for necessário.

As system calls providas pelo SO são requisitadas para por seus parâmetros em lugares

bem definidos, como os registradores, ou no stack, e então executam uma instrução

especial, conhecida como kernel (supervisor) call.

Nesta estrutura o sistema pode ser visto como um conjunto de rotinas que podem

interagir livremente umas com as outras. A estrutura monolítica pode ser comparada

como uma aplicação formada por vários procedimentos que são compilados

separadamente e depois linkados, formando um grande e único programa.

Exemplos: UNIX, o MS DOS, o FreeBSD, entre outros

13/12

Prof. André Y. Kusumoto – [email protected]

Estrutura dos Sistemas Operacionais

Sistemas Monolíticos

14/12

Prof. André Y. Kusumoto – [email protected]

Estrutura dos Sistemas Operacionais

Sistemas em Camadas

Hierarquia em camadas, cada uma construída sobre as outras.

THE: Technische Hogeschool Eindhoven, Netherlands, 1968.

Com o aumento da complexidade, os sistemas monolíticos se tornaram inviáveis. A

solução foi utilizar uma arquitetura modular, ou em camadas.

A arquitetura em camadas divide o SO em camadas sobrepostas.

Cada módulo oferece um conjunto de funções que podem ser utilizadas por outros

módulos. Módulos de uma camada podem fazer referências apenas a módulos das

camadas inferiores.

Uma desvantagem pode ser a demora na solicitação de um determinado serviço, visto

que pode ser necessário passar por diversas camadas. Dessa forma, seu desempenho é

degradado.

A vantagem da estruturação em camadas é isolar as funções do sistema operacional,

facilitando sua alteração e depuração

15/12

Prof. André Y. Kusumoto – [email protected]

Estrutura dos Sistemas Operacionais

Sistemas em Camadas

A camada 0 fornece a multiprogramação básica da CPU.

A camada 1 realiza o gerenciamento de memória.

A camada 2 trata da comunicação dos processos com dispositivos (E/S)

A camada 3 é responsável pelo gerenciamento dos dispositivos de E/S

Na camada 4 estão os programas de usuários e na camada 5 ocorre o controle geral do

sistema, chamado de operador de sistema

16/12

Prof. André Y. Kusumoto – [email protected]

Estrutura dos Sistemas Operacionais

Maquinas Virtuais

• Uma máquina virtual é uma duplicada de uma máquina real, com todas

as suas capacidades, mas isolada da máquina hospedeira.

• A cópia é realizada via software e é executada utilizando os mesmos

recursos de hardware da máquina hospedeira, entretanto, esses

recursos são virtualizados e compartilhados.

• Muito utilizada para criação de ambientes de testes e simulações.

• Caso seja necessário, a máquina pode ser apagada ou então migrada

para outra máquina.

17/12

Prof. André Y. Kusumoto – [email protected]

Estrutura dos Sistemas Operacionais

Cliente-Servidor

Uma tendência dos sistemas operacionais modernos é tornar o núcleo do sistema

operacional o menor e mais simples possível.

Sistema é dividido em processos, sendo cada um responsável por oferecer um conjunto

de serviços, como serviços de arquivos, serviços de escalonamento, etc.

Sempre que uma aplicação deseja algum serviço, ela o solicita ao processo responsável.

Nesta caso, a aplicação que solicita um serviço é chamada de cliente, enquanto o

processo que responde à solicitação é chamado de servidor.

A comunicação entre clientes e servidores é realizada através de mensagens. É função

do núcleo do SO realizar a comunicação, ou seja, a troca de mensagens entre o cliente e

o servidor.

A utilização deste modelo permite que os servidores executem em modo usuário, ou seja,

não tenham acesso direto a certos componentes do sistema. Apenas o núcleo executa

em modo kernel. Com isso, se um erro ocorrer em um servidor, este serviço pode parar,

mas o sistema não ficará inteiramente comprometido.

18/12

Prof. André Y. Kusumoto – [email protected]

Estrutura dos Sistemas Operacionais

Cliente-Servidor

Cliente-Servidor em Ambiente distribuído

19/12

Prof. André Y. Kusumoto – [email protected]

Referências

SILBERSCHATZ, A. GALVIN, P. B. GAGNE, G. Sistemas Operacionais

com Java. Rio de Janeiro : Elsevier, 2008.

TANENBAUM, A. S.; WOODHULL, A. S. Sistemas Operacionais. Porto

Alegre: Bookman, 2003.

Notas de aula Prof. Carlos Henrique Neto Lahoz.

20/12