Resposta originalmente postada no Quora em 16/07/2019
Tem sempre alguma coisa que a gente faz..
Vou citar uma aqui..
Certa feita tive de instalar um dual boot, Linux e Windows.
O Windows teve um update logo depois da instalação e zoou grandão o GRUB. O computador parou de funcionar.
Saquei meu script ‘reparagrub’ e rodei ele.
Programadores entenderão:
sudo mount /dev/sdb7 /mnt
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
sudo chroot /mnt
update-grub
grub-install /dev/sda
update-grub
exit
O
OS Kernel ou Núcleo do Sistema Operacional é um programa de computador
que é o coração do sistema operacional de um computador. Ele tem
controle completo sobre tudo que acontece no sistema.
Abaixo tem a estrutura básica de um sistema operacional Unix, situando o modo núcleo.
E aqui tem a estrutura básica de um sistema operacional Windows 7 situando o modo núcleo do sistema operacional:
Na
maioria dos sistemas ele é um dos primeiros programas a serem
carregados na inicialização, logo após do carregador inicial
(bootloader). Ele gerencia as demais inicializações assim como as
requisições de entrada e saída do software, traduzindo-as em instruções
de processamento de dados para o processador do computador. Ele também
manuseia a memória e periféricos como teclado, monitor, impressoras e
interface de áudio.
O Kernel faz a interface entre o software da aplicação e o hardware do computador.
A
parte crítica do código do Kernel é normalmente carregada em uma área
separada da memória a qual é protegida de ser acessada pelos programas
ou outras partes menos críticas do sistema operacional.
O
Kernel executa suas tarefas como rodar processos, gerenciar
dispositivos de hardware com o HD, fazer o gerenciamento de interrupções
dentro da área protegida do Kernel.
Por
outro lado, tudo o que o usuário faz é executado na área do usuário
(user space) como escrever um texto no editor de texto, rodar programas
em uma interface gráfica (GUI) e etc.
Essa
separação previne que os dados dos programas do usuário e os dados do
Kernel acabem interferindo um no outro o que pode causar instabilidade
no sistema, lentidão no processamento, erros nos programas e até causar
erros catastróficos no sistema operacional.
Resposta originalmente traduzida no Quora em 06/07/2019.
Sistema Operacional de Tempo Real (Real Time Operating System) é um sistema operacional especializado que é responsável por gerenciar os processos em um sistema de tempo real ( real time system.)
Ele é responsável pelo gerenciamento de processos e alocação de recursos.
O
sistema operacional em tempo real pode ser baseado em um kernel padrão
que é usado inalterado ou modificado para uma aplicação específica.
Normalmente, não inclui recursos como gerenciamento de arquivos.
Componentes do Sistema Operacional de Tempo Real:
Relógio de tempo real: (Real-time clock) Ele fornece informação para agendamento de tarefas
Gerenciador de interrupções: (Interrupt handler) Gerencia solicitações de serviços assíncronas .
Agendador: (Scheculer) Seleciona o próximo processo a ser executado.
Gerenciador de recursos: (Resource Manager) Aloca os recursos de processador e memória.
Despachante: (Dispatcher) Inicia a execução dos processos.
Os componentes de um sistema operacional de tempo real pode ser conforme abaixo:
Ele faz o gerenciamento automático e dinâmico da memória da seguinte forma:
Aloca memória do e a devolve para o sistema operacional.
Gerencia a memória para a aplicação à medida em que a aplicação requisita memória.
Determina quais partes da memória irão permanecer em uso pela aplicação.
Realoca memória não utilizada destinando-a para outra aplicação.
O Java HotSpot garbage collectors empregam várias técnicas para melhorar a eficiência dessas operações, entre elas:
Utiliza
o algoritmo de reclamação de armazenamento de memória “generational
scavenging” em conjunção com métodos de datação dos dados na memória a
fim de concentrar os esforços nas áreas que contenham mais dados
suscetíveis a serem reclamados.
Utiliza múltiplas threads para
execução de operações paralelas, ou executa operações de longo tempo de
execução em segundo plano enquanto rodando uma aplicação principal.
Procura liberar grandes blocos contíguos de memória pela compactação de objetos ativos (live objects).
Qual vantagem de se utilizar o Garbage Collector?
A
vantagem de se utilizar o garbage collector é que ele libera o
desenvolvedor de aplicações da tarefa manual de se fazer o gerenciamento
de alocação de memória.
O
desenvolvedor é liberado da necessidade de cuidar das alocações e
liberações de memória e fica livre de ter que tomar conta das tarefas
que alocam dinamicamente a memória.
Isso
elimina completamente alguns tipos de erros relacionados a
gerenciamento de memória bem como otimiza o tempo de execução da
aplicação. O Java HotSpot VM possui um conjunto de algoritmos que
executam essa tarefa.
Em tempo: Mas Renato, dá para usar macro para popular os campos da planilha junto com a desativação da GUI quando fazendo os cálculos … Isso faria o cálculo muito mais rápido =\. -> Meu caro, a ideia é mostrar que dá para resolver o caso utilizando apenas conhecimento de Excel básico. Quem manja VBA sabe que tem ferramentas muito melhores ;D