Çdo proçes mbaron pasi ka kryer punën e tij. Kjo gjë ndodh në një nga këto kushte :
- Përfundim normal ( në mënyrë të vullnetshme )
- Dalje me gabim ( në mënyrë të vullnetshme )
- Gabim fatal ( në mënyrë të pavullnetshme )
- E komanduar nga një proçes tjetër ( në mënyrë të pavullnetshme ).
Shumë proçese mbarojnë sepse e kanë përfunduar detyrën e tyre. Psh kur një kompilator ka kryer kompilimin e një programi atëherë kompilatori ekzekuton një thirrje sistemi për ti treguar se mbaroi detyrën. Kjo thirrje në UNIX është exit kurse në Windows është ExitProçess.
Në rastin e dytë proçesi mbaron për shkak të një gabimi. Psh kur përdoruesi përpiqet të kompilojë një program në një skedar i cili nuk ekziston. Në këtë rast kompilatori përfundon dhe shpesh në të tilla raste afishohen mesazhe që njoftojnë përdoruesin.
Në rastin e tretë arsyeja e përfundimit është nga një gabim i gjeneruar nga vetë proçesi. Psh proçesi mund të tentoje të ekzekutojë një instruksion jo të rregullt, mund të tentojë të shënjojë në një vend joekzistent në memorje. Në të tilla raste në UNIX një proçes mund t’i kërkojë sistemit të shfrytëzimit që të trajtojë vetë të tilla gabime dhe proçesi mund të ndërpritet por jo të ndalojë.
Në rastin e katërt një proçes mund t’i bëjë një thirrje sistemi për të mbaruar një proçes tjetër. Në UNIX kjo thirrje quhet kill. Për Win32 ky funksion është TerminateProçess. Në të dyja rastet proçesi që realizon thirrjen duhet të jetë i autorizuar për të realizuar këtë thirrje.
Bazuar në librin Modern Operating Systems, me autor A.Tanenbaum