CPU
CPU 스케줄링 /SJF SRT
프로세스 작업 수행을 위해 언제, 어느 프로세스에 CPU를 할당할 것인지 결정하는 작업기법 종류스케줄러 동작 시점, Time Slice, 프로세스 생성/소멸 시, 프로세스 Block 상태 변경 시스케줄러가 운영체제에 많이 관여-선점, 적게 관여-비선점SJF (Shortest Job First), SRT (Shortest Remaining Time)SJF (Shortest Job First)- 비선점 방식 (non - preemptive)- 대기 작업 중 수행 시간이 짧게 판정된 작업 수행- 짧은 작업 먼저 수행이 오버헤드 측면에서 유리 문제점)- 작업 수행 시간을 사전에 정확히 판정 어려움 SRT (Shortest Remaining Time)- 선점 방식 (preemptive)- SJF 기법에 선점방식을..
CPU 스케줄링 (Scheduling) 개념
단계프로세스 스케줄링은 수행 단계의 따라 장기, 중기, 단기 스케줄링의 세 가지로 나뉘는데 이것은 스케줄링이 요구되는 시점을 기준으로 구분한다. 장기 스케줄링어느 작업을 커널에 등록시켜 프로세스로 만들어 줄 것인가를 결정하는 것으로 작업 스케줄링(Job Scheduling)이라고도 한다. 이 단계는 요청된 일을 프로세스로 만들어 시스템에 알려진 일거리로 추가하느냐를 결정하는 것으로 다중 프로그래밍의 정도를 조절하는 역할을 한다. 중기 스케줄링보류 상태의 프로세스들 중에서 어느 프로세스에게 메모리를 할당해 줄 것인가를 결정한다. 단기 스케줄링준비 상태에 있는 프로세스들 중에서 어느 프로세스에게 CPU를 할당할지를 결정하는 단계이다. 프로세스 스케줄러 또는 디스패처(Dispatcher)라 불리는 것에 의해..
중앙처리장치(CPU) - 3 (CPU 명령어 사이클)
CPU 명령어 사이클(instruction cycle) 마이크로프로세서(CPU)가 메모리로부터 프로그램 된 한개의 기계어 명령어를 가져와 어떠한 동작을 요구하는지를 결정하고 명령어가 요구하는 동작을 수행하는 연속적인 동작 과정이다. 즉, 명령어를 꺼내와 실행하기 위한 연속적인 동작 과정이다. 명령이 순환하는 동안 CPU에 사용되는 회로는 다음과 같다. PC : 다음에 실행할 명령어에 대한 메모리 주소를 추적 MAR : 다음에 실행할 명령어의 메모리에 있는 주소를 보관 MBR : 메모리로부터 페치(fetch)되어 cpu가 처리할 준비가 된 데이터나 메모리에 저장되어 대기 중인 데이터를 보관하는 양방향 레지스터 IR : 메모리로부터 fetch 되는 (현재 실행할) 명령어를 일시적으로 보관하는 영역 CU : ..
중앙처리장치(CPU) - 2 (CPU 명령어)
마이크로 연산(micro-operation) CPU에서 한 클럭 펄스(clock pulse) 동안에 일어나는 세부 동작이다. micro-ops 또는 μops 로도 표시 기계어 또는 어셈블리 명령어는 여러 개의 마이크로연산이 합쳐진 일종의 매크로(macro) 명령어 형태이다. 따라서, 하나의 CPU 명령어는 여러 개의 클럭 펄스를 필요로 한다. 명령어 세트(Instruction Set) CPU가 이해하고 동작시킬 수 있도록 정의되는 명령어들의 집합이다. 컴퓨터구조의 일부이기 때문에 ISA(Instruction Set Architecture)라고도 한다. CPU마다 명령어의 길이나 구조가 다를 수 있다. 즉, 같은 C언어로 작성된 코드라도 다른 CPU에서 동작하게 하려면 다른 컴파일러의 도움이 필요하다 명령..
중앙처리장치(CPU) - 1 (CPU 구조)
CPU란? 명령어를 해석하여 실행하는 장치로 인간으로 치면 두뇌에 해당하는 하드웨어 장치이다. (CPU를 흔히 Processor 라고도 한다.) CPU 구성 요소 연산 장치(ALU, Arithmetic and Logic operation Unit) : 산술 및 논리 연산 장치 산술 연산(덧셈, 뺄셈, 곱셈 나눗셈 등)과 논리 연산(AND, OR 등)을 수행 제어 장치(Control Unit) 프로그램에서 주어진 명령을 '해석'하고 이를 '실행'하기 위해 제어신호를 만든다. 연산, 읽기, 쓰기 등의 동작신호와 각 장치를 제어하기 위한 타이밍(timing) 신호를 때맞춰 만든다. 레지스터(register) cpu의 임시 기억 장소로 명령, 주소, 데이터 등을 일시적으로 담아둔다. 다른 기억 장치들에 비해 접..
CPU 스케줄링(Scheduling) 알고리즘 정리 및 요약 | FCFS, SJF, Round Robin
CPU 스케줄링이란 CPU 이용률을 극대화하기 위해서는 멀티프로그래밍(multiprogramming)이 필요하다. 하지만 만약 CPU core가 하나라면 한 번에 하나의 프로세스만 실행 가능할 것이다. 이때 필요한 것이 CPU 스케줄링이다. 즉, CPU 스케줄링은 언제 어떤 프로세스에 CPU를 할당할지 결정하는 작업이라고 할 수 있다. CPU 스케줄러(CPU Scheduler)와 선점형(Preemptive), 비선점형(non-preemptive) 스케줄링 CPU 스케줄러는 메모리에 있는 프로세스들 중 어떤 프로세스를 실행할지 선택하고 CPU를 할당해주는 역할을 한다. CPU 스케줄러는 프로세스들이 다음과 같은 상황에 있을 때 스케줄링을 결정한다. 실행(running) 상태에서 대기(waiting) 상태로..
시스템 구조와 프로그램 실행 1
시스템 구조 CPU : 매 클럭 사이클 마다 메모리에서 인스트럭션을 읽어 실행 registers : 메모리보다 더 빠르면서 저장할 수 있는 공간 mode bit : CPU에서 실행되는 것이 운영체제인지 사용자의 프로그램인지 구분해주는 bit Interrupt line : I/O device의 신호를 전달해주는 통로. 인스트럭션이 끝날 때마다 CPU가 체크한다. 들어온 신호가 있다면 운영체제에게 CPU가 넘어감. 메모리 : CPU의 작업공간 I/O device : 별개의 입출력 장치. 프로그램은 접근을 못하고 운영체제를 통해서만 접근할 수 있다. device controller : I/O device를 전담하는 컨트롤러. 디스크의 내부를 통제 local buffer : device contoller의 작업..
CPU의 역사
최초의 16비트 CPU: 인텔 8086 / 8088(1978년) 1971년에 출시된 인텔의 '4004'가 원조다. 하지만 이는 전자계산기와 같은 특정 목적 단말기용으로 주로 쓰였으며, 오늘날 우리가 쓰는 PC(퍼스널컴퓨터)용 CPU의 원조는 1978년에 나온 인텔의 16비트 CPU인 8086, 그리고 그 자매품인 8088이라 할 수 있다. 이 때문에 지금도 PC용 CPU는 ‘x86 계열’이라 부른다. 최초의 32비트 CPU: 인텔 80386(1986년) 1980년대에 들어 PC의 이용 범위가 급격히 넓어지면서 한층 고성능의 CPU가 요구되었다. 1986년에 출시된 인텔 80386은 32비트 명령어를 처리할 수 있는 최초의 x86계열 CPU로, 흔히 ‘386’이라는 이름으로 불리곤 했다. 80386이 큰 ..
CPU 캐시의 원리 (캐시 라인과 태그)
프로세서가 빈번하게 사용하는 데이터를 빠르게 추출하기 위한 '캐시 라인' 이라는 데이터 단위라고 불리며 데이터 저장구조로는 대표적으로 몇 가지 있다. Full Associative 방식 Set Associative 방식 Direct Map 방식 캐시 라인과 태그 프로세서는 다양한 주소에 있는 데이터를 사용하므로 일반적으로 빈번하게 사용하는 데이터의 주소는 여기저기 흩어져 있어서 캐시에 저장하는 데이터에는 해당 데이터의 메모리 주소 등을 쓴 태그를 달아놓을 필요가 있다. 그리고 메모리로부터 가져오는 데이터 묶음(단위)을 캐시 라인이라고 한다. 태그의 크기, 캐시 라인의 크기 캐시 라인에 붙이는 태그는 32비트 주소 공간을 갖는 프로세서는 32비트, 64비트 주소 공간을 갖는 프로세서는 64비트 정도의 크기..
CPU 프로세서 CISC / RISC 차이
1.CISC (Complex Instruction Set Computer) *Complex 복잡한, 복합체의 CISC는 필요한 모든 명령어 셋을 갖추도록 설계된 마이크로프로세서에 관련되는 용어로서, 요구되는 능력을 가장 효율적인 방법으로 제공했었다. 이름에서 알 수 있듯이 컴퓨터에 주어진 CISC 명령은 매우 작기 때문에, 그 당시 메모리 부족의 문제점을 보완할 수 있었다. 그러나 그 후, instruction set 자체를 가장 자주 사용되는 명령어만으로 개수를 줄임으로써 대부분의 활용업무 면에서 소요되는 시간을 줄일 수 있는 방법이 고안되었는데, 이것을 RISC라고 불렀다. 그러다 보니, 이러한 RISC 프로세서와 모든 명령어 셋을 갖추고 있는 컴퓨터를 구별할 수 있는 말이 필요하게 되었는데, 그래서..