inblog logo
|
오니의 개발 블로그
    CS

    CS 정리본 - 프로세스 동기화/스레드 안전/교착상태/메모리 관리

    기술면접 대비 (프로세스 동기화/스레드 안전/교착상태/메모리 관리) 정리
    오니's avatar
    오니
    Jun 15, 2024
    CS 정리본 - 프로세스 동기화/스레드 안전/교착상태/메모리 관리
    Contents
    프로세스 동기화임계구역상호배제 기법스레드 안전교착상태교착상태 발생조건 4가지메모리 관리 전략메모리 용어 정리연속 메모리비연속 메모리가상 메모리요구 페이징페이지 폴트스레싱

    프로세스 동기화

    멀티 프로세스 환경에서 공유 자원의 읠관성을 보장하기 하는 방법

    임계구역

    • 공유 자원 접근 순서에 따라 결과가 달라질 수 있는 코드

    프로세스 동기화를 위한 기법 3가지

    1. 상호배제
        • 실행 중일 때는 다른 진입 막기
    1. 진행
        • 임계구역이 비어있다면 진입
    1. 한정된 대기
        • 임계구역을 기다릴 땐 한정된 시간만 대기

    상호배제 기법

    뮤택스

    • 락킹 알고리즘
    • 임계구역에 들어간 프로세스가 반드시 풀고 나와야 함
    • 스핀락 오버헤드가 큼
      • 스핀락: 반복문을 돌면서 임계구역 진입이 가능한지 계속 확인하는 작업

    세마포어

    • 시그널링 알고리즘

    스레드 안전

    • 하나의 자원 또는 객체에 여러 스레드가 접근해도 프로그램 실행하는데 문제가 없는 것을 의미
    • 반대되는 단어는 Race condition

    교착상태

    서로 다른 프로세스가 공유 자원 하나 씩을 갖고 서로의 자원을 기다라고 있는 상태

    교착상태 발생조건 4가지

    1. 상호배제
        • 하나의 공유자원에 하나의 접근
    1. 점유와 대기
        • 하나의 공유자원 갖고 있는 상태에서 다른 공유자원을 기다림
    1. 비선점
        • OS가 공유자원에 대한 제어권이 없어서 강제로 못하는 상태
    1. 환형대기
        • 공유자원을 받을 때 까지 자원을 기다림

    메모리 관리 전략

    메모리 용어 정리

    논리 / 가상

    • 프로세스 실행 관점에서 보는 상태
    ex) 논리 메모리, 논리 주소, 가상 메모리

    물리

    • 하드웨어 관점에서 보는 상태
    ex) 물리 메모리, 물리 주소

    단편화

    • 외부 단편화
      • 들어가야할 메모리 크기에 비해 비어있는 메모리 크기가 적은 경우
    • 내부 단편화
      • 들어가야할 메모리 크기가 비어 있는 메모리 크기에 비해 작아서 사용 못하는 메모리 크기가 커지는 경우
    notion image

    연속 메모리

    고정 메모리

    가변 메모리

    1. 최척 적합
        • 원하는 메모리 크기를 첫 발견하는 곳에 메모리 load
    1. 최초 적합
        • 원하는 메모리와 빈 메모리 크기가 가장 비슷한 곳에 load
        • 외부 단편화 가능성
    1. 최악 적합
        • 비어 있는 가장 큰 메모리에 load 한다.
        • 내부 단편화 가능성

    비연속 메모리

    1. 페이징
        • 필요한 메모리를 page 단위로 나누고 물리메모리를 frame 단위로 나눠서 page와 frame을 1:1 대응으로 만들어서 메모리에 나눠서 올리는 기법
        • page-frame 연결해주는 테이블을 페이지 테이블이라 하며 PCB에 저장되어 관리
        • 마지막 Page에 내부 단편화 가능성
    1. 세그멘테이션
        • 프로세스 메모리 영역을 Segment 단위로 분할
          • Segment: 논리적 단위
        • 세그먼테이션 테이블을 사용해 매핑한다.
        • Segment당 물리 메모리 주소(base)와 메모리 크기(limit)을 테이블에 저장
        • 외부 단편화 가능성

    가상 메모리

    프로세스 메모리 일부만 load하는 방식

    요구 페이징

    프로세스에 필요한 페이지만 메모리에 load하는 방식

    페이지 폴트

    요구되는 페이지가 메모리에 없는 상황
    • 트랩이 발생하며 메모리-디스크 간의 스와핑 발생 → 오버헤드 발생

    스레싱

    • 일정 수 이상 프로그램이 실행되면 CPU 이용률이 떨어지는 현상
      • → 페이지 폴트가 자주 일어나서 CPU 유휴시간(Idle)이 증가
    • 해결책: Working Set
      • 지역성 기반, 자주 사용되는 페이지는 교체하지 않는다.
    Share article
    Contents
    프로세스 동기화임계구역상호배제 기법스레드 안전교착상태교착상태 발생조건 4가지메모리 관리 전략메모리 용어 정리연속 메모리비연속 메모리가상 메모리요구 페이징페이지 폴트스레싱

    오니의 개발 블로그

    RSS·Powered by Inblog