동기화 도구

    [운영체제] Ch6. 동기화 도구들

    [운영체제] Ch6. 동기화 도구들

    공룡책(운영체제)을 읽고 정리한 글입니다. 서론 지금까지 공부하면서 프로세스가 병행하게 또는 병렬로 실행될 수 있다는 것을 알 수 있었다. CPU 스케줄러는 프로세스 사이에서 빠르게 오가며 각 프로세스를 병행 실행시킨다. 이는 현재 프로세스는 다른 프로세스가 스케줄링 되기 전까지만 CPU에서 실행됨을 의미한다. 프로세스의 실행중에 언제든지 인터럽트가 발생할 수 있으며, CPU코어는 언제든지 다른 프로세스의 명령어를 받아들일 수 있다. 이러한 병행, 병렬성 때문에 데이터 무결성에 문제가 생기게 된다. 그래서 이 챕터에서는 어떤 문제가 발생하는지 알아볼 것이다. 간단한 예를 먼저 알아보자 프로세스 사이의 메모리 공유를 1차원 배열의 유한 버퍼를 이용해 구현했던 코드이다. 생산자는 버퍼의 크기가 count와 ..