공부기록

병행성 : 상호배제와 동기화 본문

CS/OS

병행성 : 상호배제와 동기화

코타쿠 2021. 5. 4. 21:40
  • 시스템 구조에 따른 프로세스 관리의 구분
    • 다중 프로그래밍 (Multiprogramming)
      • 단일 처리기 상에서 다수의 프로세스 관리
    • 멀티 프로세싱 (Multiprocessing)
      • 다중처리기 상에서 다수의 프로세스 관리
    • 분산 처리 (Distributed processing)
      • 다수의 분산된 컴퓨터 시스템들 상에서 수행되는 다수의 프로세스 관리
      • 클러스터 시스템
  • 병행성
    • 프로세스 관리에서 핵심적인 주제
    • 프로세스의 병행처리, 프로세스간 통신, 자원에 대한 공유 및 경쟁, 프로세스 활동들의 동기화, 프로세스에 대한 처리기 시간 할당 등 다양한 이슈들을 포함
  • 병행성의 발생 상황
    • 여러개의 응용프로그램들
      • 여러개의 활동중인 프로세스들이 처리시간을 동적으로 공유할 수 있도록 다중 프로그래밍이 개발됨
    • 구조화된 응용
      • 어떤 응용 프로그램들은 병행 프로세스들의 집합으로서 효과적으로 프로그래밍 된다.
    • OS 구조
      • OS 또한 프로세스들과 스레드들의 집합이다.
  • 병행성과 관련있는 주요용어
    • 임계영역 (critical section)
      • 공유 자원에 접근하는 각 프로세스 내부의 코드 영역으로, 다른 프로세스가 해당 코드 영역을 수행하는 동안 수행하지 않아야 하는 코드 영역
    • 교착상태 (deadlock)
      • 두 개 이상의 프로세스들이 서로 다른 프로세스가 어떤 일을 해 줄 때까지 기다리고 있어 관련 프로세스 모두가 더 이상 진행을 할 수 없는 상태
    • 라이브락 (livelock)
      • 두 개 이상의 프로세스들이 다른 프로세스의 상태 변화에 따라 자신의 상태를 변화시키는 작업만 수행하고 있는 상태. 각 프로세스들이 열심히 작업하고 있지만, 수행되는 작업은 유용한 것이 아닌 반복적인 상태 변화일 뿐
    • 상호배제 (mutual exclusion)
      • 한 프로세스가 공유 자원에 접근하는 임계영역 코드를 수행하고 있을 경우, 다른 프로세스들은 해당 자원에 접근하는 각자의 임계영역 코드를 수행할 수 없다는 조건
    • 경쟁조건 (race condition)
      • 두 개 이상의 프로세스가 공유 데이터 항목을 읽고 쓰는 상황으로, 최종 수행 결과는 프로세스들의 상대적인 수행 순서에 따라 달라질 수 있음
    • 기아 (startvation)
      • 구행 가능한 프로세스가 스케줄러에 의해 무한정 간과되고 있는 상황 (수행 가능하지만 선택되지 않는 상황)

'CS > OS' 카테고리의 다른 글

세마포어  (0) 2021.05.14
병행성의 원리  (0) 2021.05.14
스케줄링 알고리즘  (0) 2021.05.04
처리기 스케줄링의 유형  (0) 2021.05.04
스케줄링의 개념  (0) 2021.05.04