멀티테스킹, 컴퓨터가 한번에 둘 이상의 작업을 수행하는 것인데 과거에는 여러 작업을 동시에 수행할 수 있는 척만 했지만 이제는 멀티코어 프로세서를 통해 한 번에 둘 이상의 일을 하고 있습니다.
그래서 이제는 처리 순서가 중요하게 되었는데
예를 들어 같은 공금 통장을 사용하고 있는 자취생 a와 b가 잔고가 100만원인 통장에서 각자 ATM에 가서 a는 75만원, b는 50만원을 동시에 찾으려고 하면 은행 소프트웨어는 공동계좌를 잠가서 둘 중 한 사람에게만 돈을 지급해야 초과 인출을 막을 수 있다.
이를 경합 조건이라고 하고, 계좌 잔고는 공유 자원이 된다.
경합 조건은 2개 또는 그 이상의 프로그램이 같은 자원에 동시에 접근하고, 자원 사용 순서에 결과가 달라지는 경우를 뜻한다.
공유자원
어떤 자원이 공유될 수 있는가?
거의 대부분이 공유가 될 수 있으며, 메모리의 경우 항상 공유 문제와 연관이 되고 심지어 공유 대상이 메모리가 아닌 경우에도 메모리가 관련된 경우가 많다.
그래서 FPGA란 새로운 공유 대상 자원으로 떠오르고 있으며 FPGA란, 프로그램이 가능한 비메모리 반도체의 일종. 회로 변경이 불가능한 일반 반도체와 달리 용도에 맞게 회로를 다시 새겨넣을 수 있다. 따라서 사용자는 자신의 용도에 맞게 반도체의 기능을 소프트웨어 프로그램 하듯이 변형시킬 수 있다.