본문 바로가기

전체 글20

프로세스(PROCESS) , 스레드(THREAD) #1 프로세스(Process) 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 종종 스케줄링의 대상이 되는 작업(task)이라는 용어와 거의 같은 의미로 쓰인다. 운영체제로부터 시스템 자원을 할당받는 작업의 단위 프로세스와 프로그램의 차이 1) 프로그램(Program) 프로그램이란 어떤 작업을 위해 실행할 수 있는 파일을 뜻한다. 2) 프로세스(Process) 프로세스란 메모리에 올라와 CPU를 할당받고 프로그램이 실행되고 있는 상태를 말한다. 즉, 프로그램은 정적인 개념으로 실행파일들을 의미하고 프로세스는 동적인 개념으로 실행된 프로그램을 의미한다. 프로세스의 구조 프로세스는 각각 독립된 메모리 영역 (Code, Data, Stack, Heap)을 할당받는다. 기본적으로 하나의 프로세스안에는 메인 스레드.. 2020. 1. 9.
프로세스(PROCESS) , 스레드(THREAD) #2 단일 스레드 / 멀티 스레드 운영체제의 지원 여부에 따라 단일 스레드 , 다중 스레드로 나뉠 수 있다 프로세스에 하나의 제어 모델이 있으면 단일 스레드이며, 프로세스가 다수의 제어 스레드를 가진다면 다중 스레드 모델이다. 단일 스레드 하나의 프로세스에서 하나의 스레드 실행 하나의 레지스터와 스택으로 표현 멀티 스레드 프로그램을 다수의 실행 단위로 나누어 실행 프로세스 내에서 자원을 공유하여 자원 생성과 관리의 중복을 최소화 서버가 많은 요청을 효율적으로 수행 할 수 있는 환경 제공 각각의 스레드가 고유의 레지스터와 스택으로 표현됨 단일 스레드 / 멀티스레드의 장단점 단일 스레드 장점 1. 자원 접근에 대한 동기화를 신경 쓰지 않아도 된다. 2. 문맥 교환(context switch) 작업을 요구하지 않는.. 2020. 1. 7.