목차컨텍스트 스위칭이란CPU와 스레드의 비율에 따라 발생할 수 있는 상황들CPU 6개, 스레드 3개CPU 6개, 스레드 200개CPU 6개, 스레드 6개스레드가 처리하는 작업CPU-바운드 작업I/O-바운드 작업웹 어플리케이션에서의 스레드정리CPU 바운드 작업I/O 바운드 작업참고 자료컨텍스트 스위칭이란우리는 멀티 코어 환경에서 하나의 프로세스에서 여러 스레드가 동작하는 환경에 익숙해져있다.하지만 실제 스레드를 실행하는 실질적인 주체인 CPU(코어)에 비해 스레드가 더 많다면,결국 CPU 자원을 할당받지 못한 스레드는 대기 상태가 되어야 한다.하지만 운영체제의 스케줄링에 의해 대기 중이던 스레드는 다시 CPU에 의해 코드를 실행할 수 있다.이 일련의 과정을 통해 스레드들은 번갈아 가며 수행된다는 사실을 알..
프로세스우리는 인텔리제이, VS Code 같은 IDE를 실행할 때, 화면에 있는 아이콘을 클릭한다.이 때, 우리가 실행하는 것은 프로그램이다. 프로그램은 휘발되지 않고, 영구적으로 저장되는하드 디스크에 저장되어 있는 데이터 모음이다. 프로그램 자체는 소프트웨어로서 어떠한 능력을발휘하지 않는다. 우리가 IDE를 통해 코딩을 하면서 다양한 기능들을 사용할 수 있는 것은프로그램이 아닌 프로세스이다.프로세스는 프로그램을 구성하는 여러 코드들을 CPU(코어)가 수행할 수 있도록 메모리를할당받으며, 운영체제 안에서 실행되는 프로그램을 프로세스라고 한다.이처럼 하나의 운영체제 안에 여러 프로그램을 실행했을 때, 각각이 프로세스 단위로 존재하게 된다.그림에서 알 수 있듯이, 각 프로세스는 고유한 메모리 공간을 갖고 있..
멀티 태스킹과 멀티 프로세싱은 멀티 스레드를 이해하기 위해 필요한 기초 지식이다.이에 대해 정리해보면서 앞으로 공부하게 될 자바의 스레드 고급 지식을 이해해보자.CPU, 코어, 프로세서CPU는 중앙처리장치라고 하며, 컴퓨터의 연산을 담당하는 핵심 부품이다.코어는 이 CPU 안에 들어가있는 하드웨어 부품 중 하나로, 우리가 흔히 CPU가 연산을 처리한다고 했을 때, 실제 연산을 담당하는 녀석이다.프로세서는 명령어를 처리하는 논리 회로를 뜻한다. 컴퓨터가 하는 모든 일을 총괄하는 CPU를보조하는 역할이다. 하지만 현재는 CPU와 프로세서를 동일한 수준으로 언급하고 있다.즉, CPU랑 프로세서를 같은 뜻으로 간주하자.참고) https://whxogus215.tistory.com/82멀티 태스킹앞서, 코어는 하..
주기억장치는 현재 실행 중인 프로그램과 이 프로그램이 필요로 하는 데이터를 일시적으로 저장하는 장치다. 운영체제는 이 주기억장치에 필요한 데이터를 할당하고, 프로그램이 종료되면 회수해야 한다. 보통 주기억장치를 여러 영역으로 나누어서 프로세스의 크기에 따라 할당하는 방식을 사용한다. 그중에서도 대부분 시스템에서 사용되는 것은 가상 메모리 방식이다. 가상 메모리(Virtual Memory)란 실행될 프로그램이 주기억장치의 용량보다 크거나 그전에 이미 주기억장치의 용량이 다 꽉 차서 공간이 부족할 때 프로그램이 제 때 실행되지 않을 수 있다. 이를 해결하기 위해 프로그램 실행에 당장 필요한 부분만 주기억장치에 저장하고 나머지는 보조기억장치에 저장하여 작동하게 하는 방식이다. 이처럼 실행에 당장 필요한 부분과..
대부분의 프로그램은 보조기억장치에 저장되어 있다가 실행 명령을 받으면 주기억장치로 올라가 CPU에 의해 실행된다. 프로세스(Process)란 주기억장치에 올라간 프로그램(실행 중인 프로그램)을 뜻한다. 프로그램이 실행되기 위해선 보조기억장치가 아닌 주기억장치에 저장되어 있어야 하며, 프로세스에는 프로그램 코드 및 다양한 실행 정보가 담겨 있다. 프로세스는 주기억장치에 프로세스 제어 블록(PCB)라고 하는 공간에 프로세스에 대한 정보를 저장한다. 이는 임의의 프로세스가 생성되면 자동으로 생성되며, 종료시 같이 사라진다. 프로세스 상태 : 프로세스의 현재 상태(준비/대기/실행)를 나타낸다. 주소 레지스터 값 : CPU의 주소 레지스터에 저장된 값 스케줄링 정보 : 다음에 실행될 프로세스를 결정하는데 필요한 ..
운영체제는 pc나 모바일에서 없어선 안될 중요한 요소로 여겨지고 있다. windows를 만든 MS는 현재까지도 운영체제 인프라의 핵심이라고 할 수 있는데 이 운영체제는 과연 무엇이길래 이렇게 까지 중요하게 여겨질까? 하는 의문이 들 수 있다. 하지만 이는 컴퓨터가 어떻게 작동하는지 조금이라도 안다면 운영체제의 역할이 얼마나 중요한지 알 수 있다. 컴퓨터의 중앙처리장치(CPU)는 주기억장치(RAM/ROM)와 데이터를 주고 받으며 제어하고 연산을 수행한다. 이 때 각각의 데이터를 주기억장치의 부분부분에 저장하고 주소를 지정한다. 뿐만 아니라 보조기억장치(HDD/SDD 등), 입출력장치 등과도 연결되어 있는 컴퓨터의 수많은 데이터의 흐름을 사용자가 직접 관리하기엔 매우 복잡하고 접근성이 떨어진다. 우리가 쉽게..