Bus
시스템 여기저기를 연결하는 일렉트로니칼한 배관. 통상 word
크기만큼의 바이트를 전달하도록 설계됨.
word
는 통상 4byte
아니면 8byte
이다.
I/O device
말 그대로 컴퓨터랑 바깥 세상을 연결하는 장치.
I/O device - controller - I/O buses - ...
대충 이런 식으로 연결되어 있음.
Main memory
processor
가 프로그램을 실행하는 동안에 program
과 data
가 저장되는 곳.
논리적으로는 데이터가 일렬로 늘어서 있는, array
같은 느낌이랜다.
processor(cpu)
메인 메모리에 저장된 instruction
을 실제로 처리하는 일종의 엔진? 같은 것.
register
, program counter(PC)
, arithmatic/logic unit(ALU)
하고 cache
로 구성되어 있음.
PC
가 가르키는 주소에서 메모리를 읽고, 그에 맞는 동작을 실행하고, PC
를 증가시키고, ...
Cache
메모리 복사/이동하는데 들어가는 시간을 조금이라도 줄이기 위해서 있는게 cache
이다.
cache memory
는, 미래에 '필요할 만한' 데이터를 임시로 저장하는 임시 저장공간이다. 좀 빠른 대신 용량은 얼마 안 된다. 보통 L1
~L3
까지 있다.
사실 컴퓨터의 메모리 구조 자체가 더 빠른 놈이 더 느린놈의 캐시 노릇을 한다고 봐도 된다. 그러니까 ram
이 hdd
의 캐시 역할을 한다고 생각하면 대충 맞다.
operating system(OS)
운영체제가 운영체제지 뭐 ㅇㅅㅇ 일반적인 프로그램은 하드웨어에 바로 접근하는 대신에, os에서 제공하는 추상화된 방식으로 하드웨어에 접근하게 된다. 그러니깐 하드웨어 바로 위에서 돌아가는 소프트웨어적인 추상화 레이어라고 생각하면 될 것 같다.
process
작동 중인 프로그램을 (OS가) 적당히 추상화 한 것... 동시에 여러 프로세스가 실행되더라도, 각 프로세스는 마치 지 실행되는거마냥 컴퓨터의 하드웨어를 사용할 수 있다.
thread
하나의 프로세스가 여러 개의 control flow
를 가질 수 있고 뭐 그렇다. 다른 말로, 프로세스 하나가 여러 개의 execution unit(thread)
로 구성된다고 말할 수 있다.
virtual memory
이거도 일종의 추상화인데, 각 프로세스가 마치 메인 메모리를 독차지하는 것처럼 보이게 해 준다.
stack 영역
, heap 영역
어쩌고 했던 것은 전부 virtual memory space
상에서의 얘기이다.
편집 로그
2020.12.09 : 작성 스타트
아직 작성중