sistemas operacionais

26
Clique para editar o estilo do subtítulo mestre Sistema Operacional I

Upload: virginia

Post on 11-Jul-2015

1.609 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Sistemas Operacionais

Clique para editar o estilo do subtítulo mestre

Sistema Operacional I

Page 2: Sistemas Operacionais

Cronograma de aula Teoria

• Introdução aos sistemas operacionais

• Conceitos e características

• Histórico dos sistemas operacionais

Linux

• História

• Evolução cronológica

• Estrutura do Linux

• Distribuições existentes do Linux

• Vantagens e desvantagens do Linux;

• Hardware necessário;

• Linux no mercado;

Page 3: Sistemas Operacionais

Sistema Operacional

Segundo alguns autores (Silberschatz et al, 2005; Stallings, 2004; Tanenbaum, 1999), existem dois modos distintos de conceituar um sistema operacional:

Visão top-down, pela perspectiva do usuário ou programador: é uma abstração do hardware, fazendo o papel de intermediário entre o software (programas) e os componentes físicos do computador, o (hardware);

Visão bottom-up: é um gerenciador de recursos, i.e., que controla quais aplicações (processos) podem ser executadas, quando devem ser executadas e quais recursos (memória, disco, periféricos) podem ser utilizados.

Page 4: Sistemas Operacionais

Sistema Operacional

...Resumindo...

Conjunto de programas que gerenciam os recursos do

computador.

Page 5: Sistemas Operacionais

Sistema Operacional

O que faz?

• Fornece interface entre o usuário e o sistema (interpretador de comandos);

• Camada (interação) entre o hardware e o software;

• Gerencia recursos de hardware;

• Gerenciamento de processos;

• Gerenciamento de memória;

• Gerência de arquivos;

• Entrada e saída de dados.

Page 6: Sistemas Operacionais
Page 7: Sistemas Operacionais

Gerência de Processos

Criação e deleção de processos;

Suspensão e retomada de processos;

Prover mecanismos para sincronização de processos;

Prover mecanismos para comunicação de processos;

Prover mecanismo para tratar deadlock (processos que

estão a espera de recursos que jamais serão liberados).

Page 8: Sistemas Operacionais

Gerenciamento de memória

Controlar quais regiões de memória são utilizadas e por qual processo;

Decidir qual processo deve ser carregado para memória quando espaço for disponível;

Alocar e desalocar espaço de memória.

Page 9: Sistemas Operacionais

Gerência de Arquivos

Oferece a abstração de arquivos e diretórios;

Criação e remoção de arquivos e diretórios;

Mapeamento para memória secundária.

Page 10: Sistemas Operacionais

Kernel

É o núcleo do sistema operacional. É o Kernel que gerencia os recursos do sistema e permite que os programas façam uso deles.

Gerencia e controla o acesso ao sistema de arquivos, a memória, a tabela de processos e o acesso aos dispositivos e periféricos, entre outras atribuições. É a cabeça do sistema operacional.

O Kernel do Linux é aberto ao contrário do Windows.

Page 11: Sistemas Operacionais
Page 12: Sistemas Operacionais

Um pouco de história....

A primeira geração (aproximadamente 1945-1955) de computadores foram basicamente construídos com válvulas e painéis e os sistemas operacionais "não existiam". Os programadores, que também eram os operadores, controlavam o computador por meio de chaves, fios e luzes de aviso.

Page 13: Sistemas Operacionais

ENIAC, o pai de todos os computadores...

O ENIAC (Electronic Numerical Integrator and Computer) foi o primeiro computador digital eletrônico de grande escala. Criado em fevereiro de 1946 pelos cientistas norte-americanos John Eckert e John Mauchly, da Electronic Control Company.

O ENIAC começou a ser desenvolvido em 1943 durante a II Guerra Mundial para computar trajetórias táticas que exigissem conhecimento em matemática.

Page 14: Sistemas Operacionais

Características

Pesava mais de 30 toneladas;

Operava na base dez e não em base binária;

Ocupava 270 m2;

Sua capacidade de processamento era de 5.000 operações por segundo;

Criado na segunda guerra, tinha como principal finalidade cálculos balísticos;

Esta máquina não tinha sistema operacional, nem monitor tampouco teclado.

ENIAC, o pai de todos os computadores...

Page 15: Sistemas Operacionais

Quando começou o Sistema Operacional?

O conceito de sistema operacional apareceu durante a segunda geração da computação moderna (1955 – 1965), através da programação em Batch. Assim, vários comandos já poderiam ser executados em sequência através de cartões perfurados, eliminando parte do trabalho do operador de terminal. Normalmente, um programa era composto por um conjunto de cartões inseridos pelo usuário do sistema, na ordem correta.

Page 16: Sistemas Operacionais

O 1º Sistema Operacional moderno

Unix Criado em 1969 por um grupo de desenvolvedores da AT&T visando acabar com o problema da incompatibilidade de SOs de máquinas distintas. É possível afirmar que mais de 90% dos SOs atuais foram influenciados de alguma maneira pelo Unix; 1º Versão em assembly, sendo reescrito em C no ano de 1973, que é usado até os dias de hoje; Este sistema introduziu conceitos muito importantes para a computação: Portabilidade; Multi-usuário; Multi-tarefas e compartilhamento de tarefas; Na década de 70, o Unix foi distribuído gratuitamente (incluindo seu código fonte) para universidades e órgãos governamentais norte-americanos, o que conferiu muita popularidade a este sistema. Sua interface era totalmente em modo texto sem interface gráfica

Page 17: Sistemas Operacionais

SO para computadores pessoais

O Unix, em suas primeiras versões, foi desenvolvido para o uso em computadores de grande porte, normalmente em universidades. Contudo, alguns jovens programadores possuíam uma ideia absurda para época: criar sistemas operacionais para o uso de pessoas comuns. Um dos primeiros a pensar desta forma foi Steve Jobs, fundador da Apple. Desde a criação de sua empresa, seu principal foco foi a criação de computadores para o dia-a-dia, incluindo sistemas operacionais fáceis de serem operados. 1976 - O lançamento do Apple I. Pela primeira vez, um PC continha um teclado fácil de ser utilizado, com uma mini-televisão adaptada como monitor. 1979 – O lançamento do Lisa pela Apple - Steve Jobs, aproveita todas as ideias gráficas do computador criado pela Xerox Parc. 1975 - Bill Gates funda a Microsoft, empresa que possuía como objetivo primário o desenvolvimento de software em linguagem BASIC para o computador Altair da IBM. 1979 - A IBM se interessou pelo projeto da Microsoft e ambas as organizações afirmaram um contrato.

Page 18: Sistemas Operacionais

1982- Microsoft lançou MS-DOS em 1982 cuja interface era baseada em modo texto, bastante parecida com a utilizada pelo Unix; 1984 - O Apple Machintosh foi lançado,introduzindo o conceito de desktop, utilizando ícones e pastas para representar programas e arquivos do modo como conhecemos hoje. .... Gates Gates convenceu Jobs a ser incluído no desenvolvimento do Macintosh. O objetivo de Gates era maior que isso: copiar a interface gráfica do Machintosh, e foi exatamente isso que aconteceu. No lançamento do novo PC da Apple, Steve Jobs descobriu que a Microsoft estava lançando máquinas no Japão, cujas interfaces eram muito parecida com a do seu computador. 1985 - Gates lançou o Sistema Operacional Windows 1.0 2001 - Apple surpreendeu o mundo da informática, abandonando o seu próprio código e reescrevendo todo o seu sistema operacional usando o Unix como base. A partir daí, ele passou a se chamar MAC OSX, sistema que continua forte até os dias de hoje.

SO para computadores pessoais

Page 19: Sistemas Operacionais

Tipos de Sistemas Operacionais

Batch;

Time sharing (Tempo compartilhado);

Tempo real;

Distribuídos;

Paralelos;

Page 20: Sistemas Operacionais

Implementados na década de 1960. Também chamados de jobs, eram submetidos para execução através de cartões perfurados e armazenados em disco ou fita, onde aguardavam para ser processados.

Posteriormente, em função da disponibilidade de espaço na memória principal, os jobs eram executados, produzindo uma saída em disco ou fita.

Não exige a interação do usuário com a aplicação.

Exemplos: Programas envolvendo cálculos numéricos, compilações, ordenações, backups e todos aqueles onde não é necessária a interação com o usuário.

É um conjunto de comandos rodados sequencialmente.

Sistemas Batch (em lote)

Page 21: Sistemas Operacionais

Processamento Batch

Page 22: Sistemas Operacionais

Sistemas de Tempo Compartilhado (Time sharing)

Permitem que diversos programas sejam executados a partir da divisão do tempo do processador em pequenos intervalos de tempo, fatias de tempo denominadas time-slice. Caso a fatia de tempo não seja suficiente para a conclusão do programa, ele é interrompido pelo sistema operacional e substituído por um outro, enquanto fica aguardando por uma nova fatia de tempo. O sistema cria para cada usuário um ambiente de trabalho próprio, dando a impressão de que todo o sistema está dedicado exclusivamente a ele. Permitem a interação dos usuários com o sistema, através de terminais que incluem vídeo, teclado e mouse. Esses sistemas possuem uma linguagem de controle que permite ao usuário comunicar-se diretamente com o sistema operacional, através de comandos. Desta forma, é possível verificar arquivos armazenados em disco ou cancelar a execução de um programa.

Page 23: Sistemas Operacionais

São implementados de forma semelhante aos sistemas de tempo compartilhado. O que caracteriza a diferença entre os dois tipos de sistemas é o tempo exigido no processamento das aplicações. Enquanto em sistemas de tempo compartilhado o tempo de processamento pode variar sem comprometer as aplicações em execução, nos sistemas de tempo real os tempos de processamento devem estar dentro de limites rígidos, que devem ser obedecidos, caso contrário, poderão ocorrer problemas irreparáveis. Nos sistemas de tempo real não existe a idéia de fatia de tempo, implementada nos sistemas de tempo compartilhado. Um programa utiliza o processador o tempo que for necessário ou até que apareça outro mais prioritário. A importância ou prioridade de execução de um programa é definida pela própria aplicação e não pelo sistema operacional. Esses sistemas, normalmente, estão presentes em aplicações de controle de processos, como no monitoramento de refinarias de petróleo, controle de tráfego aéreo, de usinas termoelétricas e nucleares, ou em qualquer aplicação onde o tempo de processamento é fator fundamental.

Sistemas de Tempo Real (Real-Time)

Page 24: Sistemas Operacionais

Sistemas Distribuídos

Caracterizam-se por possuir duas ou mais UCPs interligadas e trabalhando em conjunto. A vantagem deste tipo de sistema é permitir que vários programas sejam executados ao mesmo tempo ou que um mesmo programa seja subdividido em partes, para serem executadas simultaneamente em mais de um processador. Com múltiplos processadores, foi possível a criação de sistemas computacionais, aplicado, por exemplo, no desenvolvimento aeroespacial, prospecção de petróleo, simulações, e processamento de imagens. A princípio, qualquer aplicação que faça uso intensivo da UCP será beneficiada pelo acréscimo de processadores ao sistema. Vantagens específicas como escalabilidade, disponibilidade e balanceamento de carga.

Page 25: Sistemas Operacionais

Sistema Paralelos

Vários processos são executados em várias máquinas,conectadas entre si de alguma forma. Estes processos se comunicam mutuamente através de mensagens;

Permitir que sistemas munidos de mais de um processador possam acelerar a resolução de um problema de natureza paralelizável;

- Poder executar vários processos (programa em execução) simultaneamente;

- Otimizar o tempo ocioso (idle time) das CPU’s;

Page 26: Sistemas Operacionais

Linux