370 likes | 580 Views
UCPEL/CPOLI/BCC Introdução à Ciência da Computação. Introdução aos Sistemas Operacionais. Luiz A M Palazzo Abril de 2010. Sistema operacional. usuários. Aplicação. Aplicação. Aplicação. Sistema Operacional. Hardware.
E N D
UCPEL/CPOLI/BCC Introdução à CiênciadaComputação Introdução aos Sistemas Operacionais Luiz A M Palazzo Abril de 2010
Sistemaoperacional usuários Aplicação Aplicação Aplicação SistemaOperacional Hardware Introdução aos Sistemas Operacionais Camada de software entre o hardware e as aplicações dos usuários
Funções do sistema operacional Introdução aos Sistemas Operacionais • A partirdamáquina real (hardware), criarumamáquinaestendida. • Gerenciarosrecursos de hardware disponíveispara as aplicações.
O SO como máquina estendida Introdução aos Sistemas Operacionais Ocultar a complexidade do hardware. Oferecer interfaces padronizadas de acesso ao hardware. Permitir uma visão homogênea de dispositivos distintos.
O SO como máquina estendida Clicar em um arquivo Assign(file, “D:\README.TXT”);open(file);read(file, ch);…close(file); aplicação Sistema operacional Move head to sector 123 in FATread 256 bytes to mem 36234Hmove head to sector 4684753read 1024 bytes to mem 578567... Introdução aos Sistemas Operacionais
O SO como gerente de recursos Introdução aos Sistemas Operacionais • Recursosdamáquina • processadores • espaçoemmemória • arquivos • conexões de rede • dispositivosexternos • Controle de acesso • equilibraruso • evitarconflitos
source app O SO como gerente de recursos source app source app sdgf jhgsdfj dsjhfkhj khjHKjhkjghj hgjhgj jgh jhg jhg jhg jhg kjhgjhgj hg jhgkjhkjhgjhg jhg jhg jhg jhkjhjkhgjhgjhkgjhgjhgjhgj aplicação aplicação aplicação Sistema operacional Introdução aos Sistemas Operacionais
Computador como Máquina de Níveis Introdução aos Sistemas Operacionais • O Hardware: • responsável pela execução das instruções de um programa; • Primeiros computadores: • programação realizada através de fios; • Evolução: O Sistema Operacional; • A Interação se tornou mais fácil, confiável e eficiente;
Computador como Máquina de Níveis Introdução aos Sistemas Operacionais • Computador como máquina de níveis: • Nível 2 – Aplicativos; • Nível 1 – Sistema operacional; • Nível 0 – Hardware. • A Linguagem utilizada em cada nível varia da mais elementar (microprogramação) à mais sofisticada(alto nível).
Histórico dos Sistemas Operacionais Introdução aos Sistemas Operacionais • 1º computador: • Máquina analítica de Charles Babbage (1792-1871); • Primeira Geração (1945-1955): • Válvulas e painéis; • Segunda Geração (1956-1965): • Transistores e Sistemas Batch; • Terceira Geração(1966-1980): • Circuitos Integrados e Multiprogramação; • Quarta Geração(1981-1990): • Computadores Pessoais; • Quinta Geração (1991- 20??): • Atualidade; Sistemas Móveis
Histórico dos Sistemas Operacionais Introdução aos Sistemas Operacionais • Primeira Geração (1945-1955): • Programação através de chaves; • Inexistência de linguagens ou SO.; • Toda a atividade é seqüencial;
Histórico dos Sistemas Operacionais Introdução aos Sistemas Operacionais • Segunda Geração (1956-1965): • IBM 1401 e 7094; • Separação entre programação e operação; • Execução batch de programas; • Linguagens Fortran e Assembly;
Histórico dos Sistemas Operacionais Introdução aos Sistemas Operacionais • Terceira Geração (1966-1980): • Família IBM/360 e sucessores; • Compatibilidade a nível de software; • Multiprogramação; • Escalonamento de CPU; • Sistemas On-line; • Base dos S.O. modernos;
Histórico dos Sistemas Operacionais Introdução aos Sistemas Operacionais • Quarta Geração (1981-1990): • Multiprocessadores; • Sistemas Operacionais user-friendly; • S.O. para computadores pessoais; • S.O. para redes de computadores;
Histórico dos Sistemas Operacionais Introdução aos Sistemas Operacionais • Quinta Geração (1991-20??): • Processamento Distribuído; • Interfaces Gráficas; • S.O. paradispositivosmóveis • S.O. paracloud computing
S.O. como interface usuário/computador Introdução aos Sistemas Operacionais
Diferentes “imagens” de um S.O. • Sistema operacional na visão do usuário • Imagem que um usuário tem do sistema • Interface oferecida ao usuário para ter acesso a recursos do sistema • Chamadas de sistema • Programas de sistema • Sistema operacional na visão do projeto • Organização interna do sistema operacional • Mecanismos empregados para gerenciar recursos do sistema Introdução aos Sistemas Operacionais
Chamada de sistema • Forma que um programa solicita serviços ao sistema operacional • Análogo a sub-rotinas • É o núcleo (Kernel) do sistema operacional que implementa as chamadas de sistemas • Existem chamadas de sistemas associadas a gerência do processador, de memória, arquivos e de entrada e saída • Variação: micro-kernel • Serviços básicos são implementados pelo micro-kernel • Kernel implementa demais serviços empregando esses serviços básicos Introdução aos Sistemas Operacionais
APLICAÇÃO Chamada de sistema KERNEL Serviços do microkernel MICROKERNEL HARDWARE Organização do S.O Introdução aos Sistemas Operacionais
Programas de sistema • Programas executados fora do kernel (utilitários) • Implementam tarefas básicas • Muitas vezes confundidos com o próprio sistema operacional • Ex: compiladores, assemblers, ligadores, etc • Interpretadores de comandos • Ativado sempre que o sistema operacional inicia sessão de trabalho • Ex: bash, tsch, sh, etc • Interface gráfico de usário (GUI) • Ex: Família windows, MacOs, etc Introdução aos Sistemas Operacionais
Sistema em lote (batch) • Introdução de operadores profissionais • Usuário era mais o operador da máquina • Job • Programa a ser compilador e executado, acompanhado dos dados de execução • Jobs são organizados em lote (batch) • Necessidades semelhantes (ex: mesmo compilador) • Passagem entre diferentes jobscontinua sendo manual Introdução aos Sistemas Operacionais
Monitor residente • Evolução • Sequenciamente automático de jobs, transferindo o controle de um job a outro • Primeiro sistema operacional (rudimentar) • Monitor residente • Programa que fica permanente em memória • Execução inicial • Controle é transferido para o job • Cartões de controle • Quando o job termina, o controle retorna ao monitor • Centraliza as rotinas de acesso a periféricos disponibilizando aos programas de usuários Introdução aos Sistemas Operacionais
Sistema batch multiprogramado (multitarefa) • Monitor residente permite a execução de apenas um programa a cada vez • Desperdício de tempo de CPU com operações de E/S • Evolução • Manter diversos programas na memória ao mesmo tempo • Enquanto um programa realiza E/S, outro pode ser executado Introdução aos Sistemas Operacionais
Multiprogramação • Manter mais de um programa em “execução” simultaneamente • Duas inovações de hardware possibilitam o surgimento da multiprogramação • Interrupção • Sinalização de eventos • Discos magnéticos • Acesso randômico a diferentes jobsno disco. • Melhor desempenho em acessos de leitura e escrita Introdução aos Sistemas Operacionais
Sistema timesharing • Tipo de multiprogramação • Usuários possuem um terminal • Interação com o programa de execução • Ilusão de possuir a máquina dedicada a execução de seu programa • Divisão do tempo de processamento entre usuários • Tempo de resposta é importante Introdução aos Sistemas Operacionais
Sistema monousuário e multiusuário • Sistema monousuário • Projetados para serem usados por um único usuário • Ex: MS-DOS, Windows XP, Vista, 7, MacOS... • Sistemas multiusuário • Projetados para suportar várias sessões de usuários em um computador • Ex: Windows 2008, UNIX... Introdução aos Sistemas Operacionais
Sistemas multitarefa e monotarefa • Sistemas monotarefa • Capazes de executar apenas uma tarefa de cada vez • Ex: MS-DOS • Sistema multitarefa • Capazes de executar várias tarefas simultaneamente • Existem dois tipos de sistemas multitarefa: • Não preempitivo (cooperativo) • Ex: Windows 3.x, Windows 9x (aplicativos 16 bits) • Preempitivo • Ex: Windows NT, OS/2, UNIX, Windows9x (aplicativos 32 bits) Introdução aos Sistemas Operacionais
Sistemas distribuídos • Distribuir a realização de uma tarefa entre vários computadores • Sistema distribuído • Conjunto de computadores autônomos interconectados de forma a possibilitar a execução de um serviço • Existência de várias máquinas é transparente • Software fornece uma visão única do sistema • Palavra-chave: transparência Introdução aos Sistemas Operacionais
Sistemas distribuídos • Sistemas fracamente acoplados • Máquinas independentes • Cada máquina possui o seu próprio sistema operacional • Comunicação é feita através de troca de mensagens entre processos • Vantagens • Compartilhamento de recursos • Balanceamento de carga • Aumento confiabilidade Introdução aos Sistemas Operacionais
Sistemas paralelos • Máquinas multiprocessadoras possuem mais de um processador • Sistemas fortemente acoplados • Processadores compartilham memória e relógios comuns • Comunicação é realizada através da memória • Vantagens • Aumento de troughput (número de processos executados) • Aspectos econômicos • Aumento de confiabilidade Introdução aos Sistemas Operacionais
Sistemas paralelos • Symmetricmultiprocessing (SMP) • Cada processador executa uma cópia idêntica do sistema operacional • Vários processos podem ser executados em paralelo sem perda de desempenho para o sistema • A maioria dos sistemas operacionais atuais suportam SMP através do conceito de multitreading • Asymmetricmultiprocessing • Cada processador executa uma tarefa específica • Ex: processador mestre para alocação de tarefas a escravos Introdução aos Sistemas Operacionais
Sistema de tempo real • Empregado para o controle de procedimentos que devem responder dentro de um certo intervalo de tempo • Ex: experimento científicos, tratamento de imagens médicas, controle de processos, etc. • Noção de tempo real é dependente da aplicação • Milisegundos, minutos, horas, etc. • Dois tipos • Hard real time • Tarefas críticas são completadas dentro de um intervalo de tempo • Soft real time • Tarefa crítica tem maior prioridade que as demais Introdução aos Sistemas Operacionais