본문 바로가기

23년 1학기 학교공부/운영체제및실습

[OS]

목차

    728x90
    반응형
    SMALL

    프로세스들 간의 충돌

    프로세스간의 충돌이라고 했는데, 정확한 표현은 다수의 쓰레드들이 실행되며 충돌하는 것.

    싱글쓰레드 프로세스인 경우 편의상 쓰레드를 프로세스라고 부르기에 프로세스간 충돌이라고 표현할 수도 있는것.

    (해당 포스팅에서 프로세스는 '쓰레드'를 뜻한다고 봐도 무방함.)

    컴퓨터 시스템 안에서는 다수의 프로세스와 쓰레드들이 실행되기 때문에 다양한 작업들이 진행되고, 그에 따라서 여러 이벤트들이 발생한다.

    즉 다양한 이벤트들이 동시다발적(concurrent)하게 생기는 것.

    이런 이벤트는 보통 컴퓨터 자원(resource)를 대상으로, 프로세스나 쓰레드들 사이에서 서로 다른 작업이 concurrent하게 발생하기 때문에 작업들 간 충돌이 발생할 수 있는것.

    이런 충돌이 일어나지 않도록, 충돌 때문에 정보가 깨지는 것을 방지하기 위해 프로세스들을 교통정리해야함.

    그러기 위해선 먼저 운영체제가 현재 프로세스가 뭘하고 있고 어떤 자원을 쓰려고 하는 상태인지 알아야함. 프로세스는 자원을 사용해서 실행하기 때문에 자원을 할당, 회수하는 일을 운영체제가 하기 때문에 프로세스들이 자원을 사이에 두고 경쟁하고 충돌하는 상황을 방지하는 것도 운영체제가 해야함.

     

    📁 용어 정리

    📌 Race condition

    두개 이상의 프로세스가 같은 메모리 영역을 거의 동시에 엑세스 하는 상황.

    어느 프로세스가 변수의 값을 변경하는데 거의 동시에 또 다른 프로세스도 같은 변수에 접근하는 경우.

    어떤 프로세스가 더 빨리 변경/접근하는지 예측할 수 없을때 최종 값도 예측할 수 없음.

    => 어떤 프로세스의 실행 결과가 다른 프로세스가 어떻게 실행됐느냐에 영향을 받으면 안됨.

     

    📌 Mutal exclusion

    두 개 이상의 프로세스가 같은 메모리 영역을 엑세스하는 상황에서 한 번에 한 프로세스씩 접근할 수 있도록 하는 성질.

    상호 배제.

    예를 들어 A 프로세스가 프린터를 요청해서 할당되었다고 하자. 그러면 A 프로세스가 출력하는 내용만 인쇄되어야하는데, 만약 B 프로세스가 동시에 프린터를 요청해 같이 할당받아 두 프로세스가 동시에 프린터로 내용을 보내면 종이 한장에 서로 다른 프로그램이 출력될 수가 있음.

    => 어떤 shared resource(공유 자원)을 할당받아서 쓸 때 할당받은 기간 동안에는 다른 프로세스가 그 자원에 접근하지 못하게 하는 것.

    대부분의 컴퓨터 자원은 이 성질을 필요로함. race condition을 방지하기 위해 mutal exclusion을 만족하도록 프로그래밍해야하는것.

     

    📌 Critical section

    프로그램 중 코드의 일부분. 다른 프로세스와 공유하는 메모리 영역에 접근하는 일을 하는 코드.

    어느 프로세스가 다른 프로세스와 공유하는 자원에 접근해 값을 변경하도록 짜여져 있음.

    위 과정에서 race condition이 발생할 수 있으므로 mutal exclusion이 보장되도록 critical section을 프로그래밍해야함.

     

    📌 Starvation

    컴퓨터 자원을 요청했는데 바로 배정되지 않고 기다려야하는 비정상적인 상황.

    기다리는 시간에 대한 수치적인 기준은 없지만, 보통 상황보다 오래 기다리게 될때 starvation이라고 함.

     

    📌 Deadlock

    영원한 starvation.

    아래 그림은 도로에서의 일종의 deadlock.

    본인 차를 막고있는 차 너머의 도로가 각자 차가 필요로 하는 자원임. 자원이 영원히 주어지지 않아 진행이되지않음.

    컴퓨터 내에서 이런 deadlock이 발생되면 프로세스들끼리 해결할 수 없고 컴퓨터 관리자가 해결해줘야함.

     

     

     

    728x90
    반응형
    LIST