-
프로세스와 스레드CS 지식/운영체제 2020. 8. 17. 11:33반응형
프로세스와 스레드
-
프로세스
- 사전적 의미
- 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램
- OS에서 메모리 영역을 할당받아 실행되는 독립적인 프로그램의 인스턴스
- OS로부터 시스템 자원을 할당받는 작업의 단위
- 동적 개념으로는 실행된 프로그램을 의미
- 할당받는 시스템 자원
- CPU 시간, 주소 공간, Code, Data, Stack, Heap 구조로 되어있는 독립된 메모리 영역
- 프로세스는 각각 독립된 메모리 영역을 할당 받는다.
- 프로세스당 최소 1개의 스레드(메인 스레드)를 가지고 있다.
- 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 직접 접근 불가.
- 다른 프로세스의 자원에 접근하려면 프로세스 간 통신(IPC)을 사용해야함
- ex) 파이프, 파일, 소켓 등
- 메모리 구조
- 스택
- 함수나 프로시저를 호출하고 리턴할 때 복귀 주소나 지역 변수와 같은 일시적 데이터를 기억
- 힙
- 프로그램 실행 중에 동적으로 메모리를 할당할 수 있는 자유로운 영역
- 데이터 (BSS, GVAR)
- 초기화한 데이터 구조에 따라서 읽고 쓰기가 가능한 영역
- 텍스트
- 프로세서가 실행할 바이너리 코드를 저장해 놓은 영역
- 스택
- 사전적 의미
-
스레드
- 사전적 의미
- 프로세스 내에서 실행되는 여러 흐름의 단위
- 프로세스의 특정 수행 경로
- 프로세스가 할당받은 자원을 이용하는 실행 단위
- 스레드는 프로세스 내에서 각각 Stack만 따로 할당받아 실행되는 독립적인 단위
- 멀티쓰레드는 Code, Data, Heap 영역 공유 (Stack은 각각 할당받음)
- 한 프로세스 내에서 동작되는 여러 실행의 흐름으로, 프로세스 내의 주소 공간이나 자원들(힙 공간 등)을 같은 프로세스 내에 스레드끼리 공유하면서 실행된다.
- 같은 프로세스 안에 있는 여러 스레드들은 같은 힙 공간을 공유한다.
- 각각의 스레드는 별도의 레지스터와 스택을 가지고 있지만, 힙 메모리는 서로 읽고 씀
- 한 스레드가 프로세스 자원을 변경 ~> 다른 이웃 스레드도 그 변경 결과를 즉시 볼 수 있다.
- 사전적 의미
-
스레드 풀
- 스레드를 매번 만들지 않고 재사용하는 것이 효율적 ( 재사용 )
- 동작 방식
- task queue에 task가 추가 됨
- thread pool이 task를 가져와서 thread에 작업 할당
- 각 thread는 작업 진행
- 완료된 thread는 완료 상태로 존재
-
프로세스 스케쥴링
- 프로세스 상태
- 생성 -> 준비 -> 실행 <-> 대기 -> 종료 단계
- new -> ready -> running -> waiting -> terminated로 각각 표시됨
- 프로세스를 생성해서 계속해서 실행하지 않고, 다른 프로세스를 실행하는 동안 대기했다가 다시 실행하는 순서를 반복
- 생성 -> 준비 -> 실행 <-> 대기 -> 종료 단계
- 알고리즘 선택 기준
- 프로세서 사용률
- 항상 실행 상태 유지 === 유휴 상태가 되지 않도록(CPU가 쉬는 시간)
~> 입출력 중심 작업보단 프로세서 중심 작업 실행
- 항상 실행 상태 유지 === 유휴 상태가 되지 않도록(CPU가 쉬는 시간)
- 처리율
- 단위 시간당 완료하는 작업 수가 많도록 짧은 작업 우선 처리 or 인터럽트 없도록 작업
- 반환시간
- 작업이 메모리에 들어가기까지 걸린 시간, Ready Queue에 머무는 시간, 실행 시간, I/O 시간 등 작업을 완료하는데 걸리는 시간을 최소화(끝난시간 - 도착시간)
- 대기시간
- Ready Queue에서 기다리는 시간을 최소화(시작시간 - 도착시간)
- 반응시간
- 작업을 요청한 시간부터 반응을 시작하는 시간까지의 간격.
- 대화형 시스템에서 중요함.
- 다중 작업용 운영 체제의 경우 여러 프로그램들을 같이 수행시켜도
사용자 입장에서는 각 프로그램에 대한 키보드 입력의 결과를
곧바로 화면에 보여 주기 때문에 이러한 시스템을 대화형 시스템이라 함
- 다중 작업용 운영 체제의 경우 여러 프로그램들을 같이 수행시켜도
- 프로세서 사용률
- 프로세스 상태
반응형'CS 지식 > 운영체제' 카테고리의 다른 글
Deadlock & Starvation (0) 2020.10.21 프로세스와 스레드 (0) 2020.10.21 멀티 스레드의 임계 구역과 뮤텍스, 세마포어 (0) 2020.08.17 PCB와 TCB (0) 2020.08.17 CPU ( 중앙처리장치 ) (2) 2020.08.08 -