Introdução aos Sistemas Operacionais Luiz A M Palazzo Abril de 2010 UCPEL/CPOLI/BCC Introdução...
Transcript of Introdução aos Sistemas Operacionais Luiz A M Palazzo Abril de 2010 UCPEL/CPOLI/BCC Introdução...
Introdução aos Introdução aos Sistemas OperacionaisSistemas Operacionais
Luiz A M PalazzoAbril de 2010
UCPEL/CPOLI/BCCIntrodução à Ciência da Computação
Sistema operacionalSistema operacional
• Camada de Camada de softwaresoftware entre o entre o hardwarehardware e as aplicações dos usuáriose as aplicações dos usuários
HardwareHardware
Sistema OperacionalSistema Operacional
AplicaçãoAplicação AplicaçãoAplicaçãoAplicaçãoAplicação
usuáriosusuários
2Introdução aos Sistemas Operacionais
Funções do sistema operacional
• A partir da máquina real (hardware), A partir da máquina real (hardware), criar criar uma uma máquina estendida.máquina estendida.
• Gerenciar os recursosGerenciar os recursos de hardware de hardware disponíveis para as aplicações.disponíveis para as aplicações.
3Introdução aos Sistemas Operacionais
O SO como máquina estendida
• Ocultar a complexidadeOcultar a complexidade do hardware. do hardware.
• Oferecer Oferecer interfaces padronizadasinterfaces padronizadas de de acesso ao hardware.acesso ao hardware.
• Permitir uma Permitir uma visão homogêneavisão homogênea de de dispositivos distintos.dispositivos distintos.
4Introdução aos Sistemas Operacionais
O SO como máquina estendida
Sistema operacionalSistema operacional
aplicaçãoaplicação
Clicar em um arquivoClicar em um arquivo
Assign(file, “D:\README.TXT”);Assign(file, “D:\README.TXT”);open(file);open(file);read(file, ch);read(file, ch);……close(file);close(file);
Move head to sector 123 in FATMove head to sector 123 in FATread 256 bytes to mem 36234Hread 256 bytes to mem 36234Hmove head to sector 4684753move head to sector 4684753read 1024 bytes to mem 578567read 1024 bytes to mem 578567......
5Introdução aos Sistemas Operacionais
O SO como gerente de recursos
• Recursos da máquinaRecursos da máquina• processadoresprocessadores• espaço em memóriaespaço em memória• arquivosarquivos• conexões de redeconexões de rede• dispositivos externosdispositivos externos
• Controle de acessoControle de acesso• equilibrar usoequilibrar uso• evitar conflitosevitar conflitos
6Introdução aos Sistemas Operacionais
O SO como gerente de recursos
Sistema operacional
aplicação aplicação aplicação
source app source app source app
sdgf jhgsdfj dsjhfkhj khjHKjhkjghj hgjhgj jgh jhg jhg jhg jhg kjhgjhgj hg jhgkjhkjhgjhg jhg jhg jhg jhkjhjkhgjhgjhkgjhgjhgjhgj
7Introdução aos Sistemas Operacionais
Computador como Máquina de Níveis
• O Hardware:O Hardware:• responsável pela execução das instruções de responsável pela execução das instruções de
um um programa;programa;
• Primeiros computadores:Primeiros computadores:• programação realizada através de fios;programação realizada através de fios;
• Evolução: Evolução: O Sistema OperacionalO Sistema Operacional;;• A Interação se tornou mais fácil, confiável e A Interação se tornou mais fácil, confiável e
eficiente;eficiente;
8Introdução aos Sistemas Operacionais
Computador como Máquina de Níveis
• Computador como máquina de níveis:Computador como máquina de níveis:• Nível 2 – Aplicativos;Nível 2 – Aplicativos;• Nível 1 – Sistema operacional;Nível 1 – Sistema operacional;• Nível 0 – Hardware.Nível 0 – Hardware.
• A Linguagem utilizada em cada nível A Linguagem utilizada em cada nível varia varia da mais elementar da mais elementar (microprogramação) à (microprogramação) à mais sofisticada(alto nível).mais sofisticada(alto nível).
9Introdução aos Sistemas Operacionais
Histórico dos Sistemas Operacionais• 1º computador:1º computador:
• Máquina analítica de Charles Babbage (1792-Máquina analítica de Charles Babbage (1792-1871);1871);
• Primeira GeraçãoPrimeira Geração (1945-1955): (1945-1955):• Válvulas e painéis;Válvulas e painéis;
• Segunda GeraçãoSegunda Geração (1956-1965): (1956-1965):• Transistores e Sistemas Batch;Transistores e Sistemas Batch;
• Terceira GeraçãoTerceira Geração(1966-1980):(1966-1980):• Circuitos Integrados e Multiprogramação;Circuitos Integrados e Multiprogramação;
• Quarta GeraçãoQuarta Geração(1981-1990):(1981-1990):• Computadores Pessoais;Computadores Pessoais;
• Quinta GeraçãoQuinta Geração (1991- 20??): (1991- 20??):• Atualidade; Sistemas MóveisAtualidade; Sistemas Móveis
10Introdução aos Sistemas Operacionais
Histórico dos Sistemas Operacionais
• Primeira Geração (1945-1955):Primeira Geração (1945-1955):
• Programação através de chaves;Programação através de chaves;• Inexistência de linguagens ou SO.;Inexistência de linguagens ou SO.;• Toda a atividade é seqüencial;Toda a atividade é seqüencial;
11Introdução aos Sistemas Operacionais
Histórico dos Sistemas Operacionais
• Segunda Geração (1956-1965):Segunda Geração (1956-1965):
• IBM 1401 e 7094;IBM 1401 e 7094;• Separação entre programação e operação;Separação entre programação e operação;• Execução batch de programas;Execução batch de programas;• Linguagens Fortran e Assembly;Linguagens Fortran e Assembly;
12Introdução aos Sistemas Operacionais
Histórico dos Sistemas Operacionais
• Terceira Geração (1966-1980):Terceira Geração (1966-1980):
• Família IBM/360 e sucessores;Família IBM/360 e sucessores;• Compatibilidade a nível de software;Compatibilidade a nível de software;• Multiprogramação;Multiprogramação;• Escalonamento de CPU; Escalonamento de CPU; • Sistemas On-line;Sistemas On-line;• Base dos S.O. modernos;Base dos S.O. modernos;
13Introdução aos Sistemas Operacionais
Histórico dos Sistemas Operacionais
• Quarta Geração (1981-1990):Quarta Geração (1981-1990):
• Multiprocessadores;Multiprocessadores;• Sistemas Operacionais user-friendly;Sistemas Operacionais user-friendly;• S.O. para computadores pessoais;S.O. para computadores pessoais;• S.O. para redes de computadores;S.O. para redes de computadores;
14Introdução aos Sistemas Operacionais
Histórico dos Sistemas Operacionais
• Quinta Geração (1991-20??):Quinta Geração (1991-20??):
• Processamento Distribuído;Processamento Distribuído;• Interfaces Gráficas;Interfaces Gráficas;• S.O. para dispositivos móveisS.O. para dispositivos móveis• S.O. para S.O. para cloud computingcloud computing
15Introdução aos Sistemas Operacionais
16
S.O. como interface usuário/computador
Introdução aos Sistemas Operacionais
17
Diferentes “imagens” de um S.O.
• Sistema operacional na visão do usuárioSistema operacional na visão do usuário• Imagem que um usuário tem do sistemaImagem que um usuário tem do sistema• Interface oferecida ao usuário para ter acesso Interface oferecida ao usuário para ter acesso
a recursos do sistemaa recursos do sistema• Chamadas de sistemaChamadas de sistema• Programas de sistemaProgramas de sistema
• Sistema operacional na visão do projetoSistema operacional na visão do projeto• Organização interna do sistema operacionalOrganização interna do sistema operacional• Mecanismos empregados para gerenciar Mecanismos empregados para gerenciar
recursos do sistemarecursos do sistema
Introdução aos Sistemas Operacionais
18
Chamada de sistema
• Forma que um programa solicita serviços ao Forma que um programa solicita serviços ao sistema operacionalsistema operacional• Análogo a sub-rotinasAnálogo a sub-rotinas
• É o núcleo (É o núcleo (KernelKernel) do sistema operacional que ) do sistema operacional que implementa as chamadas de sistemasimplementa as chamadas de sistemas• Existem chamadas de sistemas associadas a gerência Existem chamadas de sistemas associadas a gerência
do do processador, de memória, arquivos e de entrada e saídaprocessador, de memória, arquivos e de entrada e saída
• Variação: Variação: micro-kernelmicro-kernel• Serviços básicos são implementados pelo micro-kernelServiços básicos são implementados pelo micro-kernel• Kernel implementa demais serviços empregando esses Kernel implementa demais serviços empregando esses
serviços básicosserviços básicos
Introdução aos Sistemas Operacionais
19
APLICAÇÃO
KERNEL
MICROKERNEL
HARDWARE
Chamada de sistema
Serviços do microkernel
Organização do S.O
Introdução aos Sistemas Operacionais
20
Programas de sistema
• Programas executados fora do kernel (utilitários)Programas executados fora do kernel (utilitários)• Implementam tarefas básicasImplementam tarefas básicas
• Muitas vezes confundidos com o próprio sistema Muitas vezes confundidos com o próprio sistema operacionaloperacional• Ex: compiladores, Ex: compiladores, assemblersassemblers, ligadores, etc, ligadores, etc
• Interpretadores de comandosInterpretadores de comandos• Ativado sempre que o sistema operacional inicia Ativado sempre que o sistema operacional inicia
sessão de trabalhosessão de trabalho• Ex: bash, tsch, sh, etcEx: bash, tsch, sh, etc
• Interface gráfico de usário (GUI)Interface gráfico de usário (GUI)• Ex: Família windows, MacOs, etcEx: Família windows, MacOs, etc
Introdução aos Sistemas Operacionais
21
Sistema em lote (batch)
• Introdução de operadores profissionaisIntrodução de operadores profissionais• Usuário era mais o operador da máquinaUsuário era mais o operador da máquina
• JobJob• Programa a ser compilador e executado, Programa a ser compilador e executado,
acompanhado dos dados de execuçãoacompanhado dos dados de execução• Jobs são organizados em lote (batch)Jobs são organizados em lote (batch)
• Necessidades semelhantes (ex: mesmo Necessidades semelhantes (ex: mesmo compilador)compilador)
• Passagem entre diferentes jobs continua sendo Passagem entre diferentes jobs continua sendo manualmanual
Introdução aos Sistemas Operacionais
22
Monitor residente
• EvoluçãoEvolução• Sequenciamente automático de jobs, transferindo o Sequenciamente automático de jobs, transferindo o
controle de um job a outrocontrole de um job a outro• Primeiro sistema operacional (rudimentar)Primeiro sistema operacional (rudimentar)
• Monitor residenteMonitor residente• Programa que fica permanente em memóriaPrograma que fica permanente em memória• Execução inicialExecução inicial• Controle é transferido para o jobControle é transferido para o job
• Cartões de controleCartões de controle• Quando o job termina, o controle retorna ao Quando o job termina, o controle retorna ao
monitormonitor• Centraliza as rotinas de acesso a periféricos Centraliza as rotinas de acesso a periféricos
disponibilizando aos programas de usuáriosdisponibilizando aos programas de usuáriosIntrodução aos Sistemas Operacionais
23
Sistema batch multiprogramado (multitarefa)
• Monitor residente permite a execução de apenas um Monitor residente permite a execução de apenas um programa a cada vezprograma a cada vez
• Desperdício de tempo de CPU com operações de E/SDesperdício de tempo de CPU com operações de E/S• EvoluçãoEvolução
• Manter diversos programas na memória ao mesmo tempoManter diversos programas na memória ao mesmo tempo• Enquanto um programa realiza E/S, outro pode ser Enquanto um programa realiza E/S, outro pode ser
executadoexecutado
Introdução aos Sistemas Operacionais
24
Multiprogramação
• Manter mais de um programa em Manter mais de um programa em “execução” simultaneamente“execução” simultaneamente
• Duas inovações de Duas inovações de hardwarehardware possibilitam o possibilitam o
surgimento da multiprogramaçãosurgimento da multiprogramação• InterrupçãoInterrupção
• Sinalização de eventosSinalização de eventos• Discos magnéticosDiscos magnéticos
• Acesso randômico a diferentes jobs no disco.Acesso randômico a diferentes jobs no disco.• Melhor desempenho em acessos de leitura e escritaMelhor desempenho em acessos de leitura e escrita
Introdução aos Sistemas Operacionais
25
Sistema timesharing
• Tipo de multiprogramaçãoTipo de multiprogramação
• Usuários possuem um terminalUsuários possuem um terminal• Interação com o programa de execuçãoInteração com o programa de execução
• Ilusão de possuir a máquina dedicada a Ilusão de possuir a máquina dedicada a execução de seu programaexecução de seu programa• Divisão do tempo de processamento entre Divisão do tempo de processamento entre
usuáriosusuários• Tempo de resposta é importanteTempo de resposta é importante
Introdução aos Sistemas Operacionais
26
Sistema monousuário e multiusuário
• Sistema monousuárioSistema monousuário• Projetados para serem usados por um único Projetados para serem usados por um único
usuáriousuário• Ex: MS-DOS, Windows XP, Vista, 7, MacOS...Ex: MS-DOS, Windows XP, Vista, 7, MacOS...
• Sistemas multiusuárioSistemas multiusuário• Projetados para suportar várias sessões de Projetados para suportar várias sessões de
usuários em um computadorusuários em um computador• Ex: Windows 2008, UNIX...Ex: Windows 2008, UNIX...
Introdução aos Sistemas Operacionais
27
Sistemas multitarefa e monotarefa
• Sistemas monotarefaSistemas monotarefa• Capazes de executar apenas uma tarefa de cada vezCapazes de executar apenas uma tarefa de cada vez
• Ex: MS-DOSEx: MS-DOS
• Sistema multitarefaSistema multitarefa• Capazes de executar várias tarefas simultaneamenteCapazes de executar várias tarefas simultaneamente• Existem dois tipos de sistemas multitarefa:Existem dois tipos de sistemas multitarefa:
• Não preempitivo (cooperativo)Não preempitivo (cooperativo)• Ex: Windows 3.x, Windows 9x (aplicativos 16 bits)Ex: Windows 3.x, Windows 9x (aplicativos 16 bits)
• PreempitivoPreempitivo• Ex: Windows NT, OS/2, UNIX, Windows9x (aplicativos 32 Ex: Windows NT, OS/2, UNIX, Windows9x (aplicativos 32
bits)bits)
Introdução aos Sistemas Operacionais
28
Sistemas distribuídos
• Distribuir a realização de uma tarefa entre Distribuir a realização de uma tarefa entre vários computadoresvários computadores
• Sistema distribuídoSistema distribuído• Conjunto de computadores autônomos Conjunto de computadores autônomos
interconectados de forma a possibilitar a interconectados de forma a possibilitar a execução de um serviçoexecução de um serviço
• Existência de várias máquinas é transparenteExistência de várias máquinas é transparente• Software fornece uma visão única do sistemaSoftware fornece uma visão única do sistema• Palavra-chave: transparênciaPalavra-chave: transparência
Introdução aos Sistemas Operacionais
29
• Sistemas fracamente acopladosSistemas fracamente acoplados• Máquinas independentesMáquinas independentes
• Cada máquina possui o seu próprio sistema Cada máquina possui o seu próprio sistema operacionaloperacional
• Comunicação é feita através de troca de Comunicação é feita através de troca de mensagens mensagens entre processosentre processos
• VantagensVantagens• Compartilhamento de recursosCompartilhamento de recursos• Balanceamento de cargaBalanceamento de carga• Aumento confiabilidadeAumento confiabilidade
Sistemas distribuídos
Introdução aos Sistemas Operacionais
30
Sistemas paralelos
• Máquinas multiprocessadoras possuem mais Máquinas multiprocessadoras possuem mais de de um processadorum processador
• Sistemas fortemente acopladosSistemas fortemente acoplados• Processadores compartilham memória e relógios Processadores compartilham memória e relógios
comunscomuns• Comunicação é realizada através da memóriaComunicação é realizada através da memória
• VantagensVantagens• Aumento de Aumento de troughputtroughput (número de processos (número de processos
executados)executados)• Aspectos econômicosAspectos econômicos• Aumento de confiabilidadeAumento de confiabilidade
Introdução aos Sistemas Operacionais
31
• Symmetric multiprocessingSymmetric multiprocessing (SMP) (SMP)• Cada processador executa uma cópia idêntica do Cada processador executa uma cópia idêntica do
sistema operacionalsistema operacional• Vários processos podem ser executados em paralelo Vários processos podem ser executados em paralelo
sem perda de desempenho para o sistemasem perda de desempenho para o sistema• A maioria dos sistemas operacionais atuais suportam A maioria dos sistemas operacionais atuais suportam
SMP através do conceito de SMP através do conceito de multitreadingmultitreading
• Asymmetric multiprocessingAsymmetric multiprocessing• Cada processador executa uma tarefa específicaCada processador executa uma tarefa específica
• Ex: processador mestre para alocação de tarefas a Ex: processador mestre para alocação de tarefas a escravosescravos
Sistemas paralelos
Introdução aos Sistemas Operacionais
32
Sistema de tempo real
• Empregado para o controle de procedimentos que Empregado para o controle de procedimentos que devem responder dentro de um certo intervalo de devem responder dentro de um certo intervalo de tempotempo• Ex: experimento científicos, tratamento de imagens médicas, Ex: experimento científicos, tratamento de imagens médicas,
controle de processos, etc.controle de processos, etc.
• Noção de tempo real é dependente da aplicaçãoNoção de tempo real é dependente da aplicação• Milisegundos, minutos, horas, etc.Milisegundos, minutos, horas, etc.
•Dois tiposDois tipos• Hard real timeHard real time
• Tarefas críticas são completadas dentro de um intervalo Tarefas críticas são completadas dentro de um intervalo de tempode tempo
• Soft real timeSoft real time• Tarefa crítica tem maior prioridade que as demaisTarefa crítica tem maior prioridade que as demais
Introdução aos Sistemas Operacionais