분류 전체보기(18)
-
Kernel Thread, User Thread
Kernel Thread 운영체제가 직접 관리하는 스레드 논리적 코어와 매핑되는, 시스템의 실제 스레드 커널 영역에서 스레드의 생성, 관리수행 커널이 각 스레드를 개별적으로 관리 프로세스 내 스레드들이 병렬 수행 가능 하나의 스레드가 Block 되어도 다른 스레드는 계속 작업 가능 User Thread 유저 영역의 라이브러리로 구현된 스레드 커널은 프로세스 내 유저 스레드를 알지 못한다 커널은 프로세스 단위로 자원을 할당하기 때문에, 스레드 Block -> 프로세스 Block -> 프로세스 내 다른 스레드도 Block Multi-threading Model 다대일 모델 : User Thread 여러 개가 하나의 Kernel Thread 에 매핑된다. 스레드 관리가 유저 영역의 라이브러리에 의해 수행되..
2021.07.08 -
Thread 의 개념
프로세스와 스레드의 차이는 무엇일까? 프로세스란, 실행 중인 프로그램이라고 할 수 있다. 사용자가 작성한 프로그램이 운영체제로부터 메모리 등의 (1) 자원을 할당 받고, 그 (2) 자원을 제어하여 작업을 수행하는 것이다. 여기서 (2) 자원을 제어하여 작업을 수행 을 맡는 친구가 바로 스레드이다. 스레드란, 프로세스 내에서 실제로 작업을 수행하는 주체를 의미한다. 즉, 프로세서 활용의 기본 단위라고 할 수도 있다! 스레드는 각각의 제어 정보가 있고, 각각의 작업을 수행하지만 (1) 프로세스가 할당받은 자원은 공유하게 된다 이러한 측면에서 Light Weight Process (LWP) 라고도 한다. 또한, 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스라고 하는데, 스레드가 여러 개라는 것은..
2021.07.07 -
Interrupt 와 Context Switching
CPU가 어떠한 프로세스에 대한 작업을 수행하는 중, (1)예상치 못한, (2)외부에서 발생한 이벤트로 인해 프로세스를 잠시 중단하는 것을 인터럽트라고 한다. CPU 는 한 번에 하나씩의 일을 처리한다. 여러가지 프로그램을 동시에 실행하는 것으로 보이지만, 실은 여러개의 프로세스를 짧은 시간씩 번갈아 실행하고 있는 것이다. 여러 프로세스를 한번에 처리하지 못하고 돌아가며 처리해야 하기 때문에, 다른 프로세스를 실행하기 위해 실행중인 프로세스를 중단해야 한다. 이외에도 입출력이라던가, 예외사항들에 대해 프로세스를 중단하고 핸들링하기 위해 인터럽트가 필요하다. Context saving to PCB 인터럽트가 발생하여 프로세스를 중단할 때, 진행중이던 작업 정보를 잃으면 위에서의 멀티태스킹을 정상적으로 수행..
2021.07.05 -
Process state, 프로세스의 상태
앞서 살펴본 PCB 에 저장된 정보 중, Process State 에 관한 정보가 있었다. 프로세스의 상태란, 정확히 어떤 것을 표현할까? 다음은 프로세스 상태 전이의 도식화이다. 한 눈에 들어오는 구조는 아닌 것 같다..! 이해를 위해, 단계별로 살펴보자. Created State 프로세스가 생성되는 단계 작업을 커널에 등록하고, PCB를 할당한다. 가용 메모리 공간 체크, 할당받을 수 있는 메모리가 있는지 확인한다. 메모리가 할당되면, Ready State 로 넘어간다. 할당받을 수 있는 메모리가 없으면, Suspended Ready 상태로 대기한다! Ready State 프로세서만 제외, 메모리 등 다른 모든 자원을 할당 받은 상태 프로세서 할당 대기 상태 프로세서를 할당 받으면 즉시 실행이 가능한..
2021.07.03 -
PCB (Process Control Block) 이란?
먼저 프로세스란, 실행을 위해 커널에 등록된 작업 / 프로그램을 일컫는다. 간단하게는 실행중인 프로그램이라고 생각할 수 있다. 정적인 프로그램이 커널에 등록되어, 즉 프로세스가 되어 각종 자원을 할당받을 수 있게 된다. Process Control Block, 프로세스 제어 블록이란, 운영체제가 프로세스 관리에 필요한 정보들을 담은 블록이다. 커널은 프로세스 생성시 PCB 개체를 만들고 이를 통해 프로세스들을 관리하는데, 역으로 프로그램이 PCB를 할당받은 상태를 프로세스라고 말할 수도 있다. 그렇다면 PCB는 어떤 정보를 저장하고 있을까? Process ID : 프로세스의 식별자 Process State : 준비, 대기 등 프로세스의 상태 Program Counter : 이 프로세스가 다음에 실행할 명..
2021.07.02 -
메모리 계층구조, Cache Memory 의 작동 방식
메모리는 다음과 같은 계층 구조를 가진다. 레지스터 캐시 주기억장치 (DRAM) 보조기억장치 (HDD/SSD) 위로 갈 수록 속도가 빠르고, 용량이 작다! 우리의 작업을 수행하는 프로세서는 보조기억장치, 즉 디스크에 있는 파일에 직접 접근할 수 없다. 프로세서가 연산을 수행하는 프로그램과 데이터는 메인 메모리 상에 있어야 한다. 디스크에 있는 작업을 메인 메모리 상에 올리고, 메인 메모리에서 가져와서 연산을 하는 것이다! 왜 직접 접근하지 않고 중간 단계를 거치는 것일까? 이유는 바로 속도의 차이에 있다. 디스크와 프로세서가 작업을 처리할 수 있는 속도에 현저한 차이가 있기 때문에, 이로 인한 디스크 입출력 병목현상을 해결하기 위해, 중간에 메인 메모리를 두고 이용하는 것! 캐시는 프로세서 내부에 있는 ..
2021.07.02