[TIL] CPU 스케줄링
·
CS/운영체제 & 네트워크
CPU 스케줄링운영체제가 Ready Queue에 있는 프로세스들에게 CPU 자원을 할당하는 것CPU 스케줄링 알고리즘에 따라 프로세스에서 해야 하는 일을 스레드 단위로 CPU에 할당함 선점 스케줄링다른 프로세스가 CPU를 사용 중이더라도, 운영체제가 프로세스로부터 자원을 빼앗아 다른 프로세스에 할당하는 방식우선순위가 높은 프로세스를 빠르게 처리할 수 있다.라운드 로빈, SRT, 멀티 큐, 멀티 피드백 큐컨텍스트 스위칭이 자주 일어나 오버헤드가 발생하여 성능 저하의 우려가 있다.문맥교환 (Context Switching)CPU가 어떤 하나의 프로세스를 실행하고 있는 상태에서 인터럽트 요청에 의해 다음 우선 순위의 프로세스가 실행되어야 할 때, 기존 프로세스의 상태 또는 레지스터 값(Context)을 저장하..
[TIL] 메모리 계층 구조
·
CS
메모리 계층 구조 "CPU에 얼마나 가까운가" 를 기준으로 각기 다른 용량과 성능의 저장 장치들을 계층적으로 나타낸 구조각 계층은 성능, 용량, 가격 측면에서 차이가 있으며, 이를 효율적으로 활용하여 최적의 성능을 달성할 수 있음 메모리 계층 구조의 원리CPU와 가까울수록 빠르다CPU 바로 옆에 있는 레지스터와 캐시 메모리는 매우 빠른 속도를 제공하지만, 용량이 작고 가격이 비쌉니다.반면, RAM, SSD/HDD 등은 점점 CPU와 거리가 멀어지면서 속도가 느려지지만, 저장 용량이 커지고 가격이 저렴해집니다.고속 메모리는 비싸고 용량이 작다속도가 빠른 L1, L2, L3 캐시는 매우 비싸므로, CPU 내부에 소량만 탑재됩니다.대용량 데이터를 저장하려면 상대적으로 느린 RAM이나 SSD를 활용해야 합니다...
[TIL] 명령어 집합 구조(ISA), CISC vs RISC
·
CS
명령어 집합 구조(ISA)CPU가 이해하고 실행할 수 있는 명령어들의 집합즉, ISA는 CPU의 언어이자 하드웨어가 소프트웨어를 어떻게 이해할지에 대한 약속 CPU 마다 ISA가 다르기 때문에, 인텔 CPU(x86)를 사용하는 프로그램은 ARM 기반 아이폰에서 실행되지 않음즉, ISA의 차이는 소프트웨어 호환성에도 영향을 미치며, 동일한 프로그램을 다른 ISA에서 실행하려면 별도의 변환이 필요 CISCCISC는 Complex Instruction Set Computer의 약자로, 복잡한 명령어 집합을 사용하는 CPU다양하고 강력한 기능의 명령어 집합을 활용하기 때문에 명령어의 형태와 크기가 다양한 가변 길이 명령어 사용  장점적은 수의 명령어만으로 프로그램을 동작시킬 수 있고, 이를 통해 메모리 절약 가..
[TIL] 명령어 병렬 처리 기법 (파이프 라이닝, 슈퍼스칼라)
·
CS
명령어 병렬 처리 기법CPU의 가용성을 최대화하기 위해 명령어를 동시에 처리하는 기법이는 CPU 자원의 효율적인 활용을 통해 실행 시간을 단축하고, 처리량(TPS)를 증가시키는 목적을 가짐대표적인 병렬 처리 기법에는 명령어 파이프 라이닝, 슈퍼스칼라, 비순차적 명령어 처리가 있음 명령어 파이프 라이닝명령어를 처리하는 단계를 분리하여 각 단계가 독립적으로 실행될 수 있도록 하는 방식일반적으로 명령어 인출(Fetch), 해석(Decode), 실행(Execute), 메모리 접근(Memory Access), 기록(Write Back)의 다섯 단계로 나뉨이를 통해 한 사이클에서 여러 명령어가 다른 단계를 동시에 실행함으로써 전체적인 성능을 향상시킴 즉, 단계가 다른 명령어를 겹쳐서 동시에 처리하는 방법으로, 하나..