본문 바로가기

CPU

CPU 스케줄링 기법 CPU 스캐줄링 컴퓨터의 자원을 효율적으로 상용하기 위해서 정책을 계획하는 것이다. 특정 자원을 요청하고 있는 프로세스를 대상으로 CPU 자원을 할당해 주는 순서를 정해주는 것이다. 사용 목적은 다음과 같다. CPU 활용 극대화 : CPU의 유휴 시간 최소화 응답시간 단축 : 프로세스 평균 응답 시간 단축 공평한 자원 활용 : 주어진 기간 동안 특정 자원 사용 효율화 Multi-tasking 효율화 : 다중 프로세스의 공평한 처리 스케줄러 역할에 따른 구분 장기 스케줄러 상위 스케줄링으로 어떤 작업이 시스템의 자원들을 차지할 것인지 결정한다. 결정된 작업은 큐에 적재된다. 중기 스케줄러 어떤 프로세스들이 CPU를 할당받을 것인지 결정한다. CPU를 사용하려는 프로세스 간 중재하여 일시적으로 보류하거나 재.. 더보기
CPU, GPU, RAM - CPU Instruction Cycle, Bus System CPU, GPU, RAM 입력장치로 부터 연산을 하고 그 결과를 출력장치를 보내는 역할을 하는 컴퓨터의 핵심 장치이다. 컴퓨터에서 사용되는 핵심 장치들을 크게 나누면 보조기억장치(HDD, SSD), 주기억장치(RAM), 중앙처리장치, 그래픽처리(CPU, GPU)가 있다. 보조기억장치는 데이터들을 저장하기 위한 장치로 비휘발성이다. 주요 장치들 중에서 처리속도가 가장 느리지만 저장 가능 용량이 가장 높다. 주기억장치는 보조기억장치에 있는 파일을 불러올 때 잠시 담아두는 공간으로 휘발성이다. 즉, 컴퓨터가 실행되는 동안에는 해당 공간에 담아진 데이터들이 남아있지만 전원이 꺼지면 없어진다. 잠깐이나마 유지시킬 수 있는 방법들이 있지만 그 또한 완전한 데이터를 기대할 수는 없고 일시적이다. 주요 연산장치는 CP.. 더보기
코드에서 프로그램 과정 및 CPU [Reversing] 전처리기 : #include 같은 헤더 파일이나 메크로 파일을 만나게 되면 헤더파일을 삽입한다. 컴파일러 : 컴파일러는 3개의 단계로 나눠지며 'Front-end -> Middle-end -> Back-end'로 나눠진다. - Front-end 단계에서는 코드의 문법적 오류를 점검하고 중간언어(중간언어가 있으면 각 CPU 회사마다 언어에 대한 컴파일러를 갖고있지 않아도 된다.)를 생성한다. - Middle-end 단계에서는 변수의 정의와 선언이 잘 이루어졌는지 점검을 한다. 또한 코드에 대한 최적화를 어느정도 진행한다. - Back-end 단계에서는 최적화 단계를 한번더 진행하고 어셈블리어 코드를 생성한다. 어셈블러 : 어셈블러어로 만들어진 코드를 기계어로 바꿔준다. 어셈블리어와 기계어는 거의 대응하기 .. 더보기