-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Um sistema operacional pode ser visto de como:
- uma abstração do hardware, intermediando os softwares e o hardware, numa visão top-down
- um gerenciador de recursos (memória, disco, periféricos), controlando os processos e seus recursos, numa visão bottom-up
Sendo projetado para ocultar as particularidades de hardware e, com sua atuação, criar uma máquina abstrata que fornece às aplicações serviços compreensíveis ao usuário, o sistema operacional está presente em todos os dispositivos computacionais:
- Windows, MacOS e Linux são os mais populares, utilizados em desktops
- Android, iOS, Windows Phone, BlackBerry OS são usados em dispositivos mobile
Em computação, um processo é uma instância de um programa de computador que está sendo executada. Ele contem o código do programa e sua atividade atual.
Um programa de computador é uma coleção passiva de instruções, enquanto que um processo é a execução real dessas instruções. Vários processos podem ser associados com o mesmo programa. Por exemplo, abrir várias instâncias do mesmo programa geralmente significa que mais de um processo está sendo executado.
Dentre os processos, podemos destacar dois principais tipos que estão relacionados a seu local de execução, no caso CPU e Entrada e Saída de dados.
- Processos CPU bound (orientados à CPU): são processos que utilizam muito o processador, em que o tempo de execução é definido pelos ciclos de processador.
- Processos I/O bound (orientados à E/S): são processos que realizam muitas operações de entrada e saída de dados, em que o tempo de execução é definido pela duração destas.
A CPU (Central Processing Unity) de um computador é a peça fundamental para a execução das aplicações solicitadas pelo usuário. Uma peça tão disputada entre os processos das aplicações deve ter um gerenciamento refinado para que todas as requisições sejam atendidas, para isso tem-se o escalonador de processos.
O escalonador de processos enfileira todos os processos que estão aptos a serem executados na CPU, de acordo seu algoritmo de escalonamento. A CPU então executa os processos na ordem dessa fila, chamada fila de prontos. De acordo o algoritmo de escalonamento, a CPU pode implementar a preemptividade dos processos.
Em computação, preemptividade (algumas vezes preempção) é o ato de interromper temporariamente uma tarefa sendo executada por um sistema computacional, sem exigir sua cooperação, e com a intenção de retomar à tarefa posteriormente. Tais mudanças da tarefa executada são conhecidas como trocas de contexto, as quais exigem certo tempo para salvar o estado do processo que acabou de executar, a fim de que a CPU saiba exatamente onde ela parou na execução desse processo, e carregar todas as informações necessárias para a execução do novo processo .
O escalonador pode reordenar a fila de prontos, dependendo do seu algoritmo, após a CPU executar, completa ou parcialmente, o primeiro processo da fila.
Veja aqui o funcionamento de alguns algoritmos de escalonamento