One_Blog

공유 자원 사용 시 일어나는 일 [운영체제 수업] 본문

운영체제

공유 자원 사용 시 일어나는 일 [운영체제 수업]

0xOne 2023. 3. 28. 16:21
728x90

날짜 : 2023년 3월 28일

 

오늘 수업 주제

: 공유 자원 사용 시 일어나는 일





오늘 배운 내용 요약

:

공유 자원 : 2개이상 프로세스가 사용하는 자원

 

배타적 사용 : 하나의 공유자원을 한순간에 하나의 프로세스가 사용

 

상호 배제 : 동시에 여러 프로세스들이 하나의 공유자원을 사용할 수 없게 함

-> 프로세스가 임계 영역에서 수행중일 때 타 프로세스가 공유자원을 사용할 수 없게 하는 것

 

임계 영역 : 경쟁 조건을 가진 공유 자원을 동시에 접근하는 코드를 실행하는 영역

 

경쟁 상태 : 공유된 자원에 둘 이상 프로세스가 접근하여 조작할 떄, 순서에 따라 결과값이 다양하게

변화할 수 있는 상황 -> 데이터의 무결성 및 정확성이 깨질 수 있다.

 

동기화 : 공유 자원이 있을 때, 여러 개의 프로세스들이 서로 동작을 맞추어 서로의 정보를 공유하는 것

 

Enter cs primitives

  • 임계 영역 진입 전 검사
  • 다른 프로세스가 임계 영역에 있는지 검사

 

Exit cs primitives

  • 임계 영역을 벗어날 떄 후처리 과정 필요

 

상호 배제의 조건

  • 두 프로세스는 동시에 임계 영역에 진입 불가
  • 프로세스의 수, 속도에 영향 받지 않음
  • 공유 자원을 사용하는 프로세스만 다른 프로세스를 차단 가능
  • 프로세스가 공유 자원을 쓰려고 너무 오래 기다리는 것도 불가능

 

임계 영역 문제 해결을 위한 3가지 조건

 

상호배제

  • 오류가 발생하지 않도록 오직 한 프로세스만 진입 가능
  • 특정 프로세스가 임계 영역내에서 실행중 일 때, 다른 프로세는 임계 영역에 진입 불가

진행

  • 임계 영역을 진행중인 프로세스가 없을 때, 다른 프로세스가 접근할 수 있도록 해야함
  • 임계 영역을 진행 중인 프로세스가 없을 때, 들어가려는 프로세스가 여러개 있다면, 어떤

프로세스가 들어갈 지 결정하고, 이것은 유한한 시간 내에 이루어져야함.

유한 대기

  • 다른 프로세스의 기아 방지를 위해 한번 들어간 프로세스에게 제한을 줌
  • 임계 영역에 진입을 요청했을 때, 유한한 시간 내에 진입해야함.

기아 : 프로세스가 어떤 사건에 대해 무한정 기다리는 현상

 

임계 영역의 구조

Entry Section : 진입 영역 : 프로세스가 임계 영역 진입에 허락을 받는 부분

 

Critical Section : 임계 영역 : 한 순간에 한 프로세스만 실행해야 하는 부분

 

Exit Section : 탈출 영역 : 임계 영역 수행을 마치고 나갈 때 필요한 작업을 수행하는 부분

 

나머지 영역 : 임계 영역과 관련없는 나머지 코드 부분