1. 기본적 하드웨어 - 주 메모리와 프로세서 내장 레지스터는 CPU가 직접 접근할수 있는 저장장치이다. 모든 실행되는 명령어와 데이터는 CPU가 직접적으로 접근할 수 있는 주 메모리오 레지스터에 있어야 한다.CPU의 내장 레지스터들은 일반적으로 CPU 클록의 1 사이클내에 접근이 가능한데 , 메모리 버스를 통해서 전송되는 주 메모리의 경우에는 많은 CPU 클록 틱 사이클이 소요되고, 지면(Stall) 현상이 발생하기도 한다. 따라서 CPU와 주 메모리 사이에 캐시(Cache)메모리를 추가하여 속도의 차이를 완화시킨다. 이러한 속도 차이에 대한 고려뿐만 아니라 보호기법등 여러가지 구현방법들이 있다. 2. 메모리 보호 기법 - 프로세스가 합법적인 영역만 접근하도록 설정하는것이 필요하다. "기준(base)"..
여러개의 프로세스들이 한정된 자원을 가지고 서로 경쟁할때 생기는 문제로 대기 중인 프로세스들이 다시는 그 상태를 변경시킬 수 없을때의 상황을 "Dead Lock", 즉, 교착상태라고 한다. 일반적으로 프로세스는 1) 요청 2) 사용 3) 방출 의 과정을 따른다. 1. 교착상태 특징 교착상태는 아래의 4가지 조건을 성립할때 발생할 수 있다. 1) 상호 배제 ( Mutual Exclusion ) - 한 번에 한 프로세스만이 그 자원을 사용할 수 있고, 다른 프로세스가 자원을 요청하면, 요청 프로세스는 자원이 방출될 때까지 반드시 지연되어야 한다. 2) 점유하며 대기 ( Hold and Wait ) - 프로세스는 최소한 하나의 자원을 가지고 있는 상태에서 , 다른 프로세스에 의해 점유된 자원을 얻기 위해서는 ..
1. 유한 버퍼 문제 - 유한 버퍼 문제는 동기화 문제의 대표적인 예로서 생산자는 데이터를 만들어서 버퍼에 저장하는 프로세스를 뜻하고, 소비자는 버퍼에 있는 데이터를 꺼내서 소비하는 프로세스를 뜻한다. 버퍼는 공유자원이기 때문에 생산하고 소비하는 작업이 서로 상호배제 되어야 하는데, 이 두개를 병행하게 실행시킬 경우 올바르게 동작하지 않는다. 왜냐하면 두 개의 프로세스가 동시에 변수 counter를 조작하도록 허용하였기 때문인데, 이를 race condition 이라고 한다. 따라서 하나의 프로세스만이 변수를 조작할수 있도록 프로세스를 동기화 시켜야 한다. ( 동기화 : 순서에 있어 질서가 잘 맞게 하는것 ) 2. 임계 영역 프로세스는 코드, 데이터, 스택 영역으로 이루어져 있다. 각각의 프로세스는 임계..