▣ 컴퓨터 구조_CPU_프로그램 실행시간 계산, 명령어수, 클럭 사이클, 입출력 시간, 속도, RAM, 암달의 법칙, 스케쥴링, 라운드로빈
프로그램 실행시간 = IC(Instruction Counts, 명령어 수) * CPI(Clock cycles per instruction, 명령어 당 클럭사이클) / Clock rate(Cycles per second, 클럭속도)
초 = IC * CPI / CPS
실명씨클
2018년 87번
정답 : 4번
- 이전 컴파일러
10초 = 명령어수 * CPI(클럭사이클) / 클럭속도
명령어수 = 10초 / CPI * 클럭속도
- 새로운 컴파일러
x초 =(명령어수 * 0.5)*(CPI * 1.1) / 클럭속도
=(10초 / CPI * 클럭속도 * 0.5)*(CPI * 1.1)/ 클럭속도
= 10 * 0.5 * 1.1
= 5.5초
2018년 89번
정답 : 2번
- A컴퓨터
10초 = 명령어수 * 클럭사이클 / 2GHz
명령어수 = 10초 / 클럭사이클 * 2GHz
- B컴퓨터
8초 = 명령어수 * 클럭사이클*1.2 / 클럭속도
클럭속도 = 10초 / 클럭사이클 * 2GHz * 클럭사이클 * 1.2 / 8초
= 10초 * 2GHz * 1.2 / 8초 = 24GHz / 8초 = 3GHz
2017년 100번
정답 : 4번
<현재 벤치마크>
실행시간: 100초
CPU시간: 80초
입출력시간: 20초
<6년 후 벤치마크>
6년 후 CPU개수: 2 → 4 → 8 개 ( 2년마다 두 배씩 증가하므로)
CPU시간: 80 x 1/8 = 10초 (1개 CPU 수행 시 80초, 8개 CPU 수행 시 10초)
입출력시간: 20초 (변화 없음)
실행시간 : 10초(CPU time) + 20초(I/O time) = 30초
입출력 시간 비율 : (20 / 30) x 100 = 66.666666….%
2020년 93번
정답 : 2번
64비트 CPU를 위한 주기억장치 모듈(용량:8KB)을 1K×8비트 조직의 램(RAM)을 이용하여 구성하고자함
64비트 CPU란 말은 한 워드 길이가 64비트임
데이터 버스폭이 64비트임
따라서 "1K×8비트"램을 8개 병렬로 연결해야 64비트 폭을 가진 데이터 버스를 구성할 수 있음
2012년 90번
정답 : 2번
100초 걸리는 프로그램을 4배 빠르게 실행 -> 25초
속도 개선이 이루어질 수 없는 부분은 100초 중 20초임 (곱셉연산이 아닌 부분)
곱셉연산이 5초 안에 처리되어야 전체 실행속도 25초를 만족시킬 수 있음
속도 개선이 어려운 20초 + 곱셉연산 5초 = 25초
80초 / 5초 = 16배
2019년 79번
정답 : 2번
CPU 스케쥴링 정책은 Round Robin임 (선점 preemption 방식)
선점방식이란 어떤 프로세스가 CPU를 할당 받아 실행 중이더라도 다른 프로세스가 현재 프로세스를 중지시키고 CPU를 강제로 뺏을 수 잇는 방식임
Round Robin | 준비상태큐의 프로세스들을 번갈아 가면서 실행 가장 대표적 선점방식, 대부분의 OS에서 사용 |
SRT (Short Remainning Time) |
현재 실행중인 프로세스보다 잔여처리시간이 더 짧은 프로세스가 준비큐에 생기면 실행중인 프로세스를 선점 항상 검사해야 하는 오버헤드 있음 |
다단계 큐 (multi-level queue) |
우선순위가 다른 준비 큐를 단계별로 배치, 프로세스를 우선순위에 따라 큐에 넣고 스케쥴링 하위 단계의 큐에서 실행 중일 때 우선순위 높은 프로세스 들어오면 선점됨, 단계별 준비 큐 간의 프로세스 이동은 불가능 |
타임슬라이스(time slice)가 3ms란 프로세스에 할당된 CPU 사용 시간이 3ms이며 이 시간을 다 쓰면 다른 프로세스로 CPU를 넘겨야 한다는 것임
P0가 3ms를 쓰고 P1로 넘김 -> P1도 3m를 쓰고 P2로 넘김 -> P2도 3ms를 쓰고 P3로 넘김 -> P3도 3ms를 쓰고 P0로 넘김 / 여기까지 쓴 시간은 12ms임
P0은 2ms을 쓰고 P1로 넘김 (문제에서 P0실행시간은 Total 5ms라고 되어 있음), 이전 턴에서 3ms실행했기 때문에 2ms만 사용하면 됨 / 여기까지 쓴 시간은 14ms임
15ms순간에 CPU를 잡고 있는 프로세스는 P1이 됨
2019년 81번
정답 : 2번
μ = 마이크로(micro) = 10의 -6승
1000개 명령어를 실행하는데 0.000002초가 걸림
한 개 명령어가 실행되는데 5클럭 사이클이 필요함
5000클럭 사이클이 실행되는데 걸리는 시간이 0.000002초
클럭속도란 1초 동안에 움직이는 클럭 사이클임
5000 클럭 : 0.000002 = x 클럭 : 1초
x = 5000 / 0.000002 = 2,500,000,000 = 2.5 * 10의 9승 = 2.5G(Hz)
1 000 000 000 000 000 000 000 000 = 10^24 요타 (yotta)
1 000 000 000 000 000 000 000 = 10^21 제타 (zetta)
1 000 000 000 000 000 000 = 10^18 엑사 (exa)
1 000 000 000 000 000 = 10^15 페타 (peta)
1 000 000 000 000 = 10^12 테라 (tera)
1 000 000 000 = 10^9 기가 (giga)
1 000 000 = 10^6 메가 (mega)
1 000 = 10^3 킬로 (kilo)
100 = 10^2 헥토 (hecto)
10 = 10^1 데카 (deka)
0.1 = 10^-1 데시 (deci)
0.01 = 10^-2 센티 (centi)
0.001 = 10^-3 밀리 (milli)
0.000 001 = 10^-6 마이크로 (micro)
0.000 000 001 = 10^-9 나노 (nano)
0.000 000 000 001 = 10^-12 피코 (pico)
0.000 000 000 000 001 = 10^-15 펨토 (femto)
0.000 000 000 000 000 001 = 10^-18 아토 (atto)
0.000 000 000 000 000 000 001 = 10^-21 젭토 (zepto)
0.000 000 000 000 000 000 000 001 = 10^-24 욕토 (yocto)