Um gabarito parcial:
a. ERRADA: no contexto de sistemas operacionais, um processo pode ser definido com um programa em execução (acho importante frisar isso pois o processo, após finalizado, não é mais um processo).
b. ?
c: CORRETA: é uma abstração de software (é uma técnica de software, que utiliza-se, por vezes, de "auxílios" em hardware - como instruções de processadores próprias para virtualização, ex: AMD-V e Intel VT-x), mas o que deve ficar claro é que ela é construído com código. Apesar de existirem virtualizações com hypervisores rodando diretamente sobre o hardware, acredito que o "frequentemente" não invalida a questão.
d. ERRADO "... maximizar a quantidade de tempo que um processo espera pelas E/S por disco". Esse escalonador é muito mal/troll, hein? Escalonadores (sejam de processos, como de disco, como de requisições quaisquer) são criados para otimizar o processamento de tarefas (em sentido genérico) segundo algum princípio/critério dado (prioridades, filas, pilhas, etc...).
Peço desculpas pela falta de referências, mas se alguém puder corrigir/complementar com Tanembaum/Stallings seria de muito bom grado.
Só complementando o comentário do Igor.
b) Quando um evento ocorre sincronamente em relação à operação de um processo, significa que ele acontece independentemente do que se passa no processo. Na verdade, um evento síncrono é o resultado direto da execução de um processo (programa corrente), além disso o resultado da sua execução é previsível. Por outro lado, um evento assíncrono ocorre independentemente da execução de um processo e seus resultados são imprevisíveis.
Fonte: http://www.gsigma.ufsc.br/~popov/aulas/so1/cap4so.html