昨天說完進程的狀態了,那在執行時會碰到哪些問題勒?特別是在多工處理下會碰到哪些困難,我們又如何解決?
1.進程同步與互斥(Process Synchronization and Mutual Exclusion)
同步(Synchronization): 當多個進程需要協作完成某些任務時,作業系統會確保它們的運行是有序的,避免競爭條件(Race Condition)。例如,在共享資源時,必須確保一個進程不會在另一個進程修改數據的同時讀取該數據。
互斥(Mutual Exclusion): 這是一種確保同一時間只有一個進程可以訪問共享資源的機制,避免數據不一致。作業系統使用鎖(Locks)、信號量(Semaphores)和監控器(Monitors)等技術來實現互斥。
2.死鎖(Deadlock):當多個進程彼此等待對方持有的資源時,可能會導致死鎖的發生,這使得這些進程無法繼續運行。作業系統通過死鎖預防,避免或檢測與恢復來處理死鎖問題。
3.多處理器環境下的處理器管理(Multiprocessing):在多處理器系統(即有多個 CPU)中,作業系統需要管理多個處理器,這使得作業系統必須決定如何分配不同的進程到不同的 CPU 上,以達到最佳效能。
作業系統會採用對稱多處理(Symmetric Multiprocessing, SMP),即每個 CPU 都平等分配進程,或非對稱多處理(Asymmetric Multiprocessing, AMP),由其中一個處理器來分配其他處理器的工作。
處理器(CPU)的部分就到這邊告一段落啦~有沒有覺得有點複雜勒?你平常在用的電腦內部都在做這些事喔!明天我們就來看看第二個主題記憶體(memory)與作業系統間的關係吧!