반응형
목차
Chapter 10. 프로세스와 스레드
10-1. 프로세스 개요
10-2. 프로세스 상태와 계층 구조
10-3. 스레드
+ 기본미션 & 선택미션
프로세스
- 실행 중인 프로그램
- Foreground process : 사용자가 볼 수 있는 공간에서 실행되는 프로세스
- Background process : 사용자와 직접 상호작용이 가능한 백그라운드 프로세스
- Daemon 혹은 Service : 사용자와 상호작용하지 않고 정해진 일만 수행하는 프로세스
- 모든 프로세스틑 실행을 위해 CPU 를 필요로 하지만 CPU 는 제한적임
- 한정된 시간 (Timer Interrupt) 만큼만 CPU 를 이용하고 다음 차례에게 양보함 #스케쥴링
- 운영체제는 빠르게 번갈아 수행되는 프로세스들을 관해야하 함
프로세스 제어 블록 (PCB, Process Control Block)
- 프로세스 관련 정보를 저장하는 자료 구조
- 프로세스를 생성할 때 커널 영역에 생성되고 종료 시 폐기
- 운영체제는 PCB 를 보고 프로세스를 일목요연하게 관리함
PCB 에 담기는 정보들
- 프로세스는 자신의 실행 차례가 오면 이전까지 사용한 프로세스 상태, CPU 스케줄링 정보, 메모리 정보, 사용한 파일과 입출력 장치 정보를 가짐.
- Process ID, PID : 특정 프로세스를 식별하기 위해 부여하는 ID 값
- 레지스터 값 : 자신의 실행 차례가 오면 이전까지 사용한 레지스터 중간 값을 모두 복원하고 실행을 재개함
- 프로세스 상태 : 입출력 장치 사용 대기 상태, CPU 사용 대기 상태, CPU 를 이용 중인 상태 등
- CPU 스케줄링 정보 : 언제 어떻게 얼마나 CPU 를 할당 받을지
- 메모리 정보 : 프로세스가 어느 주소에 저장되어 있는지에 대한 정보, 페이지 테이블 정보 (메모리 주소를 알 수 있는 정보)
- 사용한 파일과 입출력 장치 정보 : 할당된 장치나 사용 중인 파일의 정보
Context Swiching
Q. 한 프로세스에서 다른 프로세스로 실행 순서가 넘어가면?
기존에 실행되던 프로세스의 중간 정보 (Context) 를 백업하고 다시 실행할 때 복구해서 사용
- 프로그램 카운터 등 각종 레지스터 값, 메모리 정보, 열었던 파일, 사용한 입출력 장치 등
- 다음 차례가 왔을 때 실행을 재개하기 위한 정보
프로세스의 메모리 영역 (코드, 데이터, 힙, 스택 등)
코드 영역 (텍스트 영역)
- 실행할 수 있는 코드, 기계어로 이루어진 명령어 저장
- 데이터가 아닌 CPU가 실행할 명령어가 담기기에 쓰기가 금지된 영역 (read-only)
- 크기가 변하지 않아 정적 할당 영역이라고도 함
데이터 영역
- 잠깐 썼다가 없앨 데이터가 아닌 프로그램이 실행되는 동안 유지할 데이터 저장 (e.g. 전역 변수)
- 크기가 변하지 않아 정적 할당 영역이라고도 함
힙 역영
- 프로그램을 만드는 사용자인 프로그래머가 직접 할당할 수 있는 저장 공간
- 관련 내용 : Garbage Collection, Memory Leak, ...
스택 영역
- 데이터가 일시적으로 저장되는 공간
- 데이터 영역에 담기는 값과 달리 잠깐 쓰다가 말 값들이 저장 (e.g. 매개 변수, 지역 변수)
힙 영역과 스택 영역의 크기는 가변적이며 일반적으로 힙은 낮은 주소로부터, 스택은 높은 주소로부터 할당됨
기본 미션
p.304, 확인 문제 1번 ) 다음은 프로세스 상태를 보여주는 프로세스 상태 다이어그램입니다. ① 부터 ⑤ 까지 올바른 상태를 적어 보세요.
① = 생성 상태
② = 준비 상태
③ = 실행 상태
④ = 종료 상태
⑤ = 대기 상태
선택 미션
Ch.11 (11-2) 준비 큐에 A, B, C, D 순으로 삽입 될 때 선입 선처리, 최단 작업 우선, 라운드 로빈, 우선순위 스케줄링에서 어떤 프로세스로 CPU를 할당 받는지 정리해보기
- 선입 선처리 (FCFS) - 준비 큐에 적재된 순서대로 CPU 할당
- 최단 작업 우선 (SJF) - CPU 사용 시간이 가장 짧은 프로세스부터 할당
- 라운드 로빈 (RR) - 정해진 타임슬라이스 만큼 프로세스들에게 CPU를 할당
- 우선순위 스케줄링 : 프로세스의 우선순위 별로 순차적으로 할당
반응형
'IT' 카테고리의 다른 글
혼공단 5주차 (2) 교착 상태 (책 챕터13, 유투브 35강~36강) (0) | 2023.02.12 |
---|---|
혼공단 5주차 (1) 프로세스 동기화 (책 챕터12, 유투브 33강~34강) (0) | 2023.02.12 |
혼공단 4주차 (1) 운영체제 시작하기 (책 챕터9, 유투브 23강~24강) (0) | 2023.02.05 |
혼공단 3주차 정리: 메모리, 보조기억장치, 입출력장치 그리고 운영체제 시작 (0) | 2023.01.24 |
[북리뷰] 『혼자 공부하는 데이터 분석 with 파이썬』1:1 과외하듯 배우는 데이터 분석 자습서 (한빛미디어) (0) | 2023.01.24 |