멀티 코어라는 것은 여러 개의 코어를 가지고 있다는 뜻이다.
예를 들어 쿼드 코어라면, 이론적으로는 최대 네 개의 프로세스가 동시 실행 가능하다는 것!
어떻게 가능할까?
멀티코어
CPU 를 구성하는 “ 처리 장치”가 여러 개라는 뜻.
처리 장치?
- ALU : 산술 연산, 논리 연산을 수행하는 장치. (계산기)
- 레지스터 : 데이터와 명령어 일시 저장하는 고속 메모리. (프로세스가 올라가면 메모리에서 레지스터로 데이터를 옮겨와서 명령 실행함.)
- 제어 유닛 : 명령어 해석하고 작업이 어떻게 처리될지 제어함. (제어 장치)
- L1 캐시 : 코어 내부에 있는 제일 빠른 메모리. (캐시)
그러면 처리 장치가 여러개라는 뜻은?
- (ALU, 레지스터, 제어 유닛, L1 캐시) 가 여러 개라는 뜻.
램(메모리)은 하나로 돌려 씁니다. ㅎㅎ
그래서 멀티 코어라면 메모리도 큰 걸 써야 됨.
한 번에 여러 프로세스가 동시에 실행되어도 메모리 공간은 공유하고, 그러면 OOM 이 발생할 수 있으니깐요!
그렇다면 멀티 코어 상황에서 멀티 프로세스는 어떻게 실행될까?
예를 들어, 유튜브 뮤직을 들으며 웹서핑을 하는 상상을 해보기.
멀티 코어 : 병렬 실행을 가능케 한다.
- 유튜브 뮤직
- 웹 요청
이 두가지가 서로 다른 처리 장치에서 동시에 “병렬” 수행 가능.
→ 하지만, 커널은 하나인데, 커널은 뭐해?
커널 : 스케줄링과 리소스 관리
- 시스템 자원을 효율적으로 분배.
- 멀티 코어 상황에서도 커널은 하나지만, 모든 코어를 관리하고 각 프로세스를 어떤 코어에 배정할지 스케줄링함.
커널은 대뇌같은 거라고 했다.. 책에서는 운영체제를 정부라고 하고, 운영체제가 곧 “커널”이라고 해도 과언이 아니라고 한다.
명령을 조율하고 실행하는 역할을 한다는 것이다.
근데 커널은 여러 개가 아니잖아.
- 유튜브 뮤직은 받았던 데이터를 스피커에 내보내서 노래를 틀어야하고
- 웹 요청은 모니터에 응답을 띄워주어야 한다.
→ 이 때, CPU는 “커널 모드”가 되어야 커널이 시스템 자원을 제어할 수 있도록 한다고 함.
그러면 커널이 어떤 작업을 수행하기 위해서는 CPU가 필요한 것 아닌가?
→ 맞다. 커널도 작업을 수행하기 위해 CPU 자원을 사용해야 함. → 커널은 소프트웨어 니까…
- I/O 요청을 처리하거나 메모리를 할당하고, 스케쥴링을 수행할 때에도 CPU가 필요하다.
커널이 작업을 수행할 때 CPU 는
- 커널 모드 : 커널 모드로 전환하면 CPU가 하드웨어 작업에 직접 접근 가능하여 메모리 관리, 장치 제어, 프로세스 스케줄링 작업 등 수행.
- 사용자 모드에서 전환 : 애플리케이션이 “시스템 콜”을 사용하면 커널 모드로 전환됨. 커널이 CPU 작업을 다 하면 다시 사용자 모드로 전환 !
그렇다면 “커널 인터페이스”를 사용하기 위해 “커널 모드”로 전환된다고 해도 맞는 말일까?
애플리케이션이 사용자 모드 → 커널 모드로 전환된다는 건?
애플리케이션이 커널이 제공하는 시스템 리소스나 기능(파일 시스템, 네트워크, 메모리 관리 등)에 접근하려고 한다는 것을 의미한다.
- 시스템 리소스에 접근 가능한 것은 “커널” 뿐이다.
왜 커널만 시스템 리소스에 접근 가능할까?
- 시스템 리소스(메모리, 디스크, 네트워크 등)는 보호받아야 한다!
- 시스템 리소스를 애플리케이션이 직접 접근 가능하다면, 시스템 안정성이 무너질 수 있다.
- 따라서, 애플리케이션은 커널 인터페이스를 통해 커널에게 요청(시스템 콜)하고, 이 요청을 처리하기 위해 커널 모드로 전환된다.
💡 커널 인터페이스(시스템 콜)은 커널과 사용자 모드 애플리케이션 사이의 브릿지 역할을 한다.
애플리케이션이 커널 인터페이스를 호출하면, CPU 는 커널 모드로 전환되어 작업을 수행한다!
그러니 커널 인터페이스를 사용하기 위해 커널 모드로 전환된다. 는 것은 맞는 말이다!!!! !! ! ! !
728x90
'개발공부 개발새발 > OS' 카테고리의 다른 글
OS ) 인터럽트 (0) | 2024.12.17 |
---|---|
OS ) 컴퓨터, 운영체제란 무엇인가. (2) | 2024.12.09 |
OS ) 시스템콜, 코루틴, 그리고 이벤트 루프란? (0) | 2024.10.29 |
OS ) CPU와 메모리 (0) | 2023.11.02 |
OS ) 컴퓨터의 기본 구성 (1) | 2023.10.23 |