Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

dongdorodongdong

병행 프로세스 본문

Operating System

병행 프로세스

d5ngs 2019. 4. 11. 19:00

정의
- 두 개 이상의 프로세스들이 동시에 존재하며 실행 상태에 있는 것


문제점

  • 동시에 두 개 이상의 프로세스를 병행 처리하면 한정된 자원(CPU, Memory, Disk, I/O 장치 등)에 대한 사용 순서 등 여러 가지 문제가 발생

해결책

  • Critical Section (임계구역)
  • Mutual Exclusion (상호 배제)
  • 동기화 기법
    - Semaphore (세마포어)
    - Monitor (모니터)

Critical Section (임계 구역)

  • 정의
    - 한 순간에는 반드시 하나의 프로세스에 의해서만 자원 또는 데이터가 사용되도록 하고, 이러한 자원이 프로세스에 의하여 반납된 후 비로소 다른 프로세스에서 자원을 이용하거나 데이터를 접근할 수 있도록 지정된 영역
    즉, 하나의 프로세스만 자원을 이용할 수 있도록 보호된 영역

  • 특징
    - 특정 프로세스가 독점할 수 없다.
    - 프로세스가 임계 구역에 대한 진입을 요청하면 일정 시간 내에 진입을 허락해야 한다.



Mutual Exclusion (상호 배제)
  • 정의
    - 한 프로세스가 공유 메모리, 파일을 사용하고 있을 때 다른 프로세스들이 사용하지 못하도록 배제 시키는 제어 기법
    - 임계 구역을 유지하는 기법

  • 요구조건
    - 두 개 이상의 프로세스들이 동시에 임계영역에 있어서는 안된다.
    - 어떤 프로세스도 임계영역에 들어가는 것이 무한연기 되어서는 안된다.
    - 임계영역 밖에 있는 프로세스가 다른 프로세스의 임계영역 진입을 막아서는 안된다.
    - 임계구역 내에서 인터럽트, 교착상태, 무한반복이 발생되지 않도록 해야 함

  • 구현기법
    - S/W 구현 방법
    "데커 알고리즘, 피터슨  알고리즘"

    - H/W 구현 방법
    "Test&Set 기법, Swap 명령어 기법"

  • Dekker (데커) 알고리즘
    교착상태가 발생하지 않음을 보장
    - 공유 데이터에 대한 처리에 있어서 상호 배제를 보장
    - 별도 특수 명령어 없이 순수하게 S/W로 해결


Semaphore (세마 포어)
  • 정의
    - 신호기, 깃발이라는 뜻
    - 각 프로세스에 제어 신호를 전달하여 순서대로 작업을 수행하도록 하는 기법
  • 특징
    - Dijkstra (다익스트라)가 제안
    - P와 V라는 연산에 의해서 동기화유지 및 상호 배제 보장
    - 여러개의 프로세스가 동시에 값을 수정하지 못함

    - S는 P와 V연산으로만 접근 가능한 세마포어 변수, 공유 자원의 개수.(0, 사용중 / 1, 사용가능)
    - S가 2이면 임계구역에 2개의 프로세서가 들어갈 수 있음

  • 연산
    - P
    "임계 영역을 사용하려는 프로세스들의 진입여부를 결정하는 조작으로 자원이 점유되었음을 알림 (Wait 동작, S = S - 1)"
    - V
    "대기 중인 프로세스를 깨우는 신호로 자원이 반납되었음을 알림 (Signal 동작, S = S + 1)"



Monitor (모니터)

  • 정의
    - 임계구역과 유사한 개념
    - 동기화를 구현하기 위한 특수 프로그램 기법으로 특정 공유 자원을 프로세스에게 할당하는데 필요한 데이터와 이 데이터를 처리하는 프로시저로 구성
  • 특징
    - 자료 추상화, 정보 은폐 개념을 기초로 함
    - 모니터 내의 공유 자원을 사용하려면 프로세스는 반드시 모니터의 진입부를 호출
    - 외부의 프로세스는 직접 액세스할 수 없으며, 모니터의 경계에서 상호배제가 시행
    - 한 순간에 하나의 프로세스만 진입하여 자원을 사용
    - 모니터에 사용되는 연산은 Wait, Signal



'Operating System' 카테고리의 다른 글

Operating System  (0) 2019.04.12
DeadLock  (0) 2019.04.11
Linux/Unix 기본 명령어  (0) 2019.04.11
CPU Scheduling  (0) 2019.03.26
가상기억장치의 성능(Working Set/Thrashing/Locality)  (0) 2019.03.26