Please enable JavaScript.
Coggle requires JavaScript to display documents.
Processos, MAPA MENTAL 3 DISCIPLINA: SO 2023/2 ALUNO: JOÃO PEDRO…
Processos
Escalonamento de processos
Multiprogramação mantém a CPU ocupada, sempre executando algum processo.
Compartilhamento de tempo permite alternar entre programas em execução, permitindo a interação do usuário.
O escalonador de processos é responsável por escolher um processo disponível e atribuí-lo à CPU.
O número máximo de processos em estado "executando" é igual ao número de CPUs lógicas disponíveis no sistema.
Filas de escalonamento de processos
Fila de job: Todos os processos no sistema.
Fila de pronto: Processos na memória prontos para execução.
Filas de dispositivo: Processos esperando por E/S.
Processos migram entre as filas.
Escalonadores
Longo prazo: Decide quais processos entrarão na fila de pronto.
Controla o grau de multiprogramação.
Médio prazo: Controla a movimentação de processos entre memória e disco.
Invocado infrequentemente, pode ser lento.
Curto prazo: Escolhe qual processo será executado a seguir e aloca a CPU.
Invocado frequentemente, deve ser rápido.
Processos podem ser voltados para E/S (I/O-Bound)
Processos podem ser voltados para CPU
Troca de contexto
O contexto de um processo, que é representado pelo PCB do processo.
Quando a CPU muda para outro processo, o sistema salva o estado do processo anterior e carrega o estado do novo processo.
O tempo de troca de contexto é considerado overhead, pois não realiza trabalho útil.
O tempo de troca de contexto é influenciado pelo suporte de hardware do sistema.
Multitarefa em sistemas móveis
Apple IOS
Versões antigas não permitiam multitarefa.
A partir do iOS 4.0, suporte limitado à multitarefa.
Versões posteriores expandiram recursos.
Android
Não impõe restrições rígidas à multitarefa.
Aplicativos em segundo plano usam serviços.
Serviços são eficientes em termos de recursos.
Notificações são exemplos de interações de aplicativos em segundo plano.
Comunicação Interprocessos (Interprocess Communication)
Processos podem ser independentes (não afetam outros) ou cooperativos (podem afetar e compartilhar dados com outros).
Razões para permitir comunicação entre processos
Compartilhamento de informações, como arquivos com acesso concorrente.
Agilidade na computação, dividindo tarefas em paralelo.
Modularidade, dividindo funções em módulos.
Conveniência, realizando várias tarefas simultaneamente.
Modelos de comunicação interprocesso
Memória compartilhada: Região de memória comum para comunicação rápida.
Troca de mensagens: Útil para pequenas quantidades de dados e fácil implementação.
Sistemas de memória compartilhada
Processos se comunicam e compartilham uma região de memória comum.
Desativam a proteção de memória do SO.
Formato e local dos dados são controlados pelos processos.
Processos devem evitar escrever simultaneamente na mesma área de memória.
Sistemas de transmissão/troca de mensagens
Processos se comunicam sem usar variáveis compartilhadas.
Operações principais: send (enviar mensagem) e receive (receber mensagem).
Para se comunicar, os processos precisam estabelecer um link de comunicação.
Implementações de links podem ser físicas ou lógicas
Questões de implementação
Estabelecimento de links
Número de links entre processos
Capacidade dos links
Tamanho das mensagens
Direção dos links (unidirecional ou bidirecional)
Tipos de comunicação
Comunicação direta
Processos devem se nomear explicitamente.
Operações send(P, mensagem) e receive(Q, mensagem).
Propriedades do link
Links são estabelecidos automaticamente.
Um link por par de processos em comunicação.
Geralmente bidirecional.
Comunicação indireta
Mensagens são direcionadas e recebidas por caixas de correio (portas).
Cada caixa de correio tem uma ID única.
Processos só podem se comunicar se compartilharem a mesma caixa de correio.
Propriedades do link
Link estabelecido somente se processos compartilharem uma caixa de correio.
Vários processos podem compartilhar uma caixa de correio.
Vários links entre cada par de processos.
Pode ser unidirecional ou bidirecional.
Sincronização
Passagem de mensagens pode ser bloqueante (síncrona) ou não bloqueante (assíncrona).
Armazenamento em buffer
Fila de mensagens ligada ao link.
Três implementações
Capacidade zero
Capacidade limitada
Capacidade ilimitada
Conceito
Processo é um programa em execução
A execução do processo deve progredir de modo sequencial
Inclui
Código programa (text section)
Contador de programa
Pilha LIFO (stack)
Seção de dados com variáveis globais (data section)
Região de monte usada em alocação dinâmica (heap)
Estados do processo
Novo
Executando
Em espera
Pronto
Terminado
Bloco de controle de processo (PCB)
Estado de processo
Contador de programa
Registradores da cpu
Informações de escalonamento da cpu
Informações de gerenciamento de memória
Informações de contabilidade
Threads
Processos tradicionais têm um único thread de execução.
Threads permitem que um processo tenha múltiplas tarefas simultâneas.
Útil em sistemas multicore para execução paralela.
PCB é expandido para incluir informações de cada thread.
Requer modificações no sistema operacional para suportar threads.
Definição
Um processo é a unidade de trabalho em um sistema moderno de tempo compartilhado
Um sistema é formado por um conjunto de processos
Processo de sistema
Processo de usuário
Processo = Entidade ativa
Programa = Entidade passiva
Operações sobre processos
Sistemas permitem execução concorrente e criação/exclusão dinâmica de processos.
Primitivas fornecidas para criação e término de processos.
Identificação de processos por identificadores exclusivos (pid).
Pids são números inteiros únicos de cada processo, usados para acessar atributos no kernel
Criação de processos
Processo pai cria processos filhos, formando uma árvore de processos.
Compartilhamento de recursos
Pai e filhos compartilham todos os recursos.
Filhos compartilham um subconjunto dos recursos do pai.
Pai e filho não compartilham recursos.
Execução
Pai e filhos podem executar simultaneamente.
Pai pode esperar até que os filhos terminem antes de continuar.
Encerramento de processos
O pai pode encerrar processos filhos (abort) por várias razões.
A tarefa atribuída ao filho não é mais necessária.
Se o pai estiver encerrando, alguns sistemas operacionais não permitem que os filhos continuem.
O filho excedeu os recursos alocados.
O processo termina com uma solicitação ao sistema operacional (exit).
Os dados de saída podem ser comunicados ao processo pai (wait).
Recursos são liberados pelo sistema operacional.
Término em cascata ocorre quando todos os filhos são encerrados quando o pai termina.
MAPA MENTAL 3
DISCIPLINA: SO 2023/2
ALUNO: JOÃO PEDRO SPINASSÉ VIANA