Skip navigation

Finalizar Nota Anterior
Apresentar os Tipos de SO
     Quanto ao Uso:
Monotarefa – Monousuário
Multitarefa – Multiusuário
Multitarefa – Multiusuário
     Quanto à Arquitetura:
Monolítico
Microkernel

O que é um Sistema Residente?

Arquitetura de um SO:
Usuários
Camada de Aplicações
Sistema Operacional
Camada de Usuário do SO
Chamadas de Sistema comunicam a de cima e a de baixo
Camada de Núcleo (Kernel do SO)
Camada de Hardware

Sob ponto de vista do usuário: Executa programas requeridos
Sob ponto de vista do Hardware: Requisita recursos (e geralmente é prontamente atendido salvo em alguns casos: Usuário, IRQ, DMA)

Sistemas Operacionais com o Tempo:
     Mainframes
          Programação Direta (Sem SO, software gerenciava o HW)
– Altair 8800
          Monitores de Execução (quase-SO)
– Cartões
          Batch
               Primeiros SO
               Monitor Residente
Inicializa Sistema, controla Hw
Aloca Recursos
Transfere Controle pra um programa (tarefa)
Ao final reassume o controle
Problemas ao se trocar a aplicação

91b82acaaa1cec7a2804b13ae83493f8
          Batch Multiprogramados
Tenta resolver a ociosidade de carregar programas
Carregando varios simultaneamente na memória
Quando um programa para esperando por dados outros podem ser executados
Tudo era manual

1d0b97c99af2cb37be15d318ca39908b

3c3feabc12d136ac9e4104311a73759f

          Tempo Compartilhado
Um computador
Vários Usuários “Simultaneamente”

          Sistemas de Mesa
Surgiu com os computadores pessoais ou estações de trabalho
Dedicados a apenas um usuário
Voltados à conveniência e resposta ao usuário
Podem ou não adotar soluções de sistemas de grande porte

          Sistemas Multiprocessados
Sistemas com multiplas CPU’s próximas
Paralelos ou fortemente acoplados
Processadores compartilham memória e clock
Comunicação entre CPU’s pela memória
Aumento de desempenho
Economia de Escala
Aumento de Confiabilidade
Podem ser:
                     Simétrico
Cada processador executa a mesma tarefa
                     Assimétrico
Cada processador executa tarefas diferentes

          Sistemas Distribuídos
Sistemas fracamente acoplados
Cada processador tem sua memória local
Comunicação se dá por canais de transmissão. Ex: Rede
Distribuem-se a computação entre diversos processadores fisicamente independentes
Podem se organizar como Cliente-Servidor ou Peer-to-Peer (par a par)
Compartilham recursos em uma rede
Aumenta o desempenho por dividir a carga de trabalho
Confiável
Provê comunicação entre usuários e aplicativos

Clusters (Agregados)
          Embutidos

Programa Interface: Shell ou GUI
Permite a Interação Usuário-Máquina
Shell (ou Interpretador de Comandos)
Alfanumérico
Baseado em Texto
Aguarda digitação do comando e enter
Permite digitar mais de um comando em uma única linha
Geralmente permite que a saída de um comando seja a entrada de outro

GUI (Graphical User Interface)
Interface Iconográfica
Baseada em Ícones ou Imagens
(Geralmente) Bidimensional
Permite clicar em um local da tela para efetuar operações
Executar um comando
Executar um programa
Não permite concatenação de operações (como na interface de texto)

Nenhum dos dois fazem parte específica do SO
Ambos se encontram na camada de Aplicação

Níveis de Operação
A maioria dos computadores (e PC’s a partir dos 286) tem 2 níveis de operação
Modo Nucleo (Kernel ou Supervisor)
     Modo Usuário

Modo Núcleo
Nível de Operação do SO em si
Programa nesse nível tem acesso completo a todo hardware e pode executar qualquer instrução que a máquina seja capaz de executar
Sistema Operacional impede que programas utilizem o modo Kernel

Modo Usuário
Disponibiliza apenas um subconjunto de instruções que a máquina é capaz de realizar
Instruções que afetam controle da máquina ou realizam E/S são proibidas
Tais funções são requisitadas ao Sistema Operacional via Chamada de Sistema

Chamada de Sistema
São métodos utilizados pelos programas para solicitar serviços específicos de hardware ao sistema operacional
Cada chamada corresponde a um procedimento definido em uma biblioteca de software disponibilizada pelo e contida no sistema operacional
As chamadas de sistema executam em modo protegido sem a interferência do usuário

     Processo de Execução de uma chamada de sistema:
Serviços são requisitados por se atribuir parâmetros adequados aos seus locais determinados, ex: Em registradores
Executa-se uma instrução especial de trap, uma chamada especial indicando que se deseja utilizar o modo kernel
A máquina é chaveada para o modo kernel, mas o controle vai para o SO, não para o programa
O SO examina os parâmetros para determinar qual das chamadas de sistema executar
Uma tabela é consultada para verificar o endereço do procedimento que executa a chamada ao sistema
Após a conclusão da chamada de sistema o controle retorna ao modo usuário e devolve a execução ao programa.
Exemplo:
          count=read(file,buffer,nbytes);
ptr=(int*)malloc(sizeof(int)*4);

Processo
Conceito fundamental para todos os SO’s
Ambiente onde se executa um programa
Consiste na área de memória alocada ao programa e a seus dados
Basicamente podemos dizer que é um programa em execução
SO indica a existência de um processo através de uma tabela chamada de tabela de processos
Cada entrada da tabela é chamada de bloco de controle do processo (Process Control Block PCB)
Um PCB é responsável por manter todas as informações referentes a um determinado processo
     Informações de um Processo
Ponteiros
Estado do Processo
Prioridade do Processo
Limites de Memória
Registradores Usados (e valores)
Estado dos Arquivos Abertos
Lista de Arquivos Abertos
Contabilidade do Processo no Uso de Recursos
Outras Informações
Estados do Processo
Num sistema multiprogramável (Multiprocessado), um processo passa por uma série de estados durante sua existência.
Esses estados determinam qual o comportamento do processo no sistema e se limitam a 3:
Pronto: Um processo encontra-se pronto para executar, apenas esperando o processador chamá-lo para iniciar
Executando: O processador está destinando seus recursos ao processo e efetivamente processando suas instruções
Bloqueado/Espera: Um processo está nesse estado quando aguarda a ocorrência de determinado evento para continuar sua execução

Um processo pode ser bloqueado por:
Apesar de estar pronto para executar, ainda necessita de alguma entrada ainda não disponível (DMA, scanf,…)
Estava executando, mas precisou realizar alguma operação de E/S, desocupou o processador, realizou a operação e aguarda a retomada.

Um processo muda diversas vezes de estado durante seu ciclo de vida em função de eventos gerados por ele próprio (Eventos Voluntários) ou pelo sistema operacional (Eventos Involuntários)

Basicamente existem quatro mudanças de estado que podem ocorrer a um processo:

8edddd2462cbe21143ca09114b6578af