10장 프로세스와 스레드
2023. 3. 26. 22:48
10-1) 프로세스 개요
- 프로세스는 실행중인 프로그램을 의미한다.
- 포그라운드 프로세스 : 사용자가 볼 수 있는 공간에서 실행되는 프로세스
- 백그라운드 프로세스 : 사용자가 보지 못하는 뒤편에서 실행되는 프로세스
- 사용자와 상호작용하지 않고 자신의 일만 수행하는 백그라운드 프로세스를 데몬(daemon)이라 부른다.
- 윈도우 운영체제에서는 서비스(service)라고 부름
- 프로세스 제어 블록 (PCB : Process Control Block)
- 프로세스와 관련된 정보를 저장하는 자료 구조
- PCB는 커널 영역에 생성됨
- PCB 내부 정보
- PID(Procee ID) : 프로세스 고유 번호
- 레지스터 값 : 이전까지 사용했던 레지스터의 중간값들을 모두 복원
- 프로세스 상태
- CPU 스케쥴링 정보
- 메모리 관리 정보
- 사용한 파일과 입출력장치 목록
- 문맥 교환 (Context Switch)
- 기존 프로세스 문맥을 PCB에 백업하고, 새로운 프로세스를 위해 문맥을 PCB로부터 복구하여 새로운 프로세스를 실행하는 것
- 프로세스의 메모리 영역
- 코드 영역 (= 텍스트 영역)
- 기계어로 이루어진 명령어 저장
- 읽기 전용 공간
- 데이터 영역
- 프로그램이 실행되는 동안 유지할 데이터가 저장되는 공간
- ex) 전역변수
- 코드영역과 데이터영역은 크기가 고정되어있음
- 힙 영역
- 사용자가 직접 할당할 수 있는 저장 공간
- 스택 영역
- 데이터를 일시적으로 저장하는 공간
- ex) 매개 변수, 지역 변수
- 코드 영역 (= 텍스트 영역)
10-2) 프로세스 상태와 계층 구조
- 프로세스 상태
- 생성 상태 (new)
- 이제 막 메모리에 적재되어 PCB를 할당 받은 상태
- 준비 상태 (ready)
- CPU 할당을 기다리는 상태
- 실행 상태 (running)
- CPU를 할당받아 실행 중인 상태
- 대기 상태 (blocked)
- 실행 도중 입출력장치의 작업을 기다리는 상태
- 종료 상태 (terminated)
- 프로세스가 종료된 상태
- 종료 시 운영체제는 PCB와 프로세스가 사용한 메모리를 정리한다.
- 생성 상태 (new)
- 프로세스 계층 구조
- 컴퓨터가 부팅될 때 실행되는 최초의 프로세스가 자식 프로세스들을 생성하고 생성된 자식 프로세스들이 새로운 프로세스들을 낳는 형식으로 여러 프로세스가 동시에 실행됨
10-3) 스레드
- 스레드는 실행의 단위
- 하나의 프로세스는 여러개의 스레드를 가질 수 있음
- 프로세스와 스레드
- 과거에 프로세스는 한번에 하나의 일만 처리 가능 했음 (단일 스레드 프로세스)
- 스레드 개념이 도입되면서 하나의 프로세스가 한번에 여러 일을 동시에 처리할 수 있게됨(멀티 스레드 프로세스)
- 스레드는 '프로세스를 구성하는 실행단위'
- 여러 프로세스를 동시에 실행하는 것이 멀티 프로세스, 여러 스레드로 프로세스를 동시에 실행하는 것을 멀티스레드
'책 > 혼자 공부하는 컴퓨터 구조 + 운영체제' 카테고리의 다른 글
12장 프로세스 동기화 (0) | 2023.03.29 |
---|---|
11장 CPU 스케줄링 (0) | 2023.03.29 |
9장 운영체제 시작하기 (0) | 2023.03.26 |
8장 입출력장치 (0) | 2023.03.23 |
7장 보조기억장치 (0) | 2023.03.23 |