OS의 작업을 이해하려면 먼저 하드웨어, 소프트웨어의 동작에 대한 이해가 선행되어야 합니다.
하나의 프로그램이 실행될 때 하드웨어에서 어떤 작업이 이루어지는가
프로그램의 실행
만약 사용자가 하나의 프로그램을 실행시키면 그 프로그램에 작성되어 있는 명령과 참조하고 있는 데이터를 Main mamory인 Ram으로 불러오게 됩니다. 프로그램 코드와 데이터는 disk에 저장되어 있습니다.
예를들어, 어떤 게임을 실행시키면 하드 디스크나 SSD에 저장되어 있는 파일들을 컴퓨터 위에서 빠르게 처리할 수 있도록 Ram으로 보내줍니다.
여기서 OS가 프로그램의 실행을 지시하면 CPU의 존재하는 레지스터들이 메모리에 순서대로 존재하는 명령들을 가져와 명령을 실행하고, 그 결과를 다시 메모리로 전달하여 프로그램이 실행되는 것입니다.
이 때, CPU와 Ram간의 데이터를 주고 받을 수 있게 이어주는 장치를 bus라고 하는데,
Memory Bus - bridge - System bus 의 순서로 Ram에서 CPU로 데이터가 전송됩니다.
CPU의 레지스터들이 하나의 작업을 끝내고 다시 메모리에서 다음 명령을 가져오는 것을 fetch,
메모리의 명령어를 레지스터가 알아들을 수 있게 바꿔주는 것을 decode,
디코딩된 작업을 수행하는 것을 execution이라고 합니다.
CPU는 메모리에 명령이 존재하는 한 위 3가지 작업을 반복적으로 수행합니다.
여기까지 내용을 바탕으로 컴퓨터에서 프로그램이 실행되는 방식을 폰 노이만 구조 (Von Neumann architecture) 라고 합니다.
하드웨어를 따로 따로 살펴보면,
CPU(Processor)
CPU는 데이터를 계산하는 역할을 하며 다양한 기능을 가진 레지스터가 존재하고 주로 ALU(Arithmatic/logic unit)에서 논리 연산을 통해 값을 계산합니다. 또한 레지스터들과 ALU의 효율적인 작동을 위해 control unit 이라는 장치가 존재합니다.
위에서 cache memory란 메모리에서 cpu로 불러온 데이터들 중 자주 쓰이는 데이터를 저장해놓는 공간입니다.
자주 사용되는 메모리의 주소를 저장해놓음으로써 그 메모리 주소가 필요할 때 다시 불러오는 비용을 줄일 수 있습니다.
- Evolution of Processor
프로세서의 계산속도를 빠르게 하기 위해 단일 프로세서 단위로 구성의 복잡도를 높여가며 성능을 향상시켰지만 그만큼 파워 소모도 커졌고, 결국 파워소모의 비효율성이 더 높아지는 단계까지 발전했습니다.
그래서 프로세서는 똑같은 성능이지만 하나의 반도체에 들어가는 CPU 수를 늘려 계산에 사용되는 파워를 낮추는 방향으로 발전하기 시작했습니다. 그 기술이 바로 Multiprocessor입니다.
이 Multipocessor는 특수한 목적의 계산을 위한 Procssor를 CPU와 같은 칩에 내장하여 특정 계산의 성능을 극대화 하기도 하는데, 반복적인 행렬 계산을 위한 GPU가 대표적인 예입니다.
Memory(RAM)
RAM(Random Access Memory)은 어느 위치에 저장된 데이터든지 접근(읽기 및 쓰기)하는 데 동일한 시간이 걸리는 메모리이기에 '랜덤(random, 무작위)'이라는 명칭이 주어졌습니다.
RAM은 어떻게 구성되었는지에 따라 두가지 종류로 나뉩니다.
Static Ram
- 1bit당 6개의 transistor로 이루어져 있어 Dynamic Ram보다 상대적으로 비싸고 빠릅니다.
- 주로 CPU안에서 cache 메모리 역할을 합니다.
Dynamic Ram
- 1bit당 1개의 transistor와 capacitor의 쌍으로 이루어져 있어 Static Ram보다 상대적으로 싸고 느립니다.
- 주로 메인 메모리 역할을 합니다.
Ram은 휘발성 메모리 타입으로, 컴퓨터의 전원이 끊기면 저장되어 있는 데이터가 사라집니다.
Disk
disk는 비휘발성 메모리 타입으로 전원이 꺼져도 데이터가 사라지지 않습니다.
우리가 컴퓨터에 저장한 파일들은 disk에 저장되어 컴퓨터를 껏다 켜도 사라지지 않고, 다시 Ram으로 데이터를 올려 실행 가능한 것입니다.
Hard disk(HDD)
보호 케이스 안에 있는 플래터를 회전시켜, 이것에 자기 패턴으로 정보를 기록합니다.
다시 회전하는 플래터 위에 부상하는 입출력 헤드에 의해 자기적으로 데이터를 쓰고 읽을 수 있습니다.
상대적으로 SSD보다 싸고 데이터를 읽고 쓰는 속도가 느립니다.
Solid State Disk(SSD)
flash memory 기술로 작동하는 disk입니다. flash memory는 비트 정보를 저장하는 셀이라 부르는 플로팅 게이트 트랜지스터(floating gate transistors)로 구성된 배열 안에 정보를 저장합니다. 전기적으로 데이터를 저장하는 방식입니다.상대적으로 HDD보다 비싸고 데이터를 읽고 쓰는 속도가 빠릅니다.
'CS > OS' 카테고리의 다른 글
CPU와 I/O device (0) | 2022.03.24 |
---|---|
메모리 계층 구조 - Cache (0) | 2022.03.23 |
Interrupt 처리 (0) | 2022.03.21 |
Instruction과 레지스터 (0) | 2022.03.20 |
오퍼레이팅 시스템 - 소프트웨어를 위한 소프트웨어 (0) | 2022.03.19 |