En segundos se expresa esa unidad (lo puedes ver en
www.php.net/session)
Si propagas el SID en cookies (session.use_cookies ) .. el tiempo de expiración de esa cookie creada (lo define otra directiva del tema) también interviene en la "duración" de una sesión .. mejor dicho no de la duración "físca" de esa sesión .. pero en cierta manera se comporta así pues .. si ese tiempo de expiración está configurado a "0" (segundos .. es lo que está por defecto), el SID para ese cliente expira (desaparece) si cierra todas las ventanas abiertas de tu sitio (cookies de "sesión" le llaman a ese tipo de cookeis). Por ende .. el SID lo "perdió" el cliente ya y la sesión no será usada más por ese cliente (que la creó para si mismo y es única), pero .. si por otro médio recuperas ese SID y se lo pasas a tus scripts (depende de session.use_trasn_sid y de session.use_only_cookies si lo usas o no) .. podrías retomar esa sesión activa durante el tiempo que determine session.gc_maxlifetime que .. todavía será válido.
Por ende .. Todo depende de como propages el SID en tu aplicación. Si lo haces por el URL .. ese tiempo session.gc_maxlifetime debería ser lo menor posible, pero OJO .. por qué si le das poco tiempo, es probable que si un usuario está navegando tu sitio y se "entretiene" en cierta página .. al pasar a la siguiente tu sistema le diga que la "sesión expiró".
Yo usaría (y de hecho así lo hago) menos tiempo para session.gc_maxlifetime (10 minutos? o menos? .. depende del contenido de tu web y de como lo usen tus usuarios) .. a su vez propagaría el SID en cookies (session.use_only_cookie .. es decir: forzar a sólo usar cookeis para propagar el SID) y con tiempo de expiración 0
Al usar cookies para propagar el SID ..tendras que avisar a los usuarios de tu aplicación que requiere de navegadores que acepten cookies. El hecho de usar cookies para propagar el SID resuelve algunos problemas de "seguridad" que detalla el própio PHP.ini y php.net en su apartado sesiones.
Un saludo,