Development/OS 2

스레드의 종류

컴퓨터를 구성하는 하드웨어(CPU, Memory, Devices)와 하드웨어를 관리하고 컴퓨터 시스템 전반을 관리하는 OS(커널)가 있고 우리가 개발한 프로그램(Application)은 운영체제를 통해서 하드웨어를 사용하게 된다. 하드웨어 스레드 OS 관점에서는 가상의(logical) 코어 인텔에서는 hyper-threading이라고 브랜딩하였다. -> 물리적인 코어마다 하드웨어 스레드가 두 개 예) 싱글 코어 CPU에 하드웨어 스레드가 두 개라면 OS는 이 CPU를 듀얼코어로 인식하고 듀얼 코어에 맞춰서 OS 레벨 스레드들을 스케줄링 한다. OS 스레드(네이티브 스레드 == 커널 스레드 == 커널-레벨 스레드 == OS-레벨 스레드) OS 커널 레벨에서 생성되고 관리되는 스레드 CPU에서 실제로 실행..

Development/OS 2023.02.12

프로그램, 프로세스, 스레드, 멀티 태스킹, 멀티 스레드, 멀티 프로세싱, 멀티 코어

프로그램 컴퓨터의 CPU에게 시킬 명령들을 프로그래밍 언어로 적어놓은 파일 명령어들의 조합 프로그램은 정적인 개념으로 저장매체(HDD, SDD)에 저장된 실행 파일을 의미한다. 프로세스 CPU(프로세서)에 의해 실행되고 있는 프로그램이다. 프로세스는 최소 1개의 스레드가 존재한다. OS는 Virtual Memory(제한된 공간)(1차 메모리 RAM + 2차 메모리 HDD)를 프로세스에 할당한다. JVM이 실행되어 컴파일러에 의해 변환된 바이트코드가 메모리 상에 올라갔을 때 "프로세스가 실행 중이다"라고 한다. 프로그램이 메모리 상에 올라와 컴퓨터의 자원(메모리, CPU)을 할당받아 실행중인 것을 의미한다. 멀티 태스킹 하나의 CPU에서 여러 응용 프로그램이 동시에 실행되는 것처럼 보이도록 하는 시스템..

Development/OS 2023.02.11