본문 바로가기

Development94

경쟁 조건 경쟁 상태(race condition)란 둘 이상의 입력 또는 조작의 타이밍이나 순서 등이 결과값에 영향을 줄 수 있는 상태를 말한다. 전산학에서 경쟁 상태란 공유 자원에 대해 여러 개의 프로세스가 동시에 접근을 시도할 때 접근의 타이밍이나 순서 등이 결과값에 영향을 줄 수 있는 상태를 말한다. Reference https://ko.wikipedia.org/wiki/경쟁_상태 2019. 12. 22.
레지스터 프로세서 레지스터(영어: processor register, 순화 용어: 기록기) 또는 단순히 레지스터는 컴퓨터의 프로세서 내에서 자료를 보관하는 아주 빠른 기억 장소이다. 일반적으로 현재 계산을 수행중인 값을 저장하는 데 사용된다. 대부분의 현대 프로세서는 메인 메모리에서 레지스터로 데이터를 옮겨와 데이터를 처리한 후 그 내용을 다시 레지스터에서 메인 메모리로 저장하는 로드-스토어 설계를 사용하고 있다. 레지스터는 메모리 계층의 최상위에 위치하며, 가장 빠른 속도로 접근 가능한 메모리이다. (그래서 스레드 등의 계산 작업 과정에서 발생하는 임시 계산 결과 등을 레지스터에 저장하는 건가보다. 가장 빨리 접근 가능하니까 임시 저장소로 최적의 자원일 것이다.) Reference https://ko.wikip.. 2019. 12. 22.
스레드(thread) 스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드(multithread)라고 한다. 멀티프로세스와 멀티스레드는 양쪽 모두 여러 흐름이 동시에 진행된다는 공통점을 가지고 있다. 하지만 멀티프로세스에서 각 프로세스는 독립적으로 실행되며 각각 별개의 메모리를 차지하고 있는 것과 달리 멀티스레드는 프로세스 내의 메모리를 공유해 사용할 수 있다(즉, 변수를 공유한다). 또한 프로세스 간의 전환 속도보다 스레드 간의 전환 속도가 빠르다. (아마도, 프로세스 간 전환은 하나의 프로세스가 점유하고 있던 자원을 반납하.. 2019. 12. 22.
튜링 동치(Turing equivalence) 만일 컴퓨터 P와 Q가 있을 때, P가 할 수 있는 일을 Q가 모두 흉내(simulate)낼 수 있고, Q가 할 수 있는 일을 모두 P가 흉내낼 수 있다면 두 컴퓨터는 튜링 동치이다. 대표적인 예가 세마포어와 뮤텍스(Mutual Exclusion)이다. 세마포어로 뮤텍스를 구현할 수 있고, 뮤텍스로 세마포어를 구현할 수 있기 때문에 두 기능은 동치이다. Reference https://namu.wiki/w/튜링 머신 2019. 12. 22.