CS & Network/운영체제(OS) & 컴퓨터구조

[운영체제(OS)] 페이징(Paging), Fragmentation(단편화), TLB 란?

저번 시간까지는 메모리 관리를 어떻게 하는지, contiguous allocation이 무엇인지, MMU가 무엇인지에 대해서 살펴봤습니다. 혹시 이 세가지 개념에 대해 모르시거나 헷갈리시는 분들은 저번 게시물을 참고해 주세요! [운영체제(OS)] 메모리관리 - 주소바인딩, Contiguous allocation 그리고 MMU 란? 지난 시간까지 살펴봤던 멀티프로그래밍에서는 다른 프로세스/쓰레드 끼리 통신을 하게 되고 공유자원을 사용하다 보니 문제점도 많았고 그에 대한 해결책을 살펴봤었습니다. 이번 시간부터는 resilient-923.tistory.com 0. Fragmentation이란? 먼저 저번시간에 배운걸 간단히 복습해보겠습니다. contiguous allocation을 하면 일단 MMU가 굉장히 ..

2022.02.17 게시됨

CS & Network/운영체제(OS) & 컴퓨터구조

[운영체제(OS)] 메모리관리 - 주소바인딩, Contiguous allocation 그리고 MMU 란?

지난 시간까지 살펴봤던 멀티프로그래밍에서는 다른 프로세스/쓰레드 끼리 통신을 하게 되고 공유자원을 사용하다 보니 문제점도 많았고 그에 대한 해결책을 살펴봤었습니다. 이번 시간부터는 메모리에 대해서 하나하나씩 정리를 해보려고 합니다. 0. 메모리란? 먼저 메모리 관리란 물리적 주소(Physical Address)를 갖는 메모리 공간에서 여러 개의 프로세스를 어떻게 같이 돌릴 것인가에 대한 관리입니다. 그렇다면 물리적 주소란 무엇일까요? 한마디로 메모리 공간에서의 위치이죠. 우리는 '메모리를 엄청 잡아먹네, 메모리 몇이야?'라는 말을 많이 들어봤을 겁니다. 익히 들어 알고 있는 RAM이란 용어도 메모리에 관한 것이죠. 추상적으로 '프로그램을 실행시키면 실행에 필요한 데이터들이 메모리에 올라가면서 실행되는 것..

2022.01.22 게시됨

CS & Network/운영체제(OS) & 컴퓨터구조

[운영체제(OS)] 데드락(DeadLock), 교착상태 해결방법 -2

저번 시간에는 데드락이 무엇인지, 데드락이 왜 발생하는지, 데드락이 발생하기 위해서는 어떤 조건들이 갖춰져야 하는지에 대해 살펴봤습니다. 이번 시간에는 데드락이 발생했을 때 해결할 수 있는 방법들을 알아보려고 합니다. 0. 데드락 처리 방법 데드락 처리 방법은 약 3가지로 분류할 수 있습니다. 1. Ignore - 무시하자 말 그대로 다 무시해!입니다. 운영체제가 데드락을 전혀 신경 쓰지 않는 방법이죠. 따라서 개발자가 프로그램을 개발할 때 데드락이 걸릴 가능성을 하나부터 열까지 다 신경 써서 차단해야 하죠. 2. Deadlock Prevention - 데드락이 절대 발생하지 않게 해야지! 말 그대로 데드락이 발생될 가능성을 아예 예방하자!라는 의미입니다. 어떻게 예방할까요? 바로 데드락이 발생될 가능..

2022.01.16 게시됨

CS & Network/운영체제(OS) & 컴퓨터구조

[운영체제(OS)] 데드락(DeadLock), 교착상태 란? - 1

저번 포스팅에서는 동기화 이슈, 임계 구역(critical section)에 대해서 알아보고, 해결할 수 있는 방법들에서 대해서 알아보았습니다. 이번 시간에는 동기화 이슈처럼 비슷하게 공유 자원이 한정되어 있을 경우, 이 자원을 사용하고 싶은 프로세스들이 여러 개 있을 때 발생하게 되는 교착 상태, 데드락(Dead lock)에 대해서 정리해보려고 합니다. 0. 데드락(Dead lock), 교착 상태란? 교착 상태를 직관적으로 이해해보면 위 사진처럼 자동차 여러 대가 혼잡한 상황에서 먼저 가겠다고 양보하지 않고 직진만 하고 있는 상황이라고 할 수 있습니다. 생각만 해도 아찔하죠. 그렇다면 정의를 한번 볼까요? In an operating system, a deadlock occurs when a proce..

2022.01.14 게시됨