세마포어 vs 뮤텍스
·
프로그래밍/운영체제
프로그래밍을 한다는 사람이라면 한번쯤은 세마포어와 뮤텍스에 대해서 들어 보았을 것이다. 대충 공유자원을 관리한다는 것만 알텐데 정확히 이것들은 뭘까? 결론부터 말하자면 공유자원을 관리하는 방식의 차이다. 뮤텍스 뮤텍스(Mutex)는 상호배제(Mutual Exclusion)의 약자다. 일단 상호배제라는 것이 왜 필요한지 알아보자. 아래와 같은 프로그램을 보자. #include #include #include int num = 0; void *func(void *t) { for (int i = 0; i < 100000; i++) { num = num - 1; num = num + 1; } return NULL; } int main() { pthread_t th[10]; int the; void *result..
페이지 교체 알고리즘
·
프로그래밍/운영체제
이번 글은 페이지가 무엇인지와 페이지를 교체하는 방법론을 설명한다. 💡 가상 메모리 컴퓨터의 메모리는 한정되어 있다. 그럼에도 불구하고 큰 데이터를 적재하거나 여러개의 데이터를 적재하고 싶을때가 있다. 그래서 사용하는 방식은 디스크를 메모리 처럼 사용하는 가상메모리기법이다. 가상메모리를 사용함으로서 실제로 메모리에 접근할땐 가상주소로 접근한다. MMU에서 가상주소를 관리해준다. 가상주소는 디스크를 포함하기 때문에, 요청한 페이지가 실제로 메모리에 없을 수도 있다. (디스크에 있음) MMU는 이럴때 메모리에 있는 어떠한 페이지를 내리고 디스크에 있는 페이지를 메모리에 적재하는 역할을 한다. (SWAP한다는 의미) 아래는 그 방식에 대해 나열하고 소개한다. 📌 페이지 교체 알고리즘 운영체제에서 원하는 페이지..
2jun0
'프로그래밍/운영체제' 카테고리의 글 목록