운영체제 병행프로세스와 상호배제 레포트 과제제출 시험대비
본 내용은
"
운영체제 병행프로세스와 상호배제 레포트 과제제출 시험대비
"
의 원문 자료에서 일부 인용된 것입니다.
2023.03.09
문서 내 토픽
  • 1. Test-and-Set
    Test-and-Set은 동기화 하드웨어로 상호배제를 해결하는 명령어 개념입니다. 공유 변수를 수정하는 동안 인터럽트 발생을 억제하여 임계 영역 문제를 간단하게 해결할 수 있지만, 실행 효율이 현저히 떨어지고 스레드 간 Lock 경쟁이 발생할 수 있습니다. 이를 해결하기 위해 검사와 수정을 원자적으로 수행하여 임계 영역을 해결하는 방식으로 도입되었습니다.
  • 2. 세마포
    세마포는 신호기, 깃발이라는 뜻으로 각 프로세스에 제어 신호를 전달해 순서대로 수행하도록 합니다. P와 V 연산을 통해 동기화를 유지하고 상호 배제 원리를 보장합니다. 그러나 연산 순서를 바꾸거나 생략하면 상호배재 위반 또는 교착 상태가 발생할 수 있습니다.
  • 3. 데커 알고리즘
    데커 알고리즘은 하드웨어의 도움 없이 프로세스 두 개의 상호배제 문제를 해결할 수 있는 알고리즘입니다. 각 프로세스 플래그 설정과 다른 프로세스 확인 후 플래그 재설정이 가능합니다. 그러나 busy waiting으로 인한 CPU 낭비와 고정된 동기화 문제, 교착 상태 발생 등의 단점이 있습니다.
  • 4. 모니터
    모니터는 세마포의 단점을 극복하기 위해 도입된 개념으로, 적당한 동기화를 자동으로 제공하며 공유 데이터, 임계 영역이 코딩된 프로시저, 초기화 코드로 구성된 모듈입니다. 그러나 자원에 대한 접근 권한을 얻지 않았음에도 할 수 있어 보안 문제가 발생하고, 자원을 놓고 나가지 않을 수도 있어 무한 대기가 발생할 수 있습니다.
  • 5. T2 데커 알고리즘 코드
    T2 스레드의 데커 알고리즘 코드는 다음과 같습니다. T2가 임계영역에 들어가려 하면 t2WantsToEnter 플래그를 true로 설정합니다. 그 후 T1이 임계영역에 있는지 확인하고, T1이 있다면 T2의 임계영역 접근을 일시 중지시킵니다. T1이 임계영역에서 나오면 T2가 다시 임계영역에 접근할 수 있습니다. 임계영역 코드 실행 후 favoredThread를 1로 설정하여 다음에는 T1의 차례가 되도록 하고, t2WantsToEnter 플래그를 false로 설정하여 임계영역 사용이 완료되었음을 표시합니다.
Easy AI와 토픽 톺아보기
  • 1. Test-and-Set
    Test-and-Set은 동기화 기본 연산으로, 공유 자원에 대한 상호 배제 문제를 해결하는 데 사용됩니다. 이 기술은 프로세스가 공유 자원에 대한 배타적 액세스를 얻을 수 있도록 보장합니다. Test-and-Set 연산은 원자성을 가지며, 이를 통해 여러 프로세스가 동시에 공유 자원에 액세스하는 것을 방지할 수 있습니다. 이 기술은 운영 체제와 병렬 프로그래밍 분야에서 널리 사용되며, 동기화 및 상호 배제 문제를 해결하는 데 매우 중요한 역할을 합니다.
  • 2. 세마포
    세마포는 프로세스 간 동기화를 위한 중요한 메커니즘입니다. 세마포는 공유 자원에 대한 액세스를 제어하여 상호 배제를 보장합니다. 세마포는 정수 값을 가지며, 이 값은 동시에 액세스할 수 있는 프로세스의 최대 수를 나타냅니다. 프로세스가 공유 자원에 액세스하려면 세마포의 값을 감소시켜야 하며, 프로세스가 자원을 해제하면 세마포의 값을 증가시킵니다. 세마포는 운영 체제와 병렬 프로그래밍 분야에서 널리 사용되며, 동기화 및 상호 배제 문제를 해결하는 데 매우 중요한 역할을 합니다.
  • 3. 데커 알고리즘
    데커 알고리즘은 프로세스 간 동기화를 위한 중요한 알고리즘입니다. 이 알고리즘은 상호 배제와 진행 보장을 제공하며, 데드락 문제를 해결할 수 있습니다. 데커 알고리즘은 프로세스가 공유 자원에 액세스하기 위해 거쳐야 하는 단계를 정의하며, 이를 통해 여러 프로세스가 동시에 공유 자원에 액세스하는 것을 방지할 수 있습니다. 이 알고리즘은 운영 체제와 병렬 프로그래밍 분야에서 널리 사용되며, 동기화 및 상호 배제 문제를 해결하는 데 매우 중요한 역할을 합니다.
  • 4. 모니터
    모니터는 프로세스 간 동기화를 위한 중요한 메커니즘입니다. 모니터는 공유 자원에 대한 액세스를 제어하여 상호 배제를 보장합니다. 모니터는 공유 자원에 대한 액세스를 관리하는 일련의 프로시저로 구성되며, 이를 통해 여러 프로세스가 동시에 공유 자원에 액세스하는 것을 방지할 수 있습니다. 모니터는 운영 체제와 병렬 프로그래밍 분야에서 널리 사용되며, 동기화 및 상호 배제 문제를 해결하는 데 매우 중요한 역할을 합니다.
  • 5. T2 데커 알고리즘 코드
    T2 데커 알고리즘은 데커 알고리즘의 변형으로, 프로세스 간 동기화를 위한 중요한 알고리즘입니다. T2 데커 알고리즘은 상호 배제와 진행 보장을 제공하며, 데드락 문제를 해결할 수 있습니다. T2 데커 알고리즘의 코드는 프로세스가 공유 자원에 액세스하기 위해 거쳐야 하는 단계를 정의하며, 이를 통해 여러 프로세스가 동시에 공유 자원에 액세스하는 것을 방지할 수 있습니다. 이 알고리즘의 코드는 운영 체제와 병렬 프로그래밍 분야에서 널리 사용되며, 동기화 및 상호 배제 문제를 해결하는 데 매우 중요한 역할을 합니다.