2.[os] 컴퓨터의 구조와 성능 향상
암달의 법칙
- 컴퓨터 시스템의 일부를 개선할 때 전체 시스템에 미치는 영향과의 관계를 수식으로 나타냄
- 주변장치의 향상없이 CPU의 속도를 2GHz에서 4GHz로 늘리더라도 컴퓨터의 성능이 2배 빨라지지 않는다
- CPU의 속도를 올린다고 해도 메모리를 비롯한 주변장치가 CPU의 발전 속도를 따라가지 못해 컴퓨터의 전반적인 성능이 저하되는 것
- 싱글코어 대신 듀얼코어를 사용하더라도 CPU 내 다른 부품의 병목 현상으로 인해 CPU의 성능이 2배가 되지 않는다
1. 하드웨어의 구성
- 컴퓨터는 CPU, 메인메모리, 입력장치,출력장치,저장장치로 구성된다.
- 컴퓨터로하는 작업은 대부분 CPU와 메인메모리의 협업으로 이루어지기 때문에 CPU와 메인메모리는 필수장치로 분류되고 그 외의 부품은 주변장치라고 한다.
2. 폰노이만구조
- CPU, 메모리, 입출력장치, 저장장치가 버스로 연결되어 있는 폰노이만 구조에서는 모든 프로그램이 메모리에 올라와야 실행이 가능하다.
3. CPU
- CPU는 명령어를 해석하여 실행하는 장치로 제어장치, 산술논리 연산장치, 레지스터로 구성된다.
4. 메모리
- 메모리는 실행에 필요한 프로그램과 데이터를 저장하는 공간으로,모든 프로그램은 메모리에 올라와야 실행할 수 있다. 메모리는 읽거나 쓸 수 있는 램과 읽기만 가능한 롬으로 구분된다.
5. 부팅
- 컴퓨터를 켰을 때 운영체제를 메모리에 올리는 과정을 부팅이라고 한다.
- 사용자가 컴퓨터의 전원을 켜면 롬에 저장된 바이오스가 실행되어 하드웨어를 점검하고, 이상이 없으면 메모리에 부트스트랩 코드를 올려 실행한다.
- 부트스트랩 코드는 하드디스크에 저장된 운영체제를 메모리로 가져와 실행함으로써 부팅을 마무리한다
6. 버퍼
- 버퍼는 일정량의 데이터를 모아 옮김으로써 두 장치 사이에서 속도의 차이를 완화하는 역할을 한다.
7. 캐시
- 캐시는 메모리와 CPU 간의 속도 이를 완화하기 위해 데이터를 미리 가져와 저장해두는 임시 장소이다.
- 캐시는 사용할 것으로 예상되는 데이터를 미리 가져다놓아서 두 장치의 속도 차이를 완화해준다
8. 저장장치의 계층 구조
- 저장장치의 계층구조는 속도가 빠르고 값이 비싼 저장장치를 CPU 가까운쪽에 두고, 값이 싸고 용량이 큰 장치를 반대쪽에 배치하여 적당한 가격으로 빠른 속도와 큰 용량을 동시에 얻는 방법이다.
9. 인터럽트
- CPU는 입출력 관리자에게 작업 지시를 내리고 다른 일을 하다가 완료 신호를 받으면 하던 일을 중단하고 옮겨진 데이터를 처리한다.
- 이때 입출력 관리자가 CPU에 보내는 완료 신호를 인터럽트라고 한다.
- 인터럽트 방식은 CPU의 작업과 저장장치의 데이터 이동을 독립적으로 운영함으로써 시스템의 효율을 높인다.
10. 병렬 처리
- 병렬 처리는 동시에 여러 개의 명령을 처리하여 작업의 능률을 올리는 방식을 말한다.
- CPU에서 명령어가 실행되는 과정은 일반적으로 4단계(명령어 패치, 명령어 해석, 실행, 쓰기)로 나뉘는데, 병렬 처리 기법에서는 CPU의 사용을 극대화하기 위해 이러한 단계를 겹쳐서 실행한다.
- CPU의 구성에 대해 설명하시오
제어장치, 산술논리 연산장치, 레지스터
폰노이만 구조의 가장 중요한 특징을 설명하시오
모든 프로그램은 메모리에 올라와야 실행할 수 있다
버스의 종류를 나열하시오
제어버스, 주소버스, 데이터버스
단방향버스에 대해 설명하시오
자료가 한 방향으로 전달되는 버스 예) 주소버스
다음에 실행할 명령어를 보관하는 레지스터는 무엇인가?
프로그램 카운터(PC)
다음에 실행할 명령어를 보관하는 레지스터는 무엇인가?
명령어 레지스터(IR)
메모리 주소를 보관하는 레지스터는 무엇인가?
메모리 주소 레지스터(MAR)
메모리에 저장할 데이터나 메모리에서 가져온 데이터를 임시로 보관하는 레지스터는 무엇인가?
메모리 버퍼 레지스터(MBR)
주소 버스와 연결되어 있는 레지스터는 무엇인가?
메모리 주소 레지스터(MAR)
데이터 버스와 연결되어 있는 레지스터는 무엇인가?
메모리 버퍼 레지스터(MBR)
프로그램을 보호하기 위해 사용하는 두 가지 레지스터는 무엇인가?
경계 레지스터, 한계 레지스터
속도 차이가나는두장치 사이에서 속도를 완화하는장치를무엇이라고통칭하는가?
버퍼
응용프로그램과프린터 사이에서 속도차이를완화하는소프트웨어를무엇이라고하는가?
스풀러
부팅 시운영체제를 메모리로 가져오기 위해 사용하는 작은 프로그램은 무엇인가?
- 부트스트랩
- 속도가 빠르고 값이 비싼 저장장치를 CPU 가까운 쪽에 두고, 값이 싸고 용량이 큰 저장장치를 반대쪽에 배열하는 방식을 무엇이라고 하는가?
- 저장장치의 계층 구조
- 작업의 효율성을 높이기 위해 CPU가 입출력 관리자에게 입출력 작업을 요청하면 작업을 마친 입출력 관리자는 CPU에 무엇을 보내는가?
인터럽트
CPU의 도움 없이도 메모리를 사용할 수 있도록 입출력 관리자에게 주는 권한을 무엇이라고 하는가?
직접 메모리 접근(DMA)
CPU와 입출력 관리자가 서로 다른 메모리 영역을 사용하는 기법을 무엇이라고하는가? (메모리의 일정 공간을 입출력에 할당하는 기법)
메모리 매핑 입출력(MMI)
CPU가 병렬 처리를 지원하지 않을 때 소프트웨어적으로 병렬 처리를 하는 기법을무엇이라고 하는가?
- VLIW 기법