반응형


  프로세스 동기화와 관련된 용어를 정리해보겠다. 임계 영역(Critical section)이란 하나의 프로세스가 수정 가능한 공유 자원을 접근하고 있을 때, 그 프로세스에 의해 참조되는 프로그램의 일부분을 의미한다. 하나의 프로세스가 공유 데이터에 접근하는 동안에는, 다른 프로세스가 그 공유 데이터에 접근해서는 안된다. 따라서 상호배제(Mutual exclusion) 기법을 통해서 공유 자원에 동시에 접근하지 못하도록 제어하게 된다. 상호배제 기법에는 세마포어와 모니터가 있다. 그리고 여러 프로세스가 공유 메모리에 읽기 또는 쓰기를 할 때, 어떤 프로세스를 언제 실행하느냐에 따라 결과가 달라질 수 있는 상황이 생기는데 이를 경쟁 조건(race condition)이라고 한다. 또한 교착상태(Deadlock)란 다중 프로그래밍 시스템에서 아무리 기다려도 절대 일어나지 않을 사건이 일어나길 기다리는 프로세스가 하나 또는 하나 이상 있는 상태를 의미한다. 교착상태의 4가지 조건은 상호배제, 점유와 대기, 비선점, 환형 대기가 있다. 상호배제란 앞서 정리했듯, 프로세스가 자원을 배타적으로 점유하고 있어서 다른 프로세스가 자원을 사용할 수 없게 하는 것을 의미한다. 점유와 대기란 최소한 하나의 자원을 점유하고 있는 프로세스가 존재하고 있어야 하며, 이 프로세스는 다른 프로세스에 할당된 자원을 추가로 점유하기 위해 대기하는 것을 말한다. 비선점이란 자원을 점유하고 있는 프로세스들로부터 다른 프로세스가 자원을 빼앗아 점유할 수 없다는 의미이다. 그리고 환형 대기란, 프로세스와 자원이 원형을 이루며, 각 프로세스가 자신에게 할당된 자원을 가지면서 상대방 프로세스의 자원을 상호 요청하는 경우를 말한다. 이렇게 4가지 조건이 만족되면 교착상태가 발생하게 된다.

  다음으로 기억장치 즉, 메모리 관리와 관련된 용어들을 정리해보겠다. 먼저 주기억장치 관리와 관련된 용어로는 스와핑, 파티셔닝 등의 용어가 있으며, 가상기억장치 관리와 관련된 용어로는 페이징, 세그먼테이션 등의 용어가 있다. 스와핑(Swapping)이란 프로세스가 메모리에 상주하여 실행되고 있는 상태에서 임시로 예비 저장 장치에 내보내졌다가 이후에 다시 실행을 계속하기 위해 메모리로 되돌아오는 것을 의미이다. 파티셔닝 즉, 메모리 분할에는 고정 분할과 가변 분할이 있다. 고정 분할이란 메모리를 똑같은 고정된 크기로 분할하는 것을 말한다. 각 분할마다 한 프로세스를 가지며, 분할의 개수를 다중 프로그래밍 정도라고 한다. 가변 분할이란 가변적인 크기로 메모리를 분할하여 프로세스에 할당하는 것을 의미한다. 메모리의 어떤 부분이 사용되고 있거나 그렇지 않은지를 파악하기 위한 테이블을 유지해야 하며, 초기에는 메모리 공간을 하나의 큰 사용 가능한 블록으로 간주하여 할당한다. 가상기억장치 관리와 관련된 용어들은 다음 포스팅에서 정리하겠다.

  메모리 관리 정책에는 반입 정책, 배치 정책, 교체 정책이 있다. 반입(Fetch) 정책이란 주 기억장치에 적재할 다음 프로그램이나 자료를 언제 가져올 것인지를 결정하는 문제를 의미한다. 요구 반입 정책은 어떤 프로그램이나 자료가 참조되는 시점에 주 기억장치에 적재하는 기법이며, 예상 반입 정책은 앞으로 요구될 가능성이 높은 프로그램이나 자료를 미리 추측하여 주기억장치로 옮겨두는 기법이다. 배치(Placement) 정책이란 새로 반입된 프로그램이나 자료를 주 기억장치의 어느 부분에 위치시킬 것인지 결정하는 문제를 의미한다. 첫 번째 사용 가능한 가용 공간을 할당하는 최초 적합(First fit), 사용 가능한 공간들 중 가장 작은 공간을 할당하는 최적 적합(Best fit), 가장 큰 가용 공간을 할당하는 최악 적합(Worst fit) 방법 등이 있다. 마지막으로 교체(Replacement) 정책이란 새로운 프로그램을 주기억장치에 적재하기 위해 기존에 적재되어 있던 프로그램이나 자료들 중 어떤 것을 주 기억장치에서 제거하여 자리를 마련할지 결정하는 문제를 의미이다. 즉, 페이지 부재(Page fault)가 발생했을 때, 새로운 페이지의 공간을 만들어주기 위해 주 기억장치에서 제거할 페이지를 선택하는 정책을 말한다.

반응형

+ Recent posts