병행프로세스
병행프로세스 : 두 개 이상의 프로세스들이 동시에 존재하며 있는 것, (노트그림참고 )
병행프로세스(Concurrent Processes)는 동시에 여러 개의 프로세스가 실행되는 것을 의미합니다. 이러한 프로세스들은 서로 독립적으로 실행되지만, 동시에 실행될 수 있으며, 서로 다른 작업을 수행합니다.
병행프로세스는 다음과 같은 특징을 갖습니다.
동시성: 병행프로세스는 여러 개의 프로세스가 동시에 실행되는 것을 의미합니다. 이러한 프로세스들은 서로 독립적으로 실행되지만, 시스템 자원(CPU, 메모리, 입출력 등)을 공유합니다.
독립성: 각각의 병행프로세스는 서로 독립적으로 실행됩니다. 이는 하나의 프로세스가 종료되더라도 다른 프로세스에는 영향을 미치지 않는다는 것을 의미합니다.
상호작용: 병행프로세스는 서로 다른 작업을 수행하며, 이들 간의 상호작용이 필요할 수 있습니다. 이를 위해 프로세스 간의 통신과 동기화 기능이 필요합니다.
병행성 제어: 병행프로세스는 동시에 실행되므로, 이들 간의 충돌을 막기 위해 병행성 제어 기법이 필요합니다. 예를 들어, 임계영역 문제를 해결하기 위한 세마포어(Semaphore)나 뮤텍스(Mutex) 같은 기법을 사용할 수 있습니다.
병행프로세스는 다양한 분야에서 활용됩니다. 예를 들어, 병행 프로그래밍(concurrent programming)에서는 병행프로세스를 이용하여 여러 개의 작업을 동시에 처리할 수 있습니다. 또한, 병렬 컴퓨팅(parallel computing)에서는 여러 개의 프로세스가 동시에 실행되어 병렬적으로 계산을 수행합니다. 이를 통해 계산 속도를 향상시킬 수 있습니다.
서로 관련없이 독립적으로 수행/ 다른프로세스들과 협력 필요 :기능수행
협력적 병행프로세스 : 제한된 자원을 공유하기 위해 상호작용 필요/교착상태,임계구역
문제를 해결하기위해 동기화 필요
(프로세스동기화 -> 공유된자원 읽기/쓰기문제 해결위해 동기화(피터슨->세마포)
병행처리의 문제점 해결해야할 문제점
-공유자원을 상호배타적으로 사용가능해야함(=상호배제가 되어야함) (상호배타적이라함은 공유자원을 특정 A프로세스가 차지하면 A만사용할수 있어야한다는 것, 동시사용은 할수 없도록하는것)
-임계구역(공유자원중에도 나혼자 쓸수있는 구역)에 진입해서 쓰는동안은 나혼자만 사용할수 있어야 한다. =임계구역에 접근한 프로세스는 상호배제를 보장
-교착상태 문제 ( A B 둘다 나아가지 못하는 상태 )
하드웨어에 의한 동기화
트랜잭션(더쪼갤 수 없는 일의 단위)
TestAndSet 하드웨어에 가기위한 한 방법 / 락 비어있는지 확인하고 비어있으면 내가 가져감,