wdwd

프로세스, 스레드 본문

운영체제

프로세스, 스레드

sang0 2020. 1. 30. 03:14

Process와 Thread

프로세스(Process) : 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램

- 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체)

- 운영체제로부터 시스템 자원을 할당받는 작업의 단위

- 동적인 개념으로는 실행된 프로그램을 의미

- 특징

  • 프로세스는 실행될 때 운영체제로부터 각각 독립된 메모리 영역(Code, Data, Stack, Heap)을 할당받음
  • 각 프로세스는 별도의 주소 공간에서 실행되며 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없음
  • 한 프로세스가 다른 프로세스의 자원에 접근하려면 프로세스 간 통신(IPC, Inter-Process Communication)을 사용해야 함. ex) 파이프, 파일, 소켓

- 프로세스 상태

 

쓰레드(Thread) : 프로세스 내에서 실행되는 여러 흐름의 단위

- 프로세스가 할당받은 자원을 이용하는 실행의 단위

- 프로세스의 특정한 수행 경로

- 특징

  • 쓰레드는 한 프로세스 내에서 동작되는 여러 실행의 흐름으로 프로세스 내에서 각각 Stack만 따로 할당 받고 Code, Data, Heap 영역은 공유함
  • 쓰레드는 한 프로세스 내에서 동작되는 여러 실행의 흐름으로 프로세스 내의 주소 공간이나 자원들을 같은 프로세스 내에 쓰레드끼리 공유하면서 실행됨

PC

▶PC(프로그램 카운터)
프로세서 내부에 있는 레지스터 중의 하나
다음에 실행될 명렁어의 주소를 가지고 있기 때문에 명렁어 포인터라고도 함

 

PCB
PCB(Process Control Block, 프로세스 제어 블록)

: 운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓는 곳으로, 프로세스의 상태 정보를 저장하는 구조체

- 운영체제가 프로세스 스케줄링을 위해 프로세스에 관한 모든 정보를 가지고 있는 데이터베이스

- 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거

- 저장되는 정보

  • 프로세스의 현재 상태 : 준비, 대기, 실행 등의 프로세스 상태
  • 포인터 : 부모/자식 프로세스에 대한 포인터, 프로세스가 위치한 메모리에 대한 포인터, 할당된 자원에 대한 포인터
  • 프로세스 고유 식별자 : 프로세스를 구분할 수 있는 고유의 번호
  • 스케줄링 및 프로세스의 우선순위 : 스케줄링 정보 및 프로세스가 실행될 우선순위
  • CPU 레지스터 정보
  • 주기억장치 관리 정보
  • 입, 출력 상태 정보
  • 계정 정보


▶레지스터
CPU(Central Processing Unit)가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 기억장치

<메모리>
▶동적적재, 동적연결 비교

▶메모리 최적화 방식 : Compaction, Swapping

 

▶내부 단편화

메모리를 할당할 때 프로세스가 필요한 양보다 더 큰 메모리가 할당되어서 프로세스에서 사용하는 메모리 공간이 낭비 되는 현상

 

▶외부 단편화

중간중간에 생긴 사용하지 않는 메모리가 존재해서 총 메모리 공간은 충분하지만 실제로 할당할 수 없는 상황

 

Paging

  • 페이징은 프로세스와 메모리 공간을 각각 일정 크기인 페이지와 프레임으로 잘라서 프로세스를 메모리에 적재하는 방식
  • 페이징 기법을 사용하면 연속적이지 않은 공간도 활용할 수 있기 때문에 외부 단편화 문제를 해결할 수 있음
  • 페이지 단위를 작게하면 내부 단편화 문제도 해결할 수 있겠지만 대신 page mapping 과정이 많아지므로 오히려 효율이 떨어질 수 있음

▶Segmentation

  • 가상메모리를 서로 크기가 다른 논리적 단위인 세그먼트로 분할해서 메모리를 할당하여 실제 메모리 주소로 변환
  • 세그먼트들의 크기가 다르기 때문에 미리 분할해 둘 수 없고 메모리에 적재될 때 빈 공간을 찾아 할당하는 기법
  • 프로세스가 필요한 메모리 만큼 할당해주기 때문에 내부단편화는 일어나지 않으나 여전히 중간에 프로세스가 메모리를 해제하면 생기는 구멍, 즉 외부 단편화 문제는 여전히 존재한다.
Comments