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.