본문 바로가기

CS/운영체제

(2)
비행기 화장실로 Mutex와 Semaphore를 아라보좌 프로세스 동기화는 멀티스레딩 환경에서 매우 중요한 개념인데요, iOS에서는 GCD라는 편리한 멀티스레딩 툴이 있지만, Mutex와 Semaphore라는 메커니즘도 있습니다. 이번 포스팅에서는 두 개념을 화장실에 빗대 이해해보려고 합니다.프로세스 동기화란?프로세스 동기화는 여러 프로세스나 스레드가 동시에 실행될 때 발생할 수 있는 문제를 해결하기 위한 방법입니다.쉽게 말해, 여러 사람이 동시에 한 가지 일을 할 때 서로 방해되지 않게 조율하는 것과 같아요.컴퓨터에서 여러 프로세스나 스레드가 동시에 실행되면 다음과 같은 문제가 발생할 수 있습니다.Race condition: 여러 프로세스가 동시에 같은 데이터를 수정하려고 할 때실행 순서/싱크 문제: 특정 작업이 다른 작업보다 먼저 실행되어야 할 때교착 상태..
햄버거집 '피크타임'으로 알아보는 CPU 스케줄링 이번 글에서는 햄버거집의 피크타임을 통해 CPU 스케줄링의 다양한 개념을 쉽게 이해해보려 합니다. 예를 들어, 평일 점심시간 많은 손님들이 햄버거를 주문할 때 주방은 전쟁터처럼 바쁘죠. 주방의 조리사들은 각 주문을 얼마나 효율적으로 처리할 수 있는지에 대한 고민을 하게 되는데요, 이것을 운영체제에서는 CPU 스케줄링이라고 합니다.CPU 스케줄링이란?제한된 자원 내에서 가장 좋은 퍼포먼스를 올릴 수 있는 방법을 찾는 과정 스케줄링의 종류선점형 vs. 비선점형 스케줄링선점형 스케줄링: 주방 매니저가 조리사를 중간에 멈추고 더 급한 주문 먼저 조리하게 하는 것과 같습니다. 예를 들어 유명한 블로거가 방문한다거나, 사장님이 최대한 빨리 조리를 해달라고 하면 하면 조리사는 현재 주문이 완료되지 않아도 최대한 빠르..