Mapa Mental

Programas vs processos

Um programa é um conjunto de instruções que são executadas por um computador. Ele pode ser escrito em qualquer linguagem de programação e é armazenado em um arquivo no disco rígido ou em outro dispositivo de armazenamento.

Um processo, por outro lado, é a execução de um programa. Quando um programa é iniciado, o sistema operacional cria um processo para ele. Cada processo tem um espaço de endereçamento próprio, o que significa que cada processo tem sua própria área de memória para armazenar seus dados e instruções.

Um programa pode ser responsável por iniciar vários processos diferentes, enquanto cada processo corresponde a uma única execução de um programa. Portanto, um programa é um conjunto de instruções que podem ser executadas várias vezes, enquanto um processo é uma instância de um programa em execução.

CPU bound ou IO bound

As tarefas podem ser classificadas como CPU bound ou IO bound com base em sua demanda por recursos de CPU e entrada/saída.

Tarefas CPU bound são aquelas que requerem muita capacidade de processamento do processador, como cálculos complexos e processamento de grandes conjuntos de dados. Essas tarefas geralmente requerem poucas operações de entrada/saída, o que significa que elas não são interrompidas com frequência pelo sistema operacional. Tarefas CPU bound tendem a consumir muitos ciclos de CPU, o que pode afetar o desempenho de outras tarefas em execução no sistema.

Por outro lado, tarefas IO bound são aquelas que requerem muitas operações de entrada/saída, como leitura ou gravação de arquivos em disco ou comunicação com dispositivos de rede. Essas tarefas geralmente requerem menos ciclos de CPU e, portanto, não afetam tanto o desempenho de outras tarefas em execução no sistema. No entanto, elas podem levar mais tempo para serem concluídas, pois estão esperando por operações de entrada/saída para serem concluídas.

Processo de execução de um programa

Um programa é carregado para a memória RAM através de uma série de etapas.

Primeiro, o sistema operacional deve localizar o programa em armazenamento secundário, como o disco rígido ou um dispositivo de armazenamento externo. Em seguida, o sistema operacional carrega o código do programa em um espaço de endereço da memória RAM, que é um espaço de armazenamento temporário que pode ser acessado rapidamente pelo processador.

Antes de carregar o programa na memória RAM, o sistema operacional pode precisar carregar bibliotecas dinâmicas e outros arquivos necessários para o funcionamento do programa. Estes são arquivos de sistema que são compartilhados por vários programas e são carregados apenas uma vez na memória RAM, independentemente de quantos programas os utilizam.

Uma vez que o programa e todos os arquivos necessários são carregados na memória RAM, o processador pode começar a executar o código do programa. Enquanto o programa está sendo executado, o processador acessa continuamente a memória RAM para ler as instruções do programa e armazenar os dados resultantes.

Quando o programa é fechado, o sistema operacional libera o espaço de endereço da memória RAM que o programa ocupava, permitindo que outros programas o utilizem.

Untitled

Ciclo de Vida de um Processo em sistemas monotarefas

O ciclo de vida de um processo é o conjunto de estágios pelos quais um processo passa, desde a sua criação até o seu término. A primeira etapa do ciclo de vida de um processo é a criação, que ocorre quando um programa é iniciado pelo usuário ou pelo sistema operacional. Quando um processo é criado, o sistema operacional aloca espaço de endereço na memória RAM para o processo e atribui a ele um identificador único, conhecido como PID (Process ID).

Em sistemas operacionais mono tarefa, o ciclo de vida de um processo pode ser dividido em várias etapas:

  1. Criação: um novo processo é criado através de uma chamada de sistema ou por outro processo existente.