Como funciona o sistema operacional durante a usabilidade do usuário, entenda!
{ ' Fala galera, sou aluna de Análise e desenvolvimento de sistemas, e acho interessante publicar minhas conclusões dos meus estudos baseados nas atividades da universidade que estou cursando, colocando em palavras comuns, explicando os termos técnicos para melhor entendimento! Se ficar alguma dúvida pode me perguntar' }
Como um sistema operacional funciona durante a usabilidade do usuário?
Vamos entender o que são processos e programa:
Processos: processos não são somente um conjunto de instruções mas também consome recursos de Hardware como memória, processamento, rede e etc…
Programa: Conjunto de códigos sendo ativamente executados.
Entendendo isso vamos entender como o S.O funciona vamos lá!
Ao carregar o Sistema Operacional, são criados vários processos, deixando pré carregados de acordo com cada usuário. Ele já deixa processos definidos para se preparar para sua utilização, por exemplo <permissões de acesso, senha, usuário, memória e afins>.
O usuário ao dar um duplo clique em qualquer programa que ele queira executar, o SO rapidamente coloca em um processo em um estado chamado New onde ele está carregando as instruções para memória do computador.
Assim que as instruções daquele programa estiver totalmente carregado na memória, ele entra no estado de admissão, nesta fase ele entra para uma fila de prontos, ou seja, os processos dele estão devidamente carregados e aguardando na fila de ‘prontos’ para ser executado.
Quando chega a vez dele de ser executado, o SO envia a informação para executar instrução por instrução.
No processo de execução, quando não há nenhuma interferência que ele possa ser interrompido ou aguardando alguma liberação para finalizar, ele simplesmente é finalizado. Contudo pode existir uma segunda ocasião quando seus processos são interrompidos aguardando instruções externas para dar continuidade, nessa fase ele entra nos status que chamamos de waiting, assim que a solicitação é fornecida ao sistema ele da continuidade e finaliza sua execução.
Sistema operacional multitarefas.
O SO multitarefas garante um tempo específico para o programa executar, caso ele não execute neste tempo estimado pelo SO, ele é interrompido e volta para o final da fila de ‘prontos’ para dar a chance a outro programa que está aguardando nesta fila.
Supondo que na fila de ‘prontos’ há 3 programas aguardando para ser executado:
• programa 1 tem 20 solicitações para executar;
• programa 2 tem 18 solicitações;
• programa 3 tem uma solicitação;
Certamente ele vai priorizar o programa 3, contudo caso ele não execute essa uma solicitação em um certo tempo determinado, ele perde a chance e passa para o próximo.
Bloco de controle de processos (Process Control Block) PCB
O PCB é basicamente um repositório de processos, quando você dá inicio a um processo clicando em um programa para ser aberto, as seguintes informações são salvas nesse ‘repositório’:
Estado do processo: Novo, pronto, executando e etc (status);
Controle de programa: Caso o programa seja interrompido, ao retomar ele precisa saber em qual instrução ele estava (indica o endereço da próxima instrução);
Registradores da CPU: Escalonamento (quais recursos da máquina esse programa usou’ HD, RAM e etc…’), valor dos registradores que o programa ocupou (quanto de RAM e quanto de HD por exemplo ele ocupou em valores).
Informações de escalonamento de CPU: Prioridade do processo (exemplo dado a cima), informações para o escalonamento;
Informações gerenciamento de memoria: Dados como registradores para escalonamento;
Informações de contabilização: Tempo de CPU, número do processo e etc;
Informações de status de E/S: Lista de dispositivos de entrada e saída de dados, lista de arquivos abertos etc…
Lista de escalonamento de processos
Essa lista de escalonamento é importante para o SO entender em quais momentos escalonar certos processos, a lista consiste em:
Fila de tarefas (Job Queue): Conjunto de todos os processos no sistema, (Iniciados ou não);
Fila de processos prontos (Ready Queue): Conjunto de todos os processos que estão na memória principal que estão prontos e esperando para serem executados;
Fila de dispositivos (Device Queue): Conjunto de processos esperando um dispositivo de E/S.
Escalonadores
O escalonador é um software no SO, que define qual processo será enviado para CPU e ser executado, ele define o critério.
• Escalonadores de curto prazo: Assim que um processo acaba, ele já agiliza para o próximo na fila de ‘prontos’ executar.
• Escalonadores de longo prazo: Quando algum processo não tem tanta urgência, principalmente quando o computador não tem mais recursos, então ele ‘ agenda ‘ a execução daquele programa para depois.
• Escalonadores de médio prazo: Quando os programas na fila de ‘pronto’ precisam ser rapidamente executados porém está faltando recursos da máquina, ele envia os processos para o disco do computador (memória virtual), libera a memória principal, e logo após ele remove do disco e volta para memória principal.
Esse procedimento feito pelo escalonador de médio prazo são definidos da seguinte maneira:
• Swap-Out: Com isso, o seu processo é temporariamente suspenso e seu contexto é salvo em disco (HD).
• Swap-in: Após um tempo os processos são trazidos de volta do disco para memória principal e ficam novamente prontos para execução.
Processos IO-Bound e CPU-Bound
IO-Bound: Processo limitado por E/S, gasto mais tempo realizando operações de E/S do que cálculos (poucos processos na fila de prontos, menos utilização da CPU).
CPU-Boud: Processos limitados a CPU, gasta mais tempo realizando cálculos, fera pedidos de E/S com pouca frequência (Poucos dispositivos E/S, muita CPU).
<Criação de processos>
• { Processos podem ser criados e removidos dinamicamente do sistema }
• { Um único processo ‘PAI’ pode criar processos filhos, e esses filhos mais processos filhos assim formando a ‘árvore de processos’ }
<Conclusão>
<O sistema operacional possui vários processos>
• { Inicialmente ao carregar o Sistema Operacional, são criados vários processos};
• { O usuário ao executar programas, cria um processo para cada um deles};
• { É possível também criar processos através de chamadas de sistema (system call) a partir de outro processo}.
Como um sistema operacional funciona durante a usabilidade do usuário?
Vamos entender o que são processos e programa:
Processos: processos não são somente um conjunto de instruções mas também consome recursos de Hardware como memória, processamento, rede e etc…
Programa: Conjunto de códigos sendo ativamente executados.
Entendendo isso vamos entender como o S.O funciona vamos lá!
Ao carregar o Sistema Operacional, são criados vários processos, deixando pré carregados de acordo com cada usuário. Ele já deixa processos definidos para se preparar para sua utilização, por exemplo <permissões de acesso, senha, usuário, memória e afins>.
O usuário ao dar um duplo clique em qualquer programa que ele queira executar, o SO rapidamente coloca em um processo em um estado chamado New onde ele está carregando as instruções para memória do computador.
Assim que as instruções daquele programa estiver totalmente carregado na memória, ele entra no estado de admissão, nesta fase ele entra para uma fila de prontos, ou seja, os processos dele estão devidamente carregados e aguardando na fila de ‘prontos’ para ser executado.
Quando chega a vez dele de ser executado, o SO envia a informação para executar instrução por instrução.
No processo de execução, quando não há nenhuma interferência que ele possa ser interrompido ou aguardando alguma liberação para finalizar, ele simplesmente é finalizado. Contudo pode existir uma segunda ocasião quando seus processos são interrompidos aguardando instruções externas para dar continuidade, nessa fase ele entra nos status que chamamos de waiting, assim que a solicitação é fornecida ao sistema ele da continuidade e finaliza sua execução.
Sistema operacional multitarefas.
O SO multitarefas garante um tempo específico para o programa executar, caso ele não execute neste tempo estimado pelo SO, ele é interrompido e volta para o final da fila de ‘prontos’ para dar a chance a outro programa que está aguardando nesta fila.
Supondo que na fila de ‘prontos’ há 3 programas aguardando para ser executado:
• programa 1 tem 20 solicitações para executar;
• programa 2 tem 18 solicitações;
• programa 3 tem uma solicitação;
Certamente ele vai priorizar o programa 3, contudo caso ele não execute essa uma solicitação em um certo tempo determinado, ele perde a chance e passa para o próximo.
Bloco de controle de processos (Process Control Block) PCB
O PCB é basicamente um repositório de processos, quando você dá inicio a um processo clicando em um programa para ser aberto, as seguintes informações são salvas nesse ‘repositório’:
Estado do processo: Novo, pronto, executando e etc (status);
Controle de programa: Caso o programa seja interrompido, ao retomar ele precisa saber em qual instrução ele estava (indica o endereço da próxima instrução);
Registradores da CPU: Escalonamento (quais recursos da máquina esse programa usou’ HD, RAM e etc…’), valor dos registradores que o programa ocupou (quanto de RAM e quanto de HD por exemplo ele ocupou em valores).
Informações de escalonamento de CPU: Prioridade do processo (exemplo dado a cima), informações para o escalonamento;
Informações gerenciamento de memoria: Dados como registradores para escalonamento;
Informações de contabilização: Tempo de CPU, número do processo e etc;
Informações de status de E/S: Lista de dispositivos de entrada e saída de dados, lista de arquivos abertos etc…
Lista de escalonamento de processos
Essa lista de escalonamento é importante para o SO entender em quais momentos escalonar certos processos, a lista consiste em:
Fila de tarefas (Job Queue): Conjunto de todos os processos no sistema, (Iniciados ou não);
Fila de processos prontos (Ready Queue): Conjunto de todos os processos que estão na memória principal que estão prontos e esperando para serem executados;
Fila de dispositivos (Device Queue): Conjunto de processos esperando um dispositivo de E/S.
Escalonadores
O escalonador é um software no SO, que define qual processo será enviado para CPU e ser executado, ele define o critério.
• Escalonadores de curto prazo: Assim que um processo acaba, ele já agiliza para o próximo na fila de ‘prontos’ executar.
• Escalonadores de longo prazo: Quando algum processo não tem tanta urgência, principalmente quando o computador não tem mais recursos, então ele ‘ agenda ‘ a execução daquele programa para depois.
• Escalonadores de médio prazo: Quando os programas na fila de ‘pronto’ precisam ser rapidamente executados porém está faltando recursos da máquina, ele envia os processos para o disco do computador (memória virtual), libera a memória principal, e logo após ele remove do disco e volta para memória principal.
Esse procedimento feito pelo escalonador de médio prazo são definidos da seguinte maneira:
• Swap-Out: Com isso, o seu processo é temporariamente suspenso e seu contexto é salvo em disco (HD).
• Swap-in: Após um tempo os processos são trazidos de volta do disco para memória principal e ficam novamente prontos para execução.
Processos IO-Bound e CPU-Bound
IO-Bound: Processo limitado por E/S, gasto mais tempo realizando operações de E/S do que cálculos (poucos processos na fila de prontos, menos utilização da CPU).
CPU-Boud: Processos limitados a CPU, gasta mais tempo realizando cálculos, fera pedidos de E/S com pouca frequência (Poucos dispositivos E/S, muita CPU).
<Criação de processos>
• { Processos podem ser criados e removidos dinamicamente do sistema }
• { Um único processo ‘PAI’ pode criar processos filhos, e esses filhos mais processos filhos assim formando a ‘árvore de processos’ }
<Conclusão>
<O sistema operacional possui vários processos>
• { Inicialmente ao carregar o Sistema Operacional, são criados vários processos};
• { O usuário ao executar programas, cria um processo para cada um deles};
• { É possível também criar processos através de chamadas de sistema (system call) a partir de outro processo}.
Comentários
Postar um comentário