현대 컴퓨터는 CPU, 메모리, I/O 이렇게 세가지로 구성된다.
이는 각각 중앙처리장치, 주기억장치, 입출력장치 라고도 구분한다.
이 중 CPU는 컴퓨터의 핵심 연산 장치이다. 명령어를 해석/실행/계산 한다.
예시) 계산기에 2+3을 입력하면, CPU가 이 연산을 하여 5를 출력함.
메모리는 실행 중인 프로그램과 데이터를 임시로 저장하는 공간이다.
예시) 워드프로세서에서 작성 중인 문서가 메모리에 올라와 있음.
I/O는 컴퓨터와 외부 간 데이터를 주고 받는다. 상호작용한다고 생각하면 될 것이다.
예시) 유튜브에서 동영상 데이터를 네트워크를 통해 받고(입력), 화면에 동영상을 출력(출력)
프로그램이나 데이터는 저장장치(디스크 등)에 있다가 실행 시에 메모리로 복사된다.
CPU는 메모리에 있는 명령어를 하나씩 읽어 명령(fetch), 해석(decode), 실행(execute)한다.
이 과정에서 필요한 데이터가 있다면 메모리에서 읽어와 처리하고, 결과를 다시 메모리 또는 입출력장치로 보낸다.
컴퓨터가 처음 켜지면, 부트로더(Boot Loader)가 먼저 실행되며, 운영체제를 메모리에 올려 본격적인 작업 환경을 준비한다.
컴퓨터가 켜지면 CPU는 제일 먼저 Boot loader를 읽어오도록 설정되어 있습니다.
CPU가 Boot loader를 읽어오면 컴퓨터 내부의 각종 초기화 작업을 진행하게 됩니다.
컴퓨터 켰을 때 부팅 화면이 보이시나요? 이는 Boot loader가 실행되고 있는 겁니다!
부트로더는 초기화 작업 외에도 중요한 작업을 합니다. 바로 운영체제를 메모리에 업로드하는 일을 합니다.
그럼 운영체제는 무엇일까요?
Process, Thread, Kernel, System Call 핵심
운영체제(OS): 하드웨어와 소프트웨어 사이를 중재하며, 자원 관리, 실행 스케줄링, 보안 등 다양한 기능 제공.
프로세스(Process): 실행 중인 프로그램 인스턴스(예: 크롬, 워드 등 각각이 프로세스).
스레드(Thread): 프로세스 내에서 실제로 CPU에서 실행되는 작업의 최소 단위.
예시1) 크롬이 여러 탭을 한꺼번에 처리할 때, 각 탭이 하나의 스레드로 동작.
예시2) 카카오톡에서 메시지 송수신, 음악 재생 등이 각각 스레드로 돌아갈 수 있음.
커널(Kernel): 운영체제의 핵심 부분. 프로세스/메모리/장치/파일 시스템 등을 관리.
예시1) 프로그램이 파일을 저장하면 실제 하드디스크에 기록되는 동작을 커널이 관리.
시스템 콜(System Call): 사용자 프로그램이 커널의 서비스를 요청할 때 사용하는 인터페이스.
예시1) 파일 열기, 네트워크 접속, 메모리 할당 등
이처럼 Boot loader는 잘 못 건드리면 컴퓨터가 실행되지 않기에 메인 메모리 중에서도 ROM에 할당되어 있습니다. -> 아무나 건드릴 수 없게
이해가 잘 되었어요 잘 보고 갑니다~