Aula01 Sistemas Operacionais
A programação concorrente foi utilizada inicialmente na criação de sistemas operacionais. Um sistema operacional é um programa que atua como um intermediário entre o usuário e o hardware de um computador.
O Sistema Operacional é o primeiro software a ser executado quando o computador é ligado, sendo carregado para a memória RAM, assumindo o gerenciamento de Entrada e Saída de dados.
Um sistema operacional não é executado de forma estruturada. Suas rotinas são executadas concorrentemente em função de eventos assíncronos. Em outras palavras, eventos que podem ocorrer a qualquer momento. Um SO moderno possui as funções de gerenciar os processos, gerencia de memória, controle dos sistemas de arquivos e entrada e saída de dados.
1.1 Gerenciamento de processos
Um sistema operacional multitarefa é preparado para dar ao usuário a ilusão de que o os processos são executados simultaneamente, mas na verdade, cada processo recebe uma fatia de tempo e a alternância entre vários processos é tão rápida que da a impressão de que sua execução é simultânea. Os processos podem comunicar-se, isto é conhecido como IPC (Inter-Process Communication).
1.2 Gerenciamento de memória
O sistema operacional tem acesso completo à memória e deve permitir que os processos dos usuários tenham acesso seguro à memória quando o requisitam. A grande maioria dos SOs utilizam memória virtual, que possui 3 funções básicas: Assegurar que cada processo tenha seu próprio espaço de endereçamento. Prover proteção da memória para impedir que um processo utilize um endereço de memória que não lhe pertença. Possibilitar que uma aplicação utilize mais memória do que a fisicamente existente.
1.2.1 Swapping
Nesta técnica o sistema escolhe um processo que é levado da memória para o disco (swap out), retornando posteriormente para a memória principal (swap in). Isso normalmente ocorre quando o espaço de memória alocado é insuficiente para a execução dos processos, isso pode impor um