Estrutura e arquitetura de um SO - Teoria de Sistemas Operacionais

COMPARTILHAR:

Quando um controlador de dispositivo deseja se comunicar com o processador, ele pode enviar uma requisição de interrupção ao processador.

Quando o processador deseja-se comunicar com um controlador de hardware, ele utiliza endereços de portas de entrada/saída. Pois dentro do computador, cada dispositivo físico é representado por seu respectivo controlador. Os controladores de dispositivos físicos possuem endereços que são chamados de portas de entrada/saída. Quando uma instrução de máquina deseja acessar um controlador, um dos operandos dessa instrução deve ser o endereço (porta) do controlador. No Linux, o "arquivo" proc/ioports contém uma lista de endereços de controladores que podem ser acessados pelo processador. Note que quando o controlador deseja se comunicar com o processador, a comunicação ocorrerá através das interrupções e não pelas portas de entrada/saída.

Controladores de dispositivos não são componentes do Sistema Operacional, os controladores são hardware e podem estar na placa mãe do computador ou em placas dedicadas. Eles "sabem conversar" com os dispositivos propriamente ditos (ex. SSD). Por exemplo, a placa de vídeo é um tipo de controlador e o monitor é o dispositivo físico.

Quando um processador recebe uma requisição de interrupção, os circuitos do processador suspendem seu fluxo de execução corrente e desviam para um endereço pré-definido onde se encontra uma rotina de tratamento de interrupção (interrupt handler). Essa rotina de tratamento é responsável por tratar a interrupção, ou seja, executar as ações necessárias para atender a interrupção gerada pelo dispositivo. Ao final da rotina de tratamento da interrupção, o processador retorna o código que estava executando quando recebeu a requisição. Para ver uma lista de interrupções tratadas pelos núcleos do processador, execute, no Linux, o comando # cat /proc/interrupts

Os drivers de dispositivos são responsáveis por interagir com os controladores de dispositivos. Já que a comunicação entre o SO e os controladores de dispositivos ocorrem por meio dos drivers. Cada driver tem o conhecimento do controlador de dispositivo ao qual ele está associado. Eles podem ser executados como módulos do SO e, quando são carregados, passam a ter acesso às variáveis e funções do Kernel (no caso de um SO monolítico ou híbrido, por exemplo).

Cada SO (Windows e Linux, por exemplo) possui seu próprio conjunto de chamadas de sistema (syscalls). As chamadas de sistemas são específicas de cada sistema operacional. As bibliotecas que você utiliza em um programa em C, por exemplo, conhecem as syscalls do SO. Por este motivo, o mesmo programa executável não roda no Windows e Linux.

Quando um controlador de dispositivo deseja se comunicar com o processador, ele pode enviar uma requisição de interrupção ao processador. O controlador pode se comunicar com o processador de duas maneiras: 1) aguardar até que o processador o consulte, o que poderá ser demorado caso o processador esteja ocupado com outras tarefas, o que geralmente ocorre; 2) notificar o processador, enviando a ele uma requisição de interrupção (IRQ - Interrupt ReQuest) através do barramento de controle.

As flags que definem o nível de privilégio só podem ser modificados por código executando no nível núcleo, o que impede usuários maliciosos de contornar essa barreira de proteção. Para realizar a operação de entrada/saída, o processo deve executar uma chamada de sistema. A execução da chamada de sistema (mais especificamente, da instrução syscall) troca o nível de privilégio do processador para que a operação de entrada/saída seja executada.

Interrupções de hardware que se comunicam com os dispositivos físicos executam no modo kernel. Como os drivers possuem esse tipo de instrução, eles devem operar no modo kernel. Note que, isso é muito importante pois é o Sistema Operacional que gerencia o acesso ao hardware. Se os programas de usuário pudessem acessar ao hardware diretamente, sem o conhecimento do Sistema Operacional, como a gerência dos recursos de hardware poderia ocorrer? O SO, por exemplo, gerencia a fila processos que desejam escrever em um SSD.

O processador de um computador típico pode operar no modo usuário ou no modo kernel (ou modo sistema). Os processadores de computadores típicos têm pelo menos esses dois modos de operação. Os processos de usuário executam no modo usuário e, por isso, têm acesso a um subconjunto de instruções seguras. Já os processos do SO, executam no modo kernel e, por isso, tem acesso a todo o hardware por meio das instruções de I/O. O código de uma chamada de sistema, por exemplo, têm acesso a todo o hardware pois ele executa no modo kernel.

Em um SO típico (ex. Linux, Windows), quando um aplicativo deseja acessar um arquivo em um dispositivo de armazenamento, o aplicativo se comunica com o sistema de arquivos (que é um componente do kernel do SO), que por sua vez se comunica com o driver. O driver interage com a controladora de disco que, por fim, interage com o disco. Esses passos descrevem, de forma geral, como ocorre a comunicação entre um processo de usuário e o hardware.

COMENTÁRIOS

Nome

#ann,24,#HK,29,#LTCode,90,Artigo - Diversos,162,Artigo - Games,198,Artigo - Tecnologia,566,autor-thomaz,7,Coluna - Alternative World,24,Coluna - Fail,12,Coluna - Tec Line,14,Criptomoeda,64,Curiosidades - Diversos,49,Curiosidades - Tecnologia,50,en,2,estudo,7,HN,12,logica,14,Programar C,29,Programar POO,6,Programar Python,6,Programar Shell,8,Programar verilog,12,Raspberry Pi,13,Redes,3,root,82,Shorty Awards,1,Smartphones - Reviews,33,Teoria,10,Top Nostalgia,2,VPN,17,WhatsApp,45,
ltr
item
Limon Tec: Estrutura e arquitetura de um SO - Teoria de Sistemas Operacionais
Estrutura e arquitetura de um SO - Teoria de Sistemas Operacionais
Quando um controlador de dispositivo deseja se comunicar com o processador, ele pode enviar uma requisição de interrupção ao processador.
https://1.bp.blogspot.com/-Vv6C0DkQgY0/WG_EGTY1EhI/AAAAAAAAFcs/qphwk8Z4UdkFSQu0zbS5xoZ_9_KovVlJACLcB/s320/ltcode.jpg
https://1.bp.blogspot.com/-Vv6C0DkQgY0/WG_EGTY1EhI/AAAAAAAAFcs/qphwk8Z4UdkFSQu0zbS5xoZ_9_KovVlJACLcB/s72-c/ltcode.jpg
Limon Tec
https://www.limontec.com/2022/02/teoria-sistemas-operacionais-1.html
https://www.limontec.com/
https://www.limontec.com/
https://www.limontec.com/2022/02/teoria-sistemas-operacionais-1.html
false
2157924926610706248
UTF-8
Carregar todos posts Não encontramos nenhum post VER TUDO Ler mais Responder Cancelar resposta Deletar Por Home PÁGINAS POSTS Ver tudo RECOMENDADO PARA VOCÊ LABEL ARQUIVO SEARCH TODOS POSTS Não encontramos nenhum post relacionado a sua requisição VOLTAR PÁGINA INICIAL Domingo Segunda Terça Quarta Quinta Sexta Sábado Dom Seg Ter Qua Qui Sex Sab Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro Jan Fev Mar Abr Maio Jun Jul Ago Set Out Nov Dez apenas agora 1 minuto atrás $$1$$ minutes ago 1 hora atrás $$1$$ hours ago Ontem $$1$$ days ago $$1$$ weeks ago mais de 5 semanas atrás Seguidores Seguir ESTE CONTEÚDO ESTÁ BLOQUEADO PASSO 1: Compartilhe com seus amigos PASSO 2: Clique no link compartilhado Copiar Todo Código Selecionar Todo Código Todos códigos foram copiados para seu clipboard Não é possível copiar códigos / textos, por favor aperte [CTRL]+[C] (ou CMD+C no Mac) para copiar Tabela de conteúdo