블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/dma/ [운영체제] DMA(Direct Memory Access)란? (DMA vs PIO) - 코드 연구소DMA는 말 그대로 메모리(Memory)에 직접 접근하는 방식을 뜻한다. 이때 CPU는 데이터 전송에 전혀 관여하지 않는다는 점이 중요하다. DMA는 주변장치들이 메인 메모리와 직접 데이터를 공유할 수 있code-lab1.com PIO(Programmed I/O)PIO는 주변장치들(I/O device) 사이 전송되는 모든 데이터가 CPU를 거쳐간다. 이때 CPU는 주변 장치들에 대한 지속적인 모니터링을 통해 주변 장치들이 준비가 됐는지 체크하기 때문에불필요하게 CPU 주기를 낭비하고 "Busy" 상태가 빈번하게 된다..
블로그 이사합니다아래에서 확인 가능합니다.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/%EC%B0%B8%EC%A1%B0%EC%9D%98-%EC%A7%80%EC%97%AD%EC%84%B1/ [운영체제] 참조의 지역성(Locality of Reference)이란? 캐시의 지역성이란? 행렬 곱셈 최적화 방법 - 코참조의 지역성이란 컴퓨터 프로그램이 일정 기간 동안 특정한 메모리 위치 집합에 접근하는 경향이 있는 현상을 뜻한다. 쉽게 말해 참조의 지역성은 주소가 서로 가까운 명령어에 접근하는 경code-lab1.com 참조의 지역성(Locality of Reference)주기억장치와 메모리는 속도 차이가 크다. 이러한 속도의 차이를 극복할 수 있는 게 캐시 메모리이다. 이 캐시 메모리는 주기억장치와 메모리 사이에 위..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/cpu-%EB%B3%B4%ED%98%B8%EB%A7%81/ [운영체제] [운영체제] CPU 보호링(CPU Protection ring)이란? 사용자 모드(User Mode)와 커널 모드(Kernel Mode위에서 특권 레벨에 대해 말했다. 특권 레벨이란 CPU의 권한 상태를 뜻한다. 이러한 특권 레벨에 따라 CPU가 어떤 명령을 실행 시킬 수 있는지 정해진다. 이러한 특권 레벨을 반지처럼 도식화한 것code-lab1.com 사용자 모드(User Mode)와 커널 모드(Kernel Mode) CPU는 사용자 모드와 커널 모드를 번갈아가면서 동작한다. 사용자 모드일때는 User Process를 실행시킨다. 이때는 하드디스크나 ..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/%EB%B8%94%EB%A1%9C%ED%82%B9/ [운영체제] 동기(Sync)와 비동기(Async), 블로킹(Blocking)과 논블로킹(Non-blocking) - 코드 연구소운영체제를 공부하다 보면 동기(Syncronous)와 비동기(Asynchronous), 블로킹(Blocking), 논-블로킹(Non-blocking)에 대해 들어볼 수 있다. 이 개념들은 언뜻 보면 매우 헷갈리기 때문에 한 번 정리가 필요하다code-lab1.com 동기와 비동기, 블로킹과 논-블로킹 너무 헷갈려운영체제를 공부하다 보면 동기(Syncronous)와 비동기(Asynchronous), 블로킹(Blocking), 논-블로킹(Non-blo..
블로그 이사합니다아래에서 확인 가능합니다.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)의 집합으로 표현한다. 이때 세그먼트는 논..