하드웨어 위에서 애플리케이션 소프트웨어가 작동할 수 있도록 돕는 역할인 시스템 소프트웨어는 두 가지가 있다.
- 운영체제 : 메모리와 저장소를 관리하고, IO 명령을 관리하며 다수의 프로세스/스레드가 충돌하지 않도록 관리함
- 컴파일러 : high-level language로 작성된 프로그램을 하드웨어가 실행할 수 있는 프로그램으로 바꿔줌
* 컴파일러는 building 과정을 통해 object 파일을 생성하고, linking을 하여 실행 파일을 생성함.
* 점차 최적화 기술이 발전해서 더욱 효율적인 기계어를 생성할 수 있게 됨.
컴퓨터의 성능을 판단하는 두 가지 지표
- Response time, Execution time (응답시간, 실행시간)
* 어떤 작업이 시작부터 완료까지의 걸린 시간
* 이 지표는 개인 사용자에게 중요함. (일반적인 사용자는 컴퓨터가 얼마나 빠르게 반응하는지가 중요)
- throughput, bandwidth (처리량, 대역폭)
* 주어진 시간동안 처리한 작업의 총량
* 이 지표는 서버, 데이터센터에게 중요함. 서버의 처리량으로써 서버의 성능을 파악함.
실행시간은 Elapsed time(소요 시간)과 CPU time이 있음.
Elapsed time은 어떤 작업을 완료하는데 소요된 총 시간이며 디스크 액세스, 메모리 액세스 등이 포함됨.
CPU time은 CPU가 해당 작업을 완료하는데 소요된 시간이며 다른 활동은 포함되지 않음.
위 두 가지 종류의 실행시간을 비교해서 성능 병목 현상과 최적화 할 부분을 파악할 수 있다.
'학교강의필기장 > 컴퓨터구조' 카테고리의 다른 글
컴퓨터구조[6]: 함수(프로시저)와 스택 포인터 2 - 재귀함수에서의 어셈블리 (0) | 2023.04.09 |
---|---|
컴퓨터구조[5] : 함수(프로시저)와 스택 포인터 1 (0) | 2023.04.09 |
컴퓨터구조[4] : shift 연산과 조건문, 반복문 (0) | 2023.04.06 |
컴퓨터구조[3] : R-type & I-type (0) | 2023.04.06 |
컴퓨터구조[2] : instruction set, add, sub, addi, lw, sw (0) | 2023.04.06 |