병행 프로세스1

OwlSuri·2023년 3월 26일
0

방통대 운영체제

목록 보기
4/12

병행프로세스의 개요

  • 병행성 : 여러개의 프로세스 또는 쓰레드가 동시 수행되는 시스템의 특성
  • 병행 프로세스 : 동시 수행되는 여러개의 프로세스 또는 쓰레드

병행 프로세스의 실행 형태

  • 1개의 CPU : 인터리빙 형식

  • 여거래의 CPU : 병렬처리 형식

  • 멀티프로세서 시스템에서의 메모리 구조에 따라

프로세스 간의 관계

  1. 독립 프로세스
  • 수행중인 다른 츠로세스에 영행을 주지도 받지도 않음
  • 데이터 및 상태를 다른 프로세스와 공유하지 않음
  • 프로세스의 실행
    - 결정적 : 실행결과는 입력에 의해서만 결정됨
    • 재생가능 : 같은 입력에 대해 항상 동일한 실행결과
  1. 혐력 프로세스
  • 수행중인 다른 프로세스와 영향을 주고 받음
  • 데이터 및 상태를 다른 프로세스와 공유
  • 프로세스와 실행
    - 비결정성 : 실행결과는 실행 순서에 좌우됨
    • 재생불가능 : 같은 입력에 대해 항상 동일한 실행결과를 보장하지 못함

병행성 문제

  • 협력 프로세스인 경우 발생 가능한 문제

상호배제

  • 2개 이상의 프로세스가 동시에 임계역역을 수행하지 못하도혹 하는 것
    - 임계영역 : 2개 이상의 프로세스가 동시에 사용하면 안되는 공유지원을 액세스하는 프로그램 코드 영역

    -> A가 끝나고 나서 B처리하도록 상호배제 해야함

동기화

  • 2개의 프로세스에 대한 처리 순서를 결정하는 것 -> 프로세스 동기화
  • 상호배제 : 임계영역에 대한 동기화 문제

    -> 다른 프로세스라도 순서 정해줘야함

통신

  • 프로세스들이 데이터를 동유하기 위하 반드시 필요 -> 프로세스간 통신(IPC)
  • 통신방법
    - 하나의 변수사용
    • 메세지를 서루 주고받음

세마포어

  • 상호배제와 동기화 문제를 해결하기 위한 도구

  • 정수형 공용변수
    - 저장값 : 사용가능한 자원의 수 또는 잠김이나 풀림의 상태

  • 상황에 맞춰 0 이상인 정수로 초기화

  • 두 시본연산 P와 V에 의해서만 사용됨
    - 기본연산 : 인터럽트 되지 않고 하나의 단위로 처리됨(중간에 끊기지 않음)

  • 연산 P
    - 검사, 감소 시키려는 시도

  • 연산 V
    - 중가

  • 세마포어마다 대기 큐 필요

상호배제 해결

  1. 상호배제를 위한 일반적인 요구사항
  • 한 프로세스가 임계영역 수행중
    - 다른 프로스세는 임계영역에 진입해서는 안됨
  • 임계 영역 수행중이던 프로세스가 임계영역 벗어남
    - 누군가 하나는 임계영역을 새로이 수행할 수 있어야 함
  • 임계영역 진입 못하고 대기하는 프로셋,
    - 적절한 시간 내에 임게영역 수행을 시작할 수 있어야 함
  1. 상호배제를 위한 임계영역 주변의 코드 영역

  2. 세마포어 이용

  1. 동기화 해결

-> A, B 중 무엇미 먼저 들어와도 A가 먼저 처리되고 B 처리됨

profile
기억이 안되면, 기록을 -

0개의 댓글