Você está na página 1de 31

SISTEMAS

OPERACIONAIS

INTRODUÇÃO

Prof. Dr. Paulo Sampaio


e-mail: pnms.funchal@gmail.com
Visão geral sobre Sistemas Computacionais

No Inicio - “Máquina Analítica”.

▪ 1º. Dispositivo a ser considerado um computador digital.


▪ O mecanismo era composto por engrenagens e polias mas exigia uma
precisão ainda inexistente.
▪ Projetado por Charles Babbage (1792-1871), não realmente construído
na época, pois a tecnologia disponível não era suficiente.

▪ Não possuía um “sistema operacional”, mas seu projetista previa a


necessidade de um e contratou Ada Lovelace (1ª. Programadora do
mundo) para definir suas especificações.
Visão geral sobre Sistemas Computacionais

GERAÇÕES DE COMPUTADORES
1. Computadores Mecânicos (1642-1945)
2. Computadores com Tubos a Vácuo ou Válvulas Eletrônicas
(1945-1955)
3. Computadores com Transistores (1955-1965)
4. Computadores com Circuitos Integrados (1965-1980)
5. Computadores com Integração em Escala Muito Grande -
VLSI (1980-??)
Visão geral sobre Sistemas Computacionais

▪ Ao longo dos tempos os sistemas computacionais evoluíram de forma


exponencial, promovendo diversas mudanças no intuito de atender
inúmeras demandas do homem.

▪ Estas mudanças resultaram em sistemas computacionais com um ou


mais processadores, memória principal, discos, impressoras, interfaces
de rede, monitores e outros dispositivos.

▪ Este ambiente é uma tanto complexo do ponto de vista físico.

▪ Desenvolver programas que mantenham o controle de todos estes


componentes de forma otimizada é extremamente difícil.
Visão geral sobre Sistemas Computacionais

PRIMEIRA GERAÇÃO (1945-1955):


COMPUTADORES COM TUBOS A VÁCUO

John von Neumann (Estados Unidos da América, Instituto de


Estudos Avançados de Princeton) construiu em 1952 o
computador IAS:

⚫ Programas e dados representados de forma


digital em memória
⚫ Processamento baseado em aritmética
binária, ao invés de decimal
Visão geral sobre Sistemas Computacionais

MÁQUINA DE VON NEUMANN

Memória: 4096 palavras de 40 bits (2 instruções de 20 bits ou um inteiro)


Instrução: 8 bits para indicar o tipo, 12 tipos para endereçar a memória
Acumulador: registrador especial de 40 bits
HARDWARE:
ORGANIZAÇÃO FUNCIONAL
Hardware: Sistema Central

SISTEMA CENTRAL
CPU

ULA

Executa
Instrução
UC
Busca
Instrução
Periféricos
Memória Principal
Introdução
Desenvolver aplicações para dispositivos físicos do computador (processador,
memória, discos, etc.) de forma eficiente é uma tarefa complexa.

Se cada Programador tivesse que desenvolver suas próprias rotinas de controle de


dispositivos físicos para que sua aplicação funcionasse corretamente, teríamos 3
problemas:

Problema I : O tempo de desenvolvimento de aplicações aumentaria significativamente.

O conhecimento do desenvolvedor deveria abranger não só a aplicação, mas


Problema II :
também o hardware, a comunicação entre dispositivos.

Haveria o risco de ter aplicações semelhantes manipulando os dispositivos de


Problema III :
formas diferentes por terem sido criados de formas diferentes, sem garantia de que
ambas estariam acessando os dispositivos corretamente.
Introdução

A solução é isolar as rotinas de controle dos dispositivos em uma camada de


software de mais baixo nível, que seja acionada pelas aplicações e execute suas
funções de forma transparente para cada aplicação.

Esta camada de software foi denominada de OS - Operating System (Sistema


Operacional - SO).
Introdução

Visão Abstrata dos Componentes de um Sistema de Computação:


Introdução

HARDWARE
⚫ Dispositivos físicos
São os componentes eletromecânicos e eletrônicos do computador
Exemplo: Circuitos Integrados, Chips, fios, fontes de alimentação,

⚫ Microprogramação / Micro Arquitetura


São agrupamentos dos dispositivos físicos em unidades funcionais
Exemplo: Registradores internos da CPU, unidade de lógica e aritmética.

⚫ Linguagem de Máquina
É o conjunto de instruções que controlam a micro arquitetura e alguns dispositivos físicos
diretamente
Possui um alto grau de complexidade.

▪ SO - SISTEMA OPERACIONAL

⚫ Oculta a complexidade existente


⚫ É uma camada de software que oculta parcialmente o hardware e fornece um conjunto de instruções
mais conveniente de manipular.

⚫ Exemplos: enviar um comando que ordene a leitura de determinado bloco de arquivo é mais simples
que comandar as cabeças de leitura do disco rígido do computador.
Introdução

SISTEMA OPERACIONAL
⚫ Definição: Coleção de módulos cuja função é receber requisições dos usuários e escalar os
vários componentes de HW e SW do sistema computacional para satisfazer tais
requisições.

Como Trabalho um SO ?
⚫ Age como intermediário entre o usuário e o hardware do computador.
⚫ Propicia um ambiente no qual os usuários podem executar programas de forma eficiente.
⚫ Suas rotinas são executadas concorrentemente em função de eventos assíncronos.
Histórico dos Sistemas Operacionais

Evolução intimamente ligada ao desenvolvimento das arquiteturas de computadores

Primeira Geração (1945-1955): Válvulas e Painéis

⚫ Máquinas enormes, lentas e não-confiáveis


⚫ Mesmo grupo de pessoas projetava, construía, programava, operava e mantinha
cada máquina

⚫ Linguagens de programação eram desconhecidas.

⚫ Programação em linguagem de máquina absoluta


Normalmente, por meio de ligações de fios em um painel
Exigência de conhecimento da arquitetura do hardware e sua linguagem de
máquina.
⚫ SO: nem pensar !
Histórico dos Sistemas Operacionais
Segunda Geração (1955-1960): Sistemas Batch

⚫ Computadores mais confiáveis e caros.


⚫ Para reduzir custos de processamento todo o processamento nestes equipamentos era
feito em lote (batch)

⚫ Muito tempo gasto para preparar o sistema


SOLUÇÃO: Como estratégia, máquinas mais lentas eram usadas para executar I/O,
enquanto o processamento pesado era deixado a cargo de máquinas mais potentes.
SO´s incorporaram conjunto de rotinas para operações de I/O

⚫ Atribuição de tarefas específicas para diferentes pessoas.


⚫ Programação por meio cartões perfurados em vez de fios.
⚫ Sistemas operacionais escritos em linguagem de montagem (assembly) ou FORTRAN

⚫ Exemplo típico: FMS (Fortran Monitor System)


Histórico dos Sistemas Operacionais
Terceira Geração (1960-1980): Multiprogramação

⚫ IBM: Idéia de “famílias de computadores” - System/360


Desafio: desenvolver um S.O. eficiente para todos os tipos de máquinas e
seus possíveis usos!
⚫ Implementação de várias técnicas presentes até hoje como:
Multiprogramação (Multitarefa)
Multiprocessamento
Memória Virtual

Em 1969 Ken Tompson que compôs o projeto do MULTICS (implementado em


PL/I), construiu sua própria versão de SO, conhecida como UNIX.
No início dos anos 70 o SO dominante era o CP/M
Surgem as Linguagens C e Pascal;
UNIX, concebido inicialmente em Assembly, é importado para C
Histórico dos Sistemas Operacionais
Terceira Geração (1960-1980)
⚫ Multiprogramação
Até então, com o processamento em lote adotado nesta época, cada programa era
executado sequencialmente, obedecendo uma fila única.
Isso significa que, caso o programa necessite executar uma operação de I/O o
processador ficará ocioso.
A multiprogramação é uma estratégia de processamento onde o tempo que uma
máquina espera para que uma operação de entrada/saída seja executada é aproveitado
para executar outra coisa.
Para isso, os sistemas operacionais passaram a manipular a memória de forma
diferente, hospedando mais de um programa de cada vez.
A memória passou a ser dividida em partes e cada parte hospeda um programa
diferente.
Com isso, a CPU permanece ocupada a maior parte do tempo, o que diminui os
custos de processamento e aumenta o desempenho.

Programa 1
Memória Programa 2 Partições
S.O
Histórico dos Sistemas Operacionais

Terceira Geração (1960-1980)


⚫ Time Sharing
Uma estratégia variante da multiprogramação.
Surgiu para atender usuários conectados a mainframes de forma on-line, via
terminais.
Cada usuário tinha direito a “fatias de tempo” para execução de suas tarefas.

⚫ Minicomputadores
Máquinas com menor poder de processamento, voltadas para clientes com
necessidades mais modestas
Histórico dos Sistemas Operacionais
Quarta Geração (Década de 1980 até 1990)
⚫ LSI (Large Scale Integration) para circuitos
Chips com milhares de micro-transitores dispostos em 1 cm2 de silício
⚫ Computadores Pessoais
Semelhantes (em projeto) aos minicomputadores, porém com menor custo e tamanhos reduzidos
⚫ Chip 8080
Criado pela INTEL em 1974
Foi o primeiro processador de 8 bits para propósitos gerais
Este chip revolucionário necessitava de um sistema operacional novo para explorar todo o seu
potencial
Gary Kildall (Digital Research) apresentou o CP/M
⚫ IBM-PC
Lançado no início dos anos 80, pela IBM, adotou o interpretador da linguagem BASIC de Bill
Gates
A IMB solicitou a Bill Gates que apresentasse um novo S.O. para o IBM-PC
Gates fundou a Microsoft, comprou o DOS da Seatle Computer Products e, com pequenas alterações,
apresentou o MS-DOS
Histórico dos Sistemas Operacionais
Quarta Geração (cont.)
⚫ Interfaces Gráficas
No início dos anos 60, Doug Engelbart, do Stanford Research Institute apresentou a
GUI (Graphic User Interface), uma coleção de definições que hoje é reconhecida
como a primeira interface gráfica voltada para usuários.

A XEROX adotou a GUI para sua linha de máquinas PARC


Em uma visita às instalações da XEROX, Steve Jobs conheceu a GUI/PARC e aplicou
a idéia em um projeto seu chamado LISA (que foi um fracasso comercial).

Ciente do potencial da GUI, Steve Jobs voltou a empregar o conceito em outro


projeto: o APPLE. Este sim, um sucesso de mercado.

A Microsoft, que estava elaborando um novo sistema operacional para substituir o


MS-DOS, decidiu adotar também a GUI em seu projeto.
Este novo sistema era o WINDOWS, que embora usasse a GUI, era executado
sobre o MS-DOS, tratando-se mais de um ambiente gráfico do que um sistema
operacional propriamente dito.
Histórico dos Sistemas Operacionais

Quinta Geração (de 1991 até hoje)


O surgimento do LINUX (1991)
Primeiros progressos notáveis em IA (inteligência Artificial)
Arquitetura Cliente/Servidor
Arquiteturas paralelas e distribuídas
⚫ Windows 95
Adotava uma arquitetura de endereçamento de 16 bits
Ainda executava sobre o MS-DOS, mas com evoluções marcantes em relação a
suas versões anteriores
Nomes Longos em Arquivos
⚫ Windows 98
Arquitetura de 16 bits
Pequenas melhoras estruturais no SO em relação ao Windows 95
Suporte a DVD e USB
FAT32 (sistema de arquivos)
Histórico dos Sistemas Operacionais

Quinta Geração

⚫ Windows NT
Manteve a compatibilidade com o Windows 98 sob certos aspectos estruturais, porém
foi totalmente reescrito para a arquitetura de 32 bits
Sistema de Arquivos NTFS
Cluster
Domínios de Autenticação
Separação de versões para Servidores e estação de trabalho

Windows 2000
29 Milhões de Linhas de Código.
Melhoria nos recursos de Rede (Active Directory )
Maior aceitação no mercado.
Histórico dos Sistemas Operacionais

Quinta Geração

⚫ Windows 2003
Um sistema operacional mais robusto e seguro
Redes e serviços da Web conectados
Serviços integrados de armazenamento mais fáceis de gerenciar
⚫ Windows VISTA
⚫ 90 milhões de Linhas de Código
⚫ Processo de segurança melhorado dentro do Ciclo de Vida de
Desenvolvimento
⚫ Gerenciamento de Segurança - Monitoramento centralizado e escalável dos
desktops em ambiente corporativo
⚫ Controle de Acesso - Experiência do usuário bastante melhorada para logins
e segurança.
Histórico dos Sistemas Operacionais

Windows Vista – Nova Interface


Classificação de SO´s

Quanto ao número de programas residentes na memória simultaneamente


⚫ SO Monoprogramável
⚫ SO Multiprogramável
Monousuário
Multiusuário

Quanto ao tipo de serviço oferecido


⚫ Sistema de Lote (Batch)
⚫ Sistema de Tempo Compartilhado (Time Sharing)
⚫ Sistema de Tempo Real (Real Time)
Funções de um SO
Trabalhar como Máquina Estendida ou Máquina virtual

⚫ Esconder detalhes do HW, apresentando ao usuário um nível de abstração mais simples e mais fácil
de usar que o HW bruto.
⚫ Tornar comunicação homem-máquina mais natural e inteligível.
Conceito de máquina virtual

Trabalhar como Gerenciador de Recursos


⚫ Se propõe a fornecer uma alocação disciplinada e controlada dos processadores, memória e
dispositivos de E/S para os programas que competem por eles.
⚫ Permitir uso privado/compartilhado de recursos.
⚫ Atender os pedidos dos usuários por recursos, controlar quem está usando o recurso, mediar pedidos
conflitantes
Ex: n programas distintos solicitando impressões simultaneamente na mesma impressora têm
suas impressões enfileiradas.
Componentes de um SO
Gerenciador de Processos
Coordena a alternância da CPU entre os processos
Permite a execução simultânea de vários programas
Gerenciador de Memória
Fornece ao programa endereços na memória virtual.
Prove a ilusão de que a memória é infinita

Gerenciador de Entrada/Saída
Controla o acesso aos dispositivos de E/S (Entrada e Saída)

Gerenciador de Arquivos
Permite a utilização interativa da informação estruturando o armazenamento em numa
hierarquia de diretórios
Conceitos Básicos de Sistemas Operacionais

KERNEL (NÚCLEO)
⚫ Conjunto de rotinas (software) que fornece serviços básicos para o restante
do sistema operacional
⚫ Principais funções:
Tratamento de interrupções geradas pelo hardware
Gerenciamento de processos
Criação de processos
Destruição de processos
Comunicação entre processos
Sincronismo entre processos
Gerenciamento do uso da memória
Gerenciamento do sistema de arquivos
Operações de entrada/saída
Conceitos Básicos de Sistemas Operacionais

MODOS DE ACESSO
⚫ Mecanismo para impedir problemas relacionados a violação do sistema, definindo de que forma uma
aplicação pode executar no ambiente
⚫ Instruções do processador
Instruções privilegiadas
Atuam diretamente no hardware (são mais poderosas, porém mais perigosas)
Instruções não-privilegiadas
Não possuem acesso direto ao hardware (são mais seguras, porém menos poderosas)
⚫ Modos:
Modo NÚCLEO
Também conhecido como modo KERNEL ou modo SUPERVISOR
A aplicação executando em modo núcleo tem acesso ao conjunto completo de instruções válidas
do processador (ou seja: instruções privilegiadas e não-privilegiadas)
Modo USUÁRIO
A aplicação executando em modo usuário tem acesso apenas às instruções não-privilegiadas do
processador
Alguns programas do sistema, editores e compiladores normalmente executam em modo usuário
Conceitos Básicos de Sistemas Operacionais

SYSTEM CALLs
⚫ Conjunto de chamadas disponíveis oferecidas pelo Aplicação
sistema operacional

⚫ Servem como um mecanismo de proteção ao núcleo


do SO, já que toda e qualquer solicitação feita ao Rotinas de
sistema operacional deve ser feita usando-se estas biblioteca
chamadas

⚫ As aplicações geralmente fazem uso de rotinas SYS


pré-fabricadas que estão armazenadas em bibliotecas TEM
(exemplo DLLs) CAL
Ls
⚫ As rotinas de biblioteca acionam as SYSTEM CALLs
do sistema operacional onde a aplicação está sendo
executada para conseguir manipular o hardware
HARDWARE
SISTEMAS
OPERACIONAIS

INTRODUÇÃO

Prof. Dr. Paulo Sampaio


e-mail: pnms.funchal@gmail.com

Você também pode gostar