Hasta ahora, cada vez que nos referíamos a un conjunto de Procesos, usábamos el término programa ; si bien algunas veces el uso fue correcto, en otras no fue así, y deberíamos haber usado el término sesión.
Una sesión es un conjunto de procesos, junto con una pantalla, teclado y ratón virtuales. Cada vez que abrimos un programa en modo texto, OS/2 crea para él una sesión, asignándole un LVB en donde escribir los datos de salida, y una cola de teclado y de ratón, en donde se almacenarán las pulsaciones y los movimientos hasta que pueda procesarlos. Si esa sesión se encuentra en primer plano, su VDU, cola de teclado y cola de ratón estarán conectadas directamente a la pantalla física, al teclado físico y al ratón físico, así hasta que el usuario conmute a otra sesión usando el selector de programas, el cual es una parte especial de OS/2 dedicada precisamente a gestionar las sesiones.
Todos los procesos pertenecientes a una sesión acceden al mismo LVB y a la misma cola de teclado y ratón. Esto no es un problema, sino un efecto buscado, pues si es necesario, es posible desde una sesión crear otras nuevas y arrancar en ellas procesos, de modo que no interfieran con el actual. De aquí surje que también existe una jerarquía de sesiones, y ciertas implicaciones entre ellas. Por ejemplo, una sesión padre puede ser notificada de que ha terminado una sesión hijo. También una sesión padre puede traer a primer plano a cualquiera de sus hijos (siempre y cuando ella esté en primer plano), o vincularse a ellos, de modo que cuando uno sea traido a primer plano, el padre también lo haga (y viceversa). Por último, un padre puede parar una sesión hijo, pero solo a ella, y no a sus 'nietos', o a ella misma. Sin embargo, cuando se para una sesión hijo, se paran también todas sus sesiones descendientes.
Normalmente, cada vez que arrancamos un programa, se crea una sesión para él; sin embargo, en algunos casos podemos desear que no se cree una pantalla virtual o una cola de entrada de teclado, por ejemplo si el programa no tiene que interactuar con el usuario. En estos casos, se puede arrancar en una sesión 'muda', a la cual no se podrá conmutar mediante el selector de programas, y que finalizará cuando acabe dicho proceso/procesos. Para arrancar un programa así desde la línea de comandos de OS/2, se usa la orden DETACH nombre de programa.