본문 바로가기

OS/쉽게 배우는 운영체제

프로세스와 스레드

728x90

목차

1. 프로그램과 프로세스

- 프로그램은 저장장치에 저장된 정적인 상태

- 프로세스는 실행을 위해 메모리에 올라온 동적 상태

 

2. 프로세스 상태

프로세스 상태 정리

- 생성, 준비 (CPU 스케줄러가 선택), 실행 (CPU 사용 상태, 문맥 교환 발생), 대기 (입출력 완료되면 다시 준비 상태), 완료 (exit, abort)

3.  프로세스 제어 블록

- 프로세스 정보를 저장하는 자료구조

- 모든 프로세스는 제어 블록을 가짐

- 생성 시 만들어지고 완료 시 폐기됨

4.  문맥 교환

문맥 교환 과정

- 프로세서 제어 블록 및 관련 값을 교환하는 작업

- 타임 슬라이스를 다 쓰거나 인터럽트가 걸렸을 때 발생

 

5.  프로세스 복사와 전환

- fork(): 실행 중인 프로세스에서 새로운 프로세스 복사

- exec(): 기존의 프로세스를 새로운 프로세스로 전환

 

6. 프로세스 계층 구조

리눅스 계층 구조

- 자식은 부모 프로세스의 자원을 상속하고 자식이 종료되면 부모에게 자원 회수

 

7.  스레드

- CPU 스케줄러가 CPU에 전달하는 일 하나를 의미하고 하나의 프로세스는 여러 스레드가 존재

 

8.  멀티 스레드 장단점

멀티 프로세스와 멀티 스레드

- 다른 스레드가 응답하여 빠른 응답 가능

- 하나의 프로세스에서 공유 스레드를 만들어서 효율성 증대 가능

- 다중 CPU를 지원

 

9.  멀티 스레드 모델

멀티레벨 스레드 구조

- 사용자 커널 스레드: 사용자 레벨에서 라이브러리를 구현하며 스케줄링 동기화 같은 기능도 대신 구현

- 커널 레벨 스레드: 커널이 멀티스레드 지원

- 멀티레벨 스레드: 혼합된 형태

 

300x250

'OS > 쉽게 배우는 운영체제' 카테고리의 다른 글

프로세스 동기화  (0) 2022.05.23
CPU 스케줄링  (0) 2022.05.03
컴퓨터 구조와 성능 향상  (0) 2022.04.18
운영체제 개요  (0) 2022.04.18