프로세서란?
프로세서는 중앙 처리 장치를 의미하며, 컴퓨터에 조금 관심이 있는 사람이라면 많이 들어봤을 흔히 CPU라고 불리는 부품이 프로세서를 의미한다.
하드웨어적 측면
- 컴퓨터 내에서 프로그램을 수행하는 하드웨어 유닛
- 중앙 처리 장치(Central Processing Unit)를 뜻하며, 적어도 하나 이상의 ALU(Arithmetic Logic Unit)와 처리 레지스터(Register)를 내장한 것.
소프트웨어적 측면
- 데이터 포맷을 변환하는 역할을 수행 데이터 프로세싱 시스템
프로세스란?
프로세스는 말 그대로 "절차(과정)" 이다. 때문에 스스로 무언가를 처리하지 못한다.
메모리에 적재되어 실행 중이거나 대기중인 프로그램을 프로세스라 한다. 즉, 프로그램이다. 컴퓨터에서 프로그램은 프로그래밍 언어로 작성된 작업 수행 과정일 뿐이다. 프로그래머가 작성한 소스코드와 소스코드가 컴파일되어 기계어로 번역된 바이너리 파일도 그저 작업 과정이 기록된 파일일 뿐이다.
- 프로그램: 컴퓨터에서 사용자가 원하는 목적을 달성하기 위해 목적에 맞게 특정 작업을 수행하는 일련의 명령어들의 집합이다. 즉, OS에서 얘기하는 프로그램은 컴퓨터에서 실행중인 모든 종류의 소프트웨어 프로그램들을 의미한다.
- 프로세스는 create, running, ready, watitin, terminated의 5개의 상태로 나눠진다.
컴퓨터가 프로그램을 실행하는 과정은 매우 복잡하지만 프로세서와 프로세스를 구별하기 위해 가장 중요한 부분은 다음과 같은 순서를 이해하는 것이다.
1. 사용자가 단축 아이콘 혹은 명령행에서 프로그램을 실행한다.
2. 파일로 저장되어 있던 프로그램은 메모리(램)에 로더(Loader)에 의해 적재(load)되고 처음으로 실행해야 할 기계어 코드가 저장된 메모리의 주소를 CPU의 명령주소(IP : Instruction Pointer) 레지스터에 저장한다.
3. 프로세서(CPU)는 IP 레지스터가 가리키는 메모리의 주소에서 (처음으로) 실행할 명령어를 인출(메모리에서 CPU로 가져오는)하여 명령 레지스터(IR : Instruction Register)에 저장한다.
4. IR에 저장된 명령을 실행하고 IP에 다음번에 실행할 명령어가 있는 주소를 저장한다.
5. 3~4를 프로그램의 끝까지 반복한다.
위의 과정이 프로그램이 실행되는 과정이다. 실제로는 훨씬 더 복잡한 과정이 있고 레지스터도 다양하지만 이 정도만 확실하게 이해해도 괜찮다.
간단하게 정리하면
프로세서: CPU나 MicroProcessor 라는 하드웨어를 의미한다.
프로세스: 메모리에 적재(load)되어 프로세서(CPU)에 의해 실행 중인 프로그램이다.
'CS' 카테고리의 다른 글
[운영체제] 가상 메모리 (0) | 2022.12.03 |
---|---|
[운영체제] Thread(스레드) (0) | 2022.12.01 |
[운영체제] 컴퓨터 운영 체제 종류와 특징 (0) | 2022.11.27 |
운영체제(OS) (0) | 2022.11.27 |
[WEB] HTTP와 HTTPS의 차이 (0) | 2022.11.19 |