Question d’entretien chez Simons Foundation

First were questions about multi-threading and multiprocessing: a) what are the differences? b) describe the Python GIL c) what's the difference between mutex and semaphore? d) does the GIL use semaphore or mutex internally?