본문 바로가기

🔥 🔥

[강의] 그림으로 쉽게 배우는 운영체제 - 3. 프로세스 동기화

반응형


1. 프로세스 간 통신

  • 한 컴퓨터 내에서 프로세스 간 통신
    • 파일을 이용하여 통신
    • 파이프를 이용하여 통신
      • 운영체제가 생성한 파이프이용
  • 쓰레드를 이용하여 통신
    • 한 프로세스 내에서 쓰레드 간 통신
      • 쓰레드의 데이터영역에 있는 전역변수나 힙을 이용하여 통신
  • 네트워크를 이용하여 통신
    • 운영체제가 제공하는 소켓통신이나 RPC(다른 컴퓨터에 있는 함수를 호출)를 이용하여 통신

2. 공유자원과 임계구역

  • 공유자원
    • 프로세스 간 통신을 할때 공동으로 이용하는 변수나 파일들문제
      • 공유자원은 여러프로세스가 공유하고 있기 때문에 각 프로세스의 접근 순서에 따라 결과가 달라짐
      • 컨텍스트 스위칭으로 시분할 처리를 하기 때문에 프로세스의 실행을 예측할 수 없음
      ⇒ 동기화 문제
      • 임계구역
        • 여러 프로세스가 동시에 사용하면 안되는 영역
      • 경쟁조건
        • 공유자원을 서로 사용하기 위해 경쟁하는 것
      • 임계구역문제를 해결하기 위한 상호배제 매커니즘
        • 임계영역엔 동시에 하나의 프로세스만 접근한다
        • 여러 요청에도 하나의 프로세스의 접근만 허용한다
        • 임계구역에 들어간 프로세스는 빠르게 나와야한다

3.  세마포어

  • 상호배제 매커니즘의 한가지
  • 세마포어로 동기화 문제를 해결하려 하지만 단점이 있다.
    • wait 함수와 signal 함수의 순서를 이상하게 호출하여 세마포어를 잘못 사용할 가능성이 있음 ⇒ 이 문제를 해결한 방법이 모니터 이다.
  •  

4. 모니터

  • 세마포어의 단점을 해결한 상호배제 매커니즘
  • 따로 운영체제가 처리하는 것이 아니라 프로그래밍 언어차원에서 지원
    • ex) 자바에서 synchronized 키워드가 붙으면 이 키워드가 붙은 함수들은 동시에 여러 프로세스에서 실행 시킬 수 없다. ⇒ 상호배제가 이뤄짐

 


 

해당 글은 [인프런 - 그림으로 쉽게 배우는 운영체제] 강의를 듣고 정리한 글 입니다.

https://www.inflearn.com/course/%EB%B9%84%EC%A0%84%EA%B3%B5%EC%9E%90-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C

 

그림으로 쉽게 배우는 운영체제 | 감자 - 인프런

감자 | 이 강의를 통해 모든 개발자들이 필수로 알아야하는 운영체제의 원리를 알 수 있습니다., 개발자의 필수 지식 운영체제를 배워서뿌리 깊은 나무가 되어 봐요 🌳 강의 주제 📖 [임베딩 영

www.inflearn.com