https://www.youtube.com/watch?v=x-Lp-h_pf9Q&t=0s프로세스와 스레드 개요 Process 는 단위이다. 어떤 관리의 단위이며, 관리의 주체는 OS이다. 프로세스 라고 하는것은 기본적으로 연산거리(명령어)의 집합 이다. 연산은 연속적이기 때문에 이어져서 하나의 흐름을 만든다.이 흐름은 프로세스 수준에서 기본적으로 하나 존재하며, 이를 컨텍스트(Context) 또는 플로우(flow)라고 부르기도 한다. 연산은 외부 자극에 의해 변경될 수도 있다. 기본적으로 하나의 프로세스에는 반드시 하나의 스레드가 존재한다. 그러나 이 흐름이 하나가 아닌 여러 개로 분리될 수 있다. 한 프로세스 내부에 두 개 이상의 독립적인 실행 흐름이 존재하여, 동시에 또는 각각 작동하는 경우를 멀..
앞서 메모리컨트롤러는 CPU 의 행위를 관찰하고 있다가, 필요한 자료를 미리 가져와 처리 속도를 향상시킨다는 것을 알게 되었다. 적중률은 90%이상이므로, CPU 는 정보를 직접 검색하기 전, 기본적으로 메모리컨트롤러에게 먼저 묻게 된다. 반대의 관점에서 본다면 '시키지도 않은 일을 메모리 컨트롤러가 하고 있다'. 는 것. CPU 게이트이 문제는 CPU 게이트라는 사건으로 이름 붙여지며 주목을 받게 된다. CPU를 돕기 위해 일하던 메모리 컨트롤러는 CPU 에게 빠르게 정보를 넘겨주기 위해 자료를 가져오게 된다. 핵심은 시키지도 않은 일을 하게 되어, 이것이 보안사고로 이어진다는 것. 예시 이 사건을 비유적으로 나열하자면 이렇다. 호텔에 대통령이 방문하여 A동 202호 에 머무르게 된다(함구해야 하는 정..
CPU의 캐시 메모리는 성능을 높이기 위한 강력한 수단입니다. 그리고 CPU와 RAM의 속도차이를 극복하기 위해 존재합니다. 그런데 최근에는 CPU의 연산능력에 RAM이 일정 수준 개입하는 방향으로 전환이 일어나고 있습니다. https://youtu.be/aApNYVy1TNU?si=T8u-cv3ucP2xa4EZ CPU와 RAM 속도 차이와 캐시 메모리의 역할 변화CPU는 매우 빠르게 동작하며, 1ns 단위로 작업을 수행하는 반면, RAM은 상대적으로 느려 50ns가 소요된다. 이 속도 차이를 해결하기 위해 캐시 메모리를 활용하게 되었다. L1, L2, L3 캐시를 징검다리처럼 배치하여 RAM과 CPU를 연결해 연산을 효율적으로 수행했다. 그러나 이 패러다임, 즉 CPU가 연산을 담당하고 RAM이 데이터..
CPU가 성능을 높이는 방법으로 클럭속도를 높이거나 코어 개수를 늘립니다. 그러나 내부적으로 보면 더 재밌는 이야기가 숨어 있습니다. 바로 예측해서 연산한다는 것입니다. https://youtu.be/Fnvlujxbqss?si=b2_xivl4myIgkjyQCPU와 RAM 사이의 속도 차이 CPU는 연산장치이며, 중요한 것은 속도이다. 속도가 빠를수록 연산의 양이 늘어나고 처리 성능이 좋아진다. 그래서 클럭 속도를 높이는 방향으로 개발이 진행되다가, 최근에는 코어의 개수를 증가시키는 방식으로 발전하고 있다. CPU의 코어가 연산을 담당하며, 연산에 필요한 데이터는 기본적으로 RAM에 저장된다. 이 데이터를 CPU의 영역으로 옮기고, 연산 후 다시 RAM으로 돌려보내는 작업을 반복한다. 문제는 CPU와 RA..
https://youtu.be/VmclwfKzNO0?si=KnjGslnz3YJxiWk2 DMA(Direct Memory Access)기술을 적용할 경우 불필요한 I/O가 없어지며 성능이 좋아집니다. 보통은 NIC(Network Interface Card)가 DMA를 지원합니다. 또한 이러한 특성을 활용해 빠른 속도로 소켓 통신이 가능합니다.Direct Memory Access(DMA)와 고성능 데이터 전송DMA(Direct Memory Access)를 이야기할 때 항상 따라다니는 키워드는 '고성능'이다. DMA는 컴퓨터의 메모리, 즉 RAM의 일부를 장치를 위해 예약하는 방식이다. 컴퓨터의 메모리는 RAM과 CPU에 위치하며, CPU에는 캐시 메모리와 레지스터 메모리가 포함된다.모든 데이터 전송 과정에서..
https://www.youtube.com/watch?v=V4lp6iGoUFY&list=PLXvgR_grOs1DGFOeD792kHlRml0PhCe9l&index=5 인터럽트의 종류 입출력 인터럽트 (I/O interrupt)입출력 장치가 데이터 전송을 "요구" 하거나, 전송이 "끝나" 다음 동작이 수행되어야 할 경우입출력 데이터에 이상이 있는 경우 내부 인터럽트잘못된 명령이나 잘못된 데이터를 사용할 때 발생하며 Trap이라 부른다.프로그램 검사 인터럽트 (Program Check Interrupt)Division by zero : 컴퓨터의 연산은 덧셈,뺄셈으로 작동한다. 0으로 나눌 경우 무한루프에 빠지게 되며 CPU 가 하드웨어적 손실을 입게 됨Overflow/Underflow기타 Exception 컴..