본문 바로가기

혼공- 컴퓨터구조, 운영체제

[혼공컴운]5주차_프로세스 동기화/ 교착 상태

 

목차

     

     

    4주차 과제 우수혼공족으로 선정되었네요 하하 커피 맛있게 먹겠습니다

    벌써 다음주면 끝이네요. 전 한빛마일리지가 목적이기 때문에 다음주까지 완주하겠습니다

    Chapter 12: 프로세스 동기화
    Chapter 13: 교착 상태

     


    학습 내용 정리

    Chapter 12: 프로세스 동기화

     

    프로세스 동기화: 일반적으로 실행 순서 제어와 상호 배제를 말한다

    • 실행 순서 제어: 프로세스를 올바른 순서 대로 제어
    • 상호 배제: 동시에 접근하면 안되는 자원에 하나의 프로세스만 접근 하도록 함

    생산자와 소비자 문제:

    여러개의 프로세스를 어떻게 동기화 할 것인가에 대한 문제.
    동시에 접근하면 안되는 자원에 생산자와 소비자가 동시에 접근 하게 되어 발생

     

    공유 자원: 공동으로 사용하는 자원(전역 변수, 보조기억장치, I/O 장치 등)
    임계 구역 : 공유 자원에 접근하는 코드 중 동시에 실행하면 문제가 되는 코드 영역
    레이스 컨디션: 여러개의 프로세스(또는 스레드)가 공유 자원에 접근하기 위해 경쟁 하는 상태

     

    임계 구역 문제를 해결 하기 위한 3가지 원칙

    종류 설명
    상호 배제 한 프로세스가 임계 구역에서 작업중인 경우 다른 프로세스가 임계구역에 들어가지 못함
    진행 임계 구역에 진입한 프로세스가 없으면 임계 구역에 진입하고자 하는 프로세스는 들어갈수 있어야 함
    유한 대기 임계 구역에 들어오기 전에 무한정 대기하면 안됨

     

     


    Chapter 13: 교착 상태

     

    교착 상태(데드락): 일어나지 않을 사건을 기다리며 무한 대기
    자원 할당 그래프: 교착상태 표현에 사용되는 그래프

     

    기아 상태: 프로세스가 원하는 자원을 계속 할당 받지 못하는 상태 

     

    식사하는 철학자 문제: 여러 프로세스가 동시에 돌아갈 때 교착 상태가 나타나는 원인을 보여주는 문제

    https://ko.wikipedia.org/wiki/%EC%8B%9D%EC%82%AC%ED%95%98%EB%8A%94_%EC%B2%A0%ED%95%99%EC%9E%90%EB%93%A4_%EB%AC%B8%EC%A0%9C

     

    식사하는 철학자들 문제 - 위키백과, 우리 모두의 백과사전

    위키백과, 우리 모두의 백과사전. 원탁에 둘러앉은 다섯 명의 철학자와 다섯 접시의 스파게티, 그리고 다섯 개의 포크 식사하는 철학자들 문제는 전산학에서 동시성과 교착 상태를 설명하는 예

    ko.wikipedia.org

    교착 상태 발생 조건

    • 상호배제
    • 점유와대기
    • 비선점
    • 원형 대기

    교착 상태 예방: 교착상태 발생조건중 하나를 충족시키지못하게함
    교착 상태 회피: 안전상태를 유지할수있는 경우만 자원할당
    교착 상태 검출 후 회복:교착 상태 발생여부를 검사하고 발생 시 회복시킴


    과제

    p.363 1번 문제
    다음 중 옳지 않은 것을 고르시오

    1. 뮤텍스 락은 임계구역을 잠근 후 임계 구역에 진입함으로써 상호 배제를 위한 동기화를 이룸
    2. 세마포는 공유 자원이 여러 개 있는 상태에서도 사용 가능
    3. 세마포를 이용해 프로세스 실행 순서 제어를 위한 동기화를 이룰 수 있음
    4. 세마포를 이용하면 반드시 바쁜 대기를 해야 함

     

    해설: 4. -> 사용 할 수 있는 자원이 없는 경우 세마포에서는 프로세스를 대기 상태로 만들고 해당 프로세스 PCB를 대기큐에 집어넣는다. 따라서 반드시 바쁜대기를 하지는 않음

    답: 4

    12 -1 임계 구역, 상호 배제 정리

     

    임계 구역: 공유 자원에 접근하는 코드 중 동시에 실행하면 문제가 되는 코드 영역

    상호 배제: 한 프로세스가 임계 구역에서 작업중인 경우 다른 프로세스가 임계구역에 들어가지 못하게 제어

     

    임계 구역 문제를 해결 하기 위한 3가지 원칙

    종류 설명
    상호 배제 한 프로세스가 임계 구역에서 작업중인 경우 다른 프로세스가 임계구역에 들어가지 못함
    진행 임계 구역에 진입한 프로세스가 없으면 임계 구역에 진입하고자 하는 프로세스는 들어갈수 있어야 함
    유한 대기 임계 구역에 들어오기 전에 무한정 대기하면 안됨