목록Computer Science/OS (2)
nathan_H
Intro 프로세스와 쓰레드가 먼지는 알지만, 막상 말로 설명하려면 제대로 못하는 경우가 많다. 아는 것과 이해한 것은 다르기 때문에 이번에 명확하게 "이해"하고자 프로세스와 쓰레드에 대해 정리하고자 한다. 들어가기 전에 프로그램 & 프로세스 & 쓰레드 각 용어에 대한 의미를 파악하고 가자. 프로그램 : 작업을 위해 실행할 수 있는 파일. 프로세스 : 연속적으로 실행되고 있는 프로그램 스레드 : 프로세스 내에서 실행되는 여러 흐름의 단위 프로세스 프로세스는 앞서 언급했던대로, "실행되고 있는" 프로그램이다. 즉 운영체제 메모리에 올라와 실행되고 있는 단위라고 보면 된다. 특징 프로세스는 독립된 메모리 영역을 가지고 있다. Heap, Data, Code(text), Stack Heap : 프로세스가 실행되..
Intro 개발을 하다보면, 동기 / 비동기, Blocking & Non-Blocking 라는 용어는 한 번쯤 들어봤을 것이다. 그러나, 동기 / 비동기 & Blocking / Non-Blocking 각각의 내용을 제대로 명확하게 설명하기란 쉽지가 않다. 그래서 하나씩 뜯어 보면서, 어떤 목적으로 사용하는지에 대해 정리하고자 한다. Blocking I/O Application단에서는 I / O 작업을 직접 실행시킬 수 없다. 그래서 System_call로 Kernel을 통해 작업을 수행할 수 있다. system_call을 하게 되면 context-swtiching이 발생하면서 작업이 수행된다. 여기서 Blocking I / O을 통해 작업을 수행할 경우에는, 실행한 함수가 반환될 때까지 "대기"하고 있는..