1. การเข้าจังหวะ (Synchronization) : ในสภาวะ Multiprogramming ระบบจะทำการประมวลผลtaskโดย โปรเซสจะให้สัญญาณระหว่างกัน ซึ่งการรอสัญญาณระหว่าง task เราจะเรียกว่า synchronization โดยจะใช้ event flag ในการควบคุม เช่น Task A ต้องรอ Flag ให้เป็น ON จึงจะทำงานได้ Task B จึงมีหน้าที่เซท Flag ให้เป็น ON เพื่อให้ Task A ได้ทำงาน
  2. การควบคุมแยกจากกัน (Exclusive Control) : ปัญเกิดจากการใช้ทรัพยากรร่วมกันระหว่าง task เมื่อมีการใช้งานทรัพยากรตัวเดียวกันพร้อมๆกัน ทำให้ผลลัพธ์ของข้อมูลผิดพลาดไป ซึ่งเราเรียกว่า critical section exclusive ก็คือกลไกที่จะมาป้องกันปัญหาดังกล่าว โดยการใช้ semaphore และการ disable interrupt โดยหลักการง่ายๆก็คือ ในช่วงเวลาใดเวลาหนึ่ง resource ในระบบจะถูกเข้าถึงได้ด้วย task นั้นเพียง task เดียว หรืออีกเทคนิคก็คือ ห้ามมีการขัดจังหวะการทำงานของ task นั้นเอง แต่เทคนิคนี้ใช้เป็นระยะเวลานานไม่ได้เพราะระบบจะไม่ real-time แต่การใช้ semaphore ก็นำมาซึึ่งปัญหา deadlock ซึ่งก็คือ ไม่มี task ใดสามารถทำงานต่อได้ เนื่องจากทั้งคู่กำลัง lock ทรัพยากรที่อีกฝ่ายนึงต้องการ วิธีการแก้ไขก็คือกำหนดลำดับการเข้าถึงของทรัพยการ ซึ่งจะกำหนดไว้ตายตัว