Sistema operacional - processos

Processo

Um processo é basicamente um programa em execução. A execução de um processo deve progredir de forma sequencial.

Um processo é definido como uma entidade que representa a unidade básica de trabalho a ser implementada no sistema.

Simplificando, escrevemos nossos programas de computador em um arquivo de texto e quando executamos este programa, ele se torna um processo que realiza todas as tarefas mencionadas no programa.

Quando um programa é carregado na memória e se torna um processo, ele pode ser dividido em quatro seções ─ pilha, heap, texto e dados. A imagem a seguir mostra um layout simplificado de um processo dentro da memória principal -

SN Descrição do componente
1

Stack

A pilha do processo contém os dados temporários, como parâmetros de método / função, endereço de retorno e variáveis ​​locais.

2

Heap

Esta é a memória alocada dinamicamente para um processo durante seu tempo de execução.

3

Text

Isso inclui a atividade atual representada pelo valor do Contador do Programa e o conteúdo dos registros do processador.

4

Data

Esta seção contém as variáveis ​​globais e estáticas.

Programa

Um programa é um pedaço de código que pode ter uma única linha ou milhões de linhas. Um programa de computador é geralmente escrito por um programador de computador em uma linguagem de programação. Por exemplo, aqui está um programa simples escrito em linguagem de programação C -

#include <stdio.h>

int main() {
   printf("Hello, World! \n");
   return 0;
}

Um programa de computador é uma coleção de instruções que executa uma tarefa específica quando executada por um computador. Quando comparamos um programa com um processo, podemos concluir que um processo é uma instância dinâmica de um programa de computador.

Uma parte de um programa de computador que executa uma tarefa bem definida é conhecida como um algorithm. Uma coleção de programas de computador, bibliotecas e dados relacionados são referidos como umsoftware.

Ciclo de Vida do Processo

Quando um processo é executado, ele passa por diferentes estados. Esses estágios podem ser diferentes em diferentes sistemas operacionais e os nomes desses estados também não são padronizados.

Em geral, um processo pode ter um dos cinco estados a seguir por vez.

SN Estado e descrição
1

Start

Este é o estado inicial quando um processo é iniciado / criado pela primeira vez.

2

Ready

O processo está esperando para ser atribuído a um processador. Os processos prontos estão esperando que o processador lhes seja alocado pelo sistema operacional para que possam ser executados. O processo pode entrar neste estado apósStart estado ou durante a execução, mas interrompido pelo agendador para atribuir CPU a algum outro processo.

3

Running

Uma vez que o processo tenha sido atribuído a um processador pelo escalonador do SO, o estado do processo é definido como running e o processador executa suas instruções.

4

Waiting

O processo passa para o estado de espera se precisar esperar por um recurso, como aguardar a entrada do usuário ou aguardar que um arquivo fique disponível.

5

Terminated or Exit

Quando o processo termina sua execução ou é encerrado pelo sistema operacional, ele é movido para o estado encerrado, onde aguarda para ser removido da memória principal.

Bloco de controle de processo (PCB)

Um Bloco de Controle de Processo é uma estrutura de dados mantida pelo Sistema Operacional para cada processo. O PCB é identificado por um ID de processo inteiro (PID). Um PCB mantém todas as informações necessárias para manter o controle de um processo, conforme listado abaixo na tabela -

SN Informação e descrição
1

Process State

O estado atual do processo, ou seja, se está pronto, em execução, em espera ou qualquer outra coisa.

2

Process privileges

Isso é necessário para permitir / proibir o acesso aos recursos do sistema.

3

Process ID

Identificação única para cada processo no sistema operacional.

4

Pointer

Um ponteiro para o processo pai.

5

Program Counter

Contador de programa é um ponteiro para o endereço da próxima instrução a ser executada para este processo.

6

CPU registers

Vários registros de CPU onde o processo precisa ser armazenado para execução para o estado de execução.

7

CPU Scheduling Information

Prioridade do processo e outras informações de agendamento necessárias para agendar o processo.

8

Memory management information

Isso inclui as informações da tabela de páginas, limites de memória, tabela de segmentos dependendo da memória usada pelo sistema operacional.

9

Accounting information

Isso inclui a quantidade de CPU usada para a execução do processo, limites de tempo, ID de execução etc.

10

IO status information

Isso inclui uma lista de dispositivos de E / S alocados para o processo.

A arquitetura de um PCB é totalmente dependente do sistema operacional e pode conter informações diferentes em sistemas operacionais diferentes. Aqui está um diagrama simplificado de um PCB -

O PCB é mantido por um processo ao longo de sua vida útil e é excluído quando o processo termina.