블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/%EB%8F%99%EC%8B%9C%EC%84%B1%EA%B3%BC-%EB%B3%91%EB%A0%AC%EC%84%B1/ [운영체제] 동시성(Concurrency)과 병렬성(Parallelism)의 차이 - 코드 연구소컴퓨터공학에서 동시성이란 여러 작업이 순서에 상관없이 동시에 진행되는 것을 뜻한다. 하지만 여기서 동시에 진행된다는 것은 실제로 여러 작업이 동시에 동작하고 있다는 뜻은 아니다. 여러code-lab1.com 동시성(Concurrency)이란?컴퓨터공학에서 동시성이란 여러 작업이 순서에 상관없이 동시에 진행되는 것을 뜻한다. 하지만 여기서 동시에 진행된다는 것은 실제로 여러 작업이 동시에 동작하고 있다는 뜻은 아니..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/memory-mapped-i-o/ [운영체제] Memory Mapped I/O와 I/O Mapped I/O란? - 코드 연구소Memory Mapped I/O는 마이크로프로세서(CPU)가 입출력 장치를 접근할 때, 입출력과 메모리의 주소 공간을 분리하지 않고 하나의 메모리 공간에 취급하여 배치하는 방식이다. -위키피디아-code-lab1.com Memory Mapped I/O란?Memory Mapped I/O는 마이크로프로세서(CPU)가 입출력 장치를 접근할 때, 입출력과 메모리의 주소 공간을 분리하지 않고 하나의 메모리 공간에 취급하여 배치하는 방식이다. -위키피디아- 즉, Memory Mapped I/O는 disk b..
블로그 이사합니다아래에서 확인 가능합니다. https://code-lab1.com/%ED%8E%98%EC%9D%B4%EC%A7%80-%EA%B5%90%EC%B2%B4-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/ [운영체제] 페이지 교체 알고리즘 (FIFO/OPT/LRU/LFU/MFU) - 코드 연구소이때 빈 프레임이 없을 경우 희생 당할 프레임(victim frame)을 고르는 알고리즘이 페이지 교체 알고리즘이다.code-lab1.com 페이지 교체 알고리즘 (Page Replacement Algorithm)이전 포스팅으로 요구 페이징(Demand Paging)에 대해 알아보았다. 필요한 페이지가 메모리에 없을 때 page-falut가 발생하고 Backing Store에서 해당 페..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/%EA%B0%80%EC%83%81-%EB%A9%94%EB%AA%A8%EB%A6%AC/ [운영체제] 가상 메모리(Virtual Memory)와 요구 페이징(Demand Paging), Valid-Invalid Bit, 페이지 부재(Page Fau메인 메모리의 크기는 한정되어 있다. 따라서 물리적인 메모리 크기보다 크기가 큰 프로세스는 실행시킬 수 없게 된다. 따라서 나온 방법이 가상 메모리이다.code-lab1.com 가상 메모리(Virtual Memory)메인 메모리의 크기는 한정되어 있다. 따라서 물리적인 메모리 크기보다 크기가 큰 프로세스는 실행시킬 수 없게 된다. 예를 들어 메인 메모리의 크기가 100MB 일 때 30..
블로그 이사합니다아래에서 확인 가능합니다. https://code-lab1.com/copy-on-write/ [운영체제] Copy On Write(COW)란? Copy On Write 예시 - 코드 연구소이처럼 Copy On Write는 리소스가 복제되었지만 수정되지 않은 경우에 새 리소스를 만들 필요 없이 복사본과 원본이 리소스를 공유하고, 복사본이 수정되었을 때만 새 리소스를 만드는 리소스 관code-lab1.com Copy On Write (COW) 란?123456std::string x("Hello"); std::string y = x; // x and y use the same buffer y += " World!"; // now y uses a different buffer ..
블로그 이사합니다아래에서 확인 가능합니다. https://code-lab1.com/%EC%84%B8%EA%B7%B8%EB%A9%98%ED%85%8C%EC%9D%B4%EC%85%98/ [운영체제] 세그멘테이션(Segmentation)이란?, 세그멘테이션 vs 페이징 - 코드 연구소반면, 세그멘테이션은 프로세스를 논리적 내용을 기반으로 나눠서 메모리에 배치하는 것을 의미한다.code-lab1.com 세그멘테이션(Segmentation)이란?페이징은 프로세스를 물리적으로 일정한 크기로 나눠서 메모리에 할당하는 것을 의미한다. 반면, 세그멘테이션은 프로세스를 논리적 내용을 기반으로 나눠서 메모리에 배치하는 것을 의미한다. 세그멘테이션은 프로세스를 세그먼트(segment)의 집합으로 표현한다. 이때 세그먼트는 논..
블로그 이사합니다아래에서 확인 가능합니다. https://code-lab1.com/%ED%8E%98%EC%9D%B4%EC%A7%80-%ED%85%8C%EC%9D%B4%EB%B8%94-%EA%B5%AC%EC%A1%B0/ [운영체제] 페이지 테이블 구조 (Hierarchical Page Table, 2-level Page Table, Hashed Page Table, Inverted Page Table)페이지 테이블 구조에는 Hierarchical Page Table, 2-level page Table, Hashed page Table, Inverted Page Table 등이 있다code-lab1.com Hierarchical Page Table하나의 페이지 테이블 안에 여러개의 페이지 테이블을 넣은 페이..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/%ED%8E%98%EC%9D%B4%EC%A7%95/ [운영체제] 페이징(Paging)이란? 페이지 테이블이란? - 코드 연구소페이징이란 논리주소의 메모리를 고정된 크기의 페이지(Page)로 나누어 관리하는 기법이다.code-lab1.com 페이징(Paging)이란?페이징이란 논리주소의 메모리를 고정된 크기의 페이지(Page)로 나누어 관리하는 기법이다.페이징은 아래와 같은 특징들을 갖고 있다.물리주소 공간(Physical address)은 연속적이지 않을 수 있다(noncontiguous)페이지는 모두 같은 크기를 가진다.물리주소 공간을 페이지와 같은 사이즈로 나눈 것들을 프레임(Frame)이라고 한다.페이지 사이즈(=프레..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/%EB%8B%A8%ED%8E%B8%ED%99%94/ [운영체제] 내부 단편화, 외부 단편화란? 외부단편화 해결 방법 - 코드 연구소내부 단편화란 주기억장치 내 사용자 영역이 실행 프로그램보다 커서 프로그램의 사용 공간을 할당 후 사용되지 않고 남게 되는 현상을 말한다.code-lab1.com 내부 단편화 (Internal Fragmentation)내부 단편화란 주기억장치 내 사용자 영역이 실행 프로그램보다 커서 프로그램의 사용 공간을 할당 후 사용되지 않고 남게 되는 현상을 말한다. 예를 들어 아래와 같은 그림을 살펴보자.위와 같이 100MB의 메모리에 80MB 크기의 프로세스를 올리게 되면, 20MB의 내부 단편화가 발생..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/synchronization/ [운영체제] 동기화 문제(Synchronization problem), 경쟁 상태(Race Condition), 임계 영역(Critical Section) - 코동시에 공유 자원에 접근하는 것은 데이터의 일관성을 해칠 수 있다. 프로세스들의 실행 순서를 정하여 공유 자원의 일관성을 보장하는 것을 동기화(Synchronization)라고 한다.code-lab1.com 동기화 문제 (Synchronization Problem)동시에 공유 자원에 접근하는 것은 데이터의 일관성을 해칠 수 있다. 프로세스들의 실행 순서를 정하여 공유 자원의 일관성을 보장하는 것을 동기화(Synchronization)라..