[OS] 컴퓨터 시스템 구조 -2
컴퓨터 시스템 구조
운영 체제를 알기 전에 컴퓨터 시스템 구조를 알아보고 어떤 메커니즘으로 동작하는지 알아야 한다.
컴퓨터 시스템은 크게 프로세서(CPU, GPU), 메모리(다양한 종류) , 주변장치(키보드 등) 3종류로 구분할 수 있고, 이들은 서로 버스를 통해 상호작용한다.
프로세서
프로세서는 컴퓨터의 수뇌부로 각종 연산 과 컴퓨터 장치의 동작을 제어한다.
메모리
메모리는 데이터를 저장하는 기억장치로 프로그램이나 사용자 데이터 등을 저장한다.
메모리는 이렇게 4개의 계층으로 구분할 수 있는데, 아래와 같은 특징을 가진다.
- 위로 갈수록 속도가 빠르고 용량이 작음
- 아래로 갈수록 속도가 느리고 용량이 큼
이렇게 계층을 나눈 이유는 각 메모리간의 간극에서 오는 I/O지연을 해결하기 위해 구분되어있다.
레지스터
- CPU 내부에 존재함
- 가장 빠른 속도
레지스터는 CPU가 사용할 데이터를 저장하는 CPU 내부에 존재하는 가장 빠른 메모리이다.
일시적인 데이터를 저장, 특정 데이터가 어디에 존재하는지 주소를 기억하는 역할 등을 한다.
즉, CPU 연산을 보조하는 역할을 수행하며, CPU는 다양한 레지스터를 이용해 연산을 수행한다.
메인 메모리 혹은 캐시 메모리로 부터 데이터를 레지스터로 가져와서 연산을 수행한 후 결과를 다시 돌려놓는다.
캐시
- CPU 내부에 존재함
- 레지스터 보다 느리고 메인 메모리보다 빠른 속도
메인 메모리와 CPU 사이의 I/O 갭을 해결하고 대부분의 프로그램은 한 번 사용한 데이터를 다시 사용할 가능성이 높고, 그 주변의 데이터도 곧 사용될 가능성이 높은 데이터 지역성을 가지기 때문에 캐싱을 위해 등장했다.
메인 메모리로 부터 가져온 프로세스 데이터를 캐싱하는 역할을 수행해 효율성을 높인다. (CPU는 캐시에 존재하는 데이터는 메인 메모리까지 내려가서 받아올 필요가 없음)
버퍼
캐시가 자주 사용하는 데이터나 값을 복사해 놓는 임시 저장소라면, 버퍼는 데이터를 한 곳에서 다른 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리 영역이다.
버퍼는 캐시에 비해서 처리하는 데 필요한 리소스 크기가 큰 편이기 때문에 모든 데이터를 저장할 수 없다.
따라서 더블 버퍼링이나 입출력에 사용될 때의 버퍼 등의 모든 버퍼는 특정한 데이터를 담았다가 처리가 끝나면 그 데이터를 모두 폐기한다.
이와 반면에 캐시는 한 번 저장한 것은 계속해서 가지고 있으면서 접근 요청이 발생할 때마다 그 기억 매체를 불러온 쪽에 반환할 수 있다.
메인 메모리(주 기억장치)
- 별도로 장치가 존재함
- 보조 기억 장치보다 빠르지만 적은 용량
- RAM 등
보조 기억장치와 CPU 간의 I/O 갭을 해결하기위해 중간자 역할을 위해 만들어 졌다.
CPU가 프로세스를 수행할때 필요한 데이터를 저장하며,
CPU는 메인메모리에 올라간 프로세스만 수행가능하다. (CPU는 보조 기억장치에 직접 접근할수없다.)
즉, 프로세스가 실행 준비가 되려면 보조 기억장치 → 주 기억장치로 할당되어야한다.
보조 기억장치
- 별도로 장치가 존재함
- 가장 많은 용량 , 느린 속도
- DISK ,SSD 등
프로그램과 데이터를 저장하며 프로세서가 직접 접근할 수 없는 기억 장치이다.