코어

    [Java] 쓰레드 완벽 정리

    [Java] 쓰레드 완벽 정리

    🔍 프로세스와 쓰레드 프로세스란 '실행중인 프로그램'을 말한다. 우리가 프로그램을 실행시키면 OS(윈도우, Mac 등)는 프로그램 실행에 필요한 데이터와 메모리 등의 자원을 할당한다. 프로세스는 이렇게 할당 받은 자원과 쓰레드로 구성되어 있다. 쓰레드는 '프로세스가 할당 받은 자원을 활용하여 실제 작업을 이행하는 존재' 를 말한다. 쓰레드의 생성에는 제한이 없지만, 작업을 수행하기 위한 메모리 공간을 필요로 한다. 쓰레드는 프로세스가 가지고 있는 자원을 할당받기 때문에 프로세스의 메모리 한계치까지만 생성할 수 있다. 🔍 멀티 태스킹과 멀티 쓰레딩 우리는 문서 작업을 하면서 동시에 유튜브 음악을 감상할 수 있다. 이는 윈도우와 같은 운영체제는 멀티태스킹을 제공하기 때문에 가능한 일이다. 멀티 태스킹은 두 ..

    [운영체제] 다중 코어 프로그래밍

    [운영체제] 다중 코어 프로그래밍

    [다중 코어 프로그래밍] 단일 CPU 시스템은 다중 CPU시스템으로 발전하였다. 현재 시스템 설계 추세는 단일 컴퓨팅 칩에 여러 컴퓨팅 코어를 배치하는 것이다. 각 코어는 운영체제에 별도의 CPU로 보이는데 이러한 시스템을 다중 코어라고 한다. 다중 스레드 프로그래밍은 여러 컴퓨팅 코어를 보다 효율적으로 사용하고 병행성을 향상시키는 기법을 제공한다. 스레드가 4개인 응용 프로그램을 고려해보자. 단일 컴퓨팅 코어가 있는 시스템에서는 처리 코어가 한 번에 하나의 스레드만 실행할 수 있기 때문에 TASK가 번갈아가면서 실행된다.(병행성) 그러나 여러 코어가 있는 시스템에서 일부 스레드가 병렬로 실행될 수 있다.(병렬성) 순차 실행 구성요서와 병렬 실행 구성요소로 이루어진 응용에 추가의 계산 코어를 더했을 때 ..