O software responsável pelo gerenciamento dos recursos de hardware e pela comunicação entre usuário e computador é denominado: