תהליך (מדעי המחשב)

תהליך (באנגלית: Process) במדעי המחשב, הוא מופע של תוכנית מחשב שמופעל על ידי מערכת מחשב שיש לה היכולת להפעיל מספר תהליכים בו זמנית.

תוכנית מחשב היא בעצמה רק אוסף פקודות, בעוד שתהליך הוא ההפעלה של אותן פקודות. כך למשל, הפעלה של מספר מופעים של אותה תוכנה יגרום לעיתים קרובות למספר תהליכים של התוכנה להיפתח בו זמנית. כדי לאפשר למשתמש להפעיל מספר תהליכים במקביל, מתבצעת על ידי סדרן התוכניות (Scheduler) חלוקת זמן מעבד בין התהליכים. בסיום ריצתו, התהליך מחזיר ערך יציאה (Exit status) שמאפשר לתהליך האב שיצר אותו לקבל מידע על סיום מוצלח של התהליך או לחלופין ערך שגיאה המעיד על סוג הכישלון שמנע מהתהליך להסתיים בהצלחה. תהליך שסיים את פעולתו אך עדיין קיים בטבלת התהליכים כדי שיתאפשר לתהליך האב לקרוא את ערך היציאה שלו מכונה תהליך זומבי.

יצוג תהליך במערכת ההפעלה 
תהליך מהווה מחשב וירטואלי שלם, והגדרתו נעשית על ידי מערכת ההפעלה ועל כן יכולה להשתנות ממערכת הפעלה אחת לשנייה. אך באופן כללי הגדרה זו תכיל:
 העתק של אוסף הפקודות של התוכנית.
 הזיכרון של התהליך - מיפוי הזיכרון של התהליך במרחב הזיכרון הווירטואלי לזיכרון הפיזי, מחסנית קריאות וערימה לחישובי ביניים הנעשים בזמן ריצה.
 רשימת משאבים זמינים שהוקצו לתהליך על ידי מערכת ההפעלה.
 זהות והרשאות - מידע אודות הבעלים של התהליך והרשאות ריצה. על מערכת ההפעלה גם לדעת אם התהליך הופעל ממצב ליבה או ממצב משתמש.
 מצב המעבד - זהו ההקשר שמאפשר למעבד לבצע החלפת הקשר. מידע זה מכיל את ערך האוגרים, כתובת זיכרון פיזי וכולי. מידע זה נשמר באוגרים של המעבד בזמן ריצה, ואחרת בזיכרון.

תהליך אחד יכול להריץ מספר תהליכונים. תהליכונים אלו חולקים את הייצוג של התהליך, ועל כן הם בעלי הרשאות משותפות, מפת זיכרון משותפת וכולי. כמו כן תהליך אחד יכול ליצור ולהריץ תהליכים אחרים במקביל לפעולתו.

מערכת ההפעלה שומרת על הפרדה בין התהליכים ומקצה להם את המשאבים בצורה שתבטיח עד כמה שניתן שתהליכים לא יפריעו אחד לשני (הפרעה כזו יכולה להתבטא בצורת קיפאון). כמו כן על מערכת ההפעלה לספק מנגנון לתקשורת בין תהליכים, כדי לאפשר לתהליכים לתקשר אחד עם השני באופן בטוח.

ראו גם 
 ריבוי משימות
 החלפת הקשר
 סנכרון (מדעי המחשב)
 תהליכון