The Session layer provides the mechanism for managing the dialogue between end-user application processes. It provides for either duplex or half-duplex operation and establishes checkpointing, adjournment, termination, and restart procedures.
The Session layer is typically completely unused, but it does have a few places where it is useful. The idea is to allow information on different streams, perhaps originating from different sources, to be properly combined. In particular, it deals with synchronisation issues, and ensuring nobody ever sees inconsistent versions of data, and similar things.
One application which is fairly intuitively clear is multimedia conferencing. Here, we want to make sure that the streams of audio and video match up - or in other words, that we do not have lipsync problems. We may also want to do "floor control" - ensuring that the person displayed on screen and whose words are relayed is the one selected by the speaker, or by some other criteria.
Another big application is in live TV programmes, where streams of audio and video need to be seamlessly merged from one to the other so that we do not have half a second of blank airtime, or half a second when we transmit two pictures simultaneously.