Study/TIL(Today I Learned)

24.07.05 CS

에린_1 2024. 7. 5. 21:20
728x90

CS

세마포어(Semaphore) & 뮤텍스(Mutex)

  • 공유된 자원에 여러 프로세스가 동시에 접근하면서 문제가 발생할 수 있다. 이때 공유된 자원의 데이터는 한 번에 하나의 프로세스만 접근할 수 있도록 제한을 둬야 한다.
  • 세마포어
    • 멀티프로그래밍 환경에서 공유 자원에 대한 접근을 제한하는 방법
  • 임계 구역(Critical Section)
    • 여러 프로세스가 데이터를 공유하며 수행될 때, 각 프로세스에서 공유 데이터를 접근하는 프로그램 코드 부분이다.
    • 공유 데이터를 여러 프로세스가 동시에 접근할 때 잘못된 결과를 만들 수 있기 때문에, 한 프로세스가 임계 구역을 수행할 때는 다른 프로세스가 접근하지 못하도록 해야 한다.

세마포어 P, V 연산

  • P : 임계 구역에 들어가기 전에 수행(프로세스 진입 여부를 자원의 개수(S)를 통해 결정)
  • V : 임계 구역에서 나올 때 수행(자원 반납 알림, 대기 중인 프로세스를 깨우는 신호)

뮤텍스

  • 임계 구역을 가진 스레드들의 실행 시간이 서로 겹치지 않고 각각 단독으로 실행되게 하는 기술
  • 해당 접근을 조율하기 위해 lock와 unlock을 사용한다.
  • lock
    • 현재 임계 구역에 들어갈 권한을 얻어온다.
  • unlock
    • 현재 임계 구역을 모두 사용했음을 알린다.
  • 뮤텍스는 상태가 0, 1로 이진 세마포어로 부르기도 한다.

페이징과 세그먼테이션

  • 다중 프로그래밍 시스템에 여러 프로세스를 수용하기 위해 주기억장치를 동적 분할하는 메모리 관리 작업이 필요하기 때문이다.

메모리 관리 기법

  1. 연속 메모리 관리
    • 프로그램 전체가 하나의 커다란 공간에 연속적으로 할당되어야 한다.
    • 고정 분할 기법
      • 주기억장치가 고정된 파티션으로 분할된다. (내부 단편화 발생한다)
    • 동적 분할 기법
      • 파티션들이 동적 생성되며 자신의 크기와 같은 파티션에 적재한다. (외부 단편화 발생)
  2. 불연속 메모리 관리
    • 프로그램의 일부가 서로 다른 주소 공간에 할당될 수 있는 기법이다.
    • 페이지
      • 고정 사이즈의 작은 프로세스 조각
    • 프레임
      • 페이지 크기와 같은 주기억장치 메모리 조각
    • 단편화
      • 기억 장치의 빈 공간 or 자료가 여러 조각으로 나뉘는 현상
    • 세그먼트
      • 서로 다른 크기를 가진 논리적 블록이 연속적 공간에 배치되는 것.
    • 고정 크기
      • 페이징(Paging)
    • 가변 크기
      • 세그먼테이션(Segmentation)
    • 단순 페이징
      • 각 프로세스는 프레임들과 같은 길이를 가진 균등 페이지로 나뉨
      • 외부 단편화 X
      • 소량의 내부 단편화가 존재한다.
    • 단순 세그먼테이션
      • 각 프로세스는 여러 세그먼트들로 나뉨
      • 내부 단편화 X, 메모리 사용 효율 개선, 동적 분할을 통한 오버헤드 감소
      • 외부 단편화 존재
    • 가상 메모리 페이징
      • 단순 페이징과 비교해 프로세스 페이지 전부를 로드시킬 필요 X
      • 필요한 페이지가 있으면 나중에 자동으로 불러들어짐
      • 외부 단편화 X
      • 복잡한 메모리 관리로 오버헤드 발생
    • 가상 메모리 세이그먼트
      • 필요하지 않은 세그먼트들은 로드되지 않음
      • 필요한 세그먼트 있을때 나중에 자동으로 불러들어짐
      • 내부 단편화 X
      • 복잡한 메모리 관리로 오버헤드 발생
728x90

'Study > TIL(Today I Learned)' 카테고리의 다른 글

24.07.09 CS  (0) 2024.07.09
24.07.08 CS  (0) 2024.07.08
24.07.04 합격,CS  (0) 2024.07.04
24.07.03 그래픽스, CS  (0) 2024.07.03
24.07.02 면접  (1) 2024.07.02