-
2.프로세스(Process), 스레드(Thread)Computer Science/Operating System 2021. 8. 16. 00:24
∙프로세스
∘메모리상에서 프로그램을 실행중인 작업 단위(주소 공간 할당)
-기본적으로 프로세스 마다 최소 1개의 스레드 소유
-프로세스는 각각 별도의 독립된 주소 공간 할당
➀Code: 코드 자체를 구성하는 메모리 영역
-같은 프로그램은 모두 같은 내용이기 때문에 따로 관리하여 공유
➁Data: 전역변수, 정적변수, 배열 등 초기화된 데이터의 메모리 영역
-공통으로 사용하는 변수는 따로 모아 메모리 절약
➂Heap: 동적 할당 메모리 영역
➃Stack: 지역변수, 매개변수, 리턴 값 등 임시 메모리 영역
-LIFO(Last In First Out)으로 실행
∙멀티프로세스
∘하나의 컴퓨터에 여러 CPU를 장착하여 하나 이상의 프로세스들을 병렬적으로 동시에 처리하는 것
-장점: 메모리 침범 문제를 OS 차원에서 해결(안전성)
-단점: 각각 독립된 메모리 영역을 갖고 있어 작업량이 많을수록 오버헤드 발생,
Context Switching으로 인한 성능 저하
(CPU가 이전 프로세스 상태를 PCB에 보관하고, 다른 정보를 PCB에서 읽어 레지스터에
적재하는 과정)
∙스레드
∘프로세스 안에서 실행되는 여러 흐름 단위
-스레드는 Stack만 따로 할당 받고 나머지 영역은 서로 공유
∙멀티스레드
∘하나의 응용 프로그램에서 여러 스레드를 구성해 각 스레드가 하나의 작업을 처리하는 것
-장점: Data, Heap 메모리 공유로 자원과 시간 손실이 감소
-단점: 하나의 스레드가 데이터를 망가뜨리면 모든 스레드가 작동 불능(안전성 문제)
->Critical Section기법을 통해 동기화
➀상호 배제: 하나의 프로세스가 임계 영역에 있으면 다른 프로세스 접근 불가
➁진행: 들어가려는 프로세스가 여러 개라면 어느 것이 들어갈지 결정
➂한정된 대기: 다른 프로세스의 기아 상태 방지를 위해 한 번 들어간 프로세스는 제한
∙프로세스와 스레드의 차이
-프로세스는 자신만의 고유 공간과 자원을 할당받아 사용하는데 반해,
스레드는 다른 스레드와 공간, 자원을 공유하면서 사용하는 차이가 있다.출처
'Computer Science > Operating System' 카테고리의 다른 글
6.IPC(Inter Process Communication) (0) 2021.08.20 5.PCB(Process Control Block), Context Switcing (0) 2021.08.19 4.시스템 콜(System Call) (0) 2021.08.18 3.인터럽트(Interrupt) (0) 2021.08.17 1.운영체제(OS)(Operating System) (0) 2021.08.16