SO+-+Slide1

SO+-+Slide1


DisciplinaSistemas Operacionais I9.268 materiais183.081 seguidores
Pré-visualização4 páginas
*
*
*
Faculdade Pernambucana - FAPE
Sistemas Operacionais
Prof. Flávio Gonçalves da Rocha
*
*
*
Introdução
Um computador sem software torna-se inútil. 
O software de computador pode ser dividido, grosso modo, em duas espécies: 
Programas de sistema \u2013 que gerenciam a operação do computador em si
Programas de aplicativos \u2013 que executam o trabalho que o usuário realmente deseja
O programa de sistema mais fundamental é o Sistema Operacional
*
*
*
Introdução
O Sistema Operacional controla todos os recursos do computador e fornece a base sobre a qual os programas aplicativos podem ser escritos.
Um moderno sistema de computador é complexo (um ou mais processadores, memória, discos, impressoras, etc)
Fazer programas se preocupando também com os dispositivos do sistema de computador seria enviável.
*
*
*
Introdução
Há muitos anos tornou-se evidente a necessidade de isolar os programadores da complexidade do hardware.
Foi criada uma camada de software por cima do hardware básico que oferece ao usuário uma interface de alto nível ou máquina virtual.
Essa camada de software é o Sistema Operacional
*
*
*
Introdução
Programas aplicativos
Programas 
de Sistemas
Hardware
Um sistema de computador consiste em hardware, em programas de sistema
 e em programas aplicativos
*
*
*
Introdução
Descrição das camadas:
Dispositivos físicos: 
Consiste de ciruitos integrados, cabos, etc. Campo da engenharia elétrica.
Microprograma:
Presente em algumas máquinas (CISC \u2013 Complex Instruction Set Computer). Controla diretamente os dispositivos e oferece uma interface para a próxima camada.
O conjunto de instruções que o microprograma interpreta define a linguagem de máquina.
*
*
*
Introdução
Descrição das camadas:
Máquinas RISC (Reduced Instruction Set Computers) não tem microprogramação
Linguagem de Máquina: 
O conjunto de instruções que um computador pode executar define a sua linguagem de máquina.
Entre 50 e 300 instruções que, na sua maior parte, servem para mover dados, fazer aritmética e comparar valores.
Sistema Operacional
Camada que esconde a complexidade da camada inferior e oferece um conjunto mais conveniente de instruções para o programador trabalhar.
*
*
*
Introdução
Descrição das camadas:
Por cima do sistema Operacional está o resto do software do sistema (interpretador de comandos, compiladores, programas aplicativos etc.) \u2013 Programas de Sistema
Esses programas não fazem parte do Sistema Operacional
O sistema operacional executa no modo kernel ou no modo de supervisor \u2013 protegido do usuário pelo hardware.
Compiladores executam no modo de usuário \u2013 usuário fica livre para escrever seu próprio compilador.
*
*
*
Introdução
Descrição das camadas:
Por fim, acima dos programas de sistemas vêm os programas aplicativos
Programas são comprados ou são escritos pelos usuários (processadores de texto, planílhas eletrônicas, jogos etc.)
*
*
*
O que é um Sistema Operacional?
O Sistema Operacional é um software que executa basicamente duas funções não-relacionadas: 
Fornecer interface de alto nível aos usuários da máquina \u2013 Sistema Operacional como uma Máquina Estentida
Gerenciador de Recursos \u2013 Sistema Operacional como um Gerenciador de Recursos
*
*
*
Sistema Operacional como uma Máquina Estentida
Programar no nível da linguagem de máquina é bastante difícil.
O programa que esconde a complexidade da arquitetura (conjunto de instruções, organização da memória, E/S e estrutura de barramento) da máquina é o Sistema Operacional
Deste ponto de vista a função do Sistema Operacional é apresentar ao usuário o equivalente de uma máquina estendida ou máquina virtual
*
*
*
Sistema Operacional como uma Máquina Estentida
Em outras palavras: a função do Sistema Operacional é fornecer aos seus usuários uma interface conveniente.
*
*
*
Sistema Operacional como um Gerenciador de Recursos
Os computadores modernos consistem em processadores, memórias, discos, mouses, etc. 
O trabalho do Sistema Operacional é oferecer uma alocação ordenada e controlada desses dispositivos
Ex: 
Três programas tentando acessar uma impressora simultaneamente
Computador com múltiplos usuários
Compartilhamento de recursos
*
*
*
Sistema Operacional como um Gerenciador de Recursos
Em Resumo: 
	Essa visão do Sistema Operacional sustenta que sua tarefa primária é monitorar quem está utilizando qual recurso, medir a utilização dos recursos e medir as requisições conflitantes de diferentes programas e usuários
*
*
*
História dos Sistemas Operacionais
Os sistemas operacionais evoluíram nos últimos 60 anos, passando por diversas fases ou gerações distintas que correspondem aproximadamente às décadas.
Gerações:
A Primeira Geração (1945-55): Válvulas e Painéis de Conectores
A Segunda Geração (1955-65): Transistores e Sistemas de Lote
*
*
*
História dos Sistemas Operacionais
A Terceira Geração (1965 \u2013 1980): Cis e Multiprogramação
A Quarta Geração (1980-Hoje): Computadores Pessoais
*
*
*
A Primeira Geração (1945-55): Válvulas e Painéis de Conectores
Em meados da década de 40 os pesquisadores obtiveram sucesso na construção de máquinas de cálculo utilizando válvulas.
Máquinas eram enormes com dezenas de milhares de válvulas.
Um único grupo construia, programava, operava e mantinha cada máquina.
Programa na linguagem de máquina.
Não havia Sistemas Operacionais
*
*
*
A Primeira Geração (1945-55): Válvulas e Painéis de Conectores
Praticamente todos os problemas eram simples cálculos núméricos (gerar senos e co-senos)
No início da década de 50, a rotina havia melhorado um pouco com a introdução dos cartões perfurados
Programas gravados em cartões perfurados
*
*
*
A Primeira Geração (1945-55): Válvulas e Painéis de Conectores
O primeiro computador digital de propósito geral foi o ENIAC (Eletronic Numerical Integration and Computer).
*
*
*
A Segunda Geração (1955-65): Transistores e Sistemas de Lote
A introdução do transistor e de memória magnética, em meados da década de 50, mudou o quadro radicalmente.
Computadores mais confiáveis
Serparação clara entre projetistas, construtores, operadores, programadores e o pessoal da manutenção	
Uso de linguagens de programação (FORTRAN, Assembly)
Computadores ainda muito caros
*
*
*
A Segunda Geração (1955-65): Transistores e Sistemas de Lote
Para executar um Job (programa ou um conjunto de programas):
Programador escrevia o programa em papel e então transformava em cartões perfurados
Os cartões eram levados para um dos operadores
Quando o computador estivesse ocioso o operador inseria os cartões para leitura na máquina.
Se o compilador FORTRAN fosse necessário ele também tinha de ser carregado
*
*
*
A Segunda Geração (1955-65): Transistores e Sistemas de Lote
Ao terminar o processamento do Job o operador ia até a impressora, removia a saída e a colaria a disposição do programador
Para reduzir o tempo desperdiçado foi adotado a solução de sistema de processamento em lote (ou batch system)
*
*
*
A Segunda Geração (1955-65): Transistores e Sistemas de Lote
Um sistema de lote primitivo. 
*
*
*
A Segunda Geração (1955-65): Transistores e Sistemas de Lote 
Etapas do Sistema de Processamento em Lote da figura anterior:
(a) Programadores trazem os cartões para o 1401.
(b) O 1401 lê os jobs em lote na fita. 
(c) O operador leva a fita de entrada para o 7094.
(d) O 7094 realiza a computação (um programa lia os jobs da fita, executava-os e gravava saída em outra fita). 
(e) O operador leva a fita de saída para o 1401. 
(f) O 1401 imprime a saída
*
*
*
A Segunda Geração (1955-65): Transistores e Sistemas de Lote
Grandes computadores de segunda geração eram utilizados principalmente para cálculos científicos de engenharia. 
Em grande parte eram programados em FORTRAN e linguagem assembler. 
Sistemas Operacionais típicos eram o FMS (Fortran Monitor System) e o IBSYS, sistema operacional da IBM para o 7094.
*
*
*
A Terceira Geração (1965 \u2013 1980): Cis e Multiprogramação
No início da década de 60, a maioria dos