운영체제(OS)는 컴퓨터 시스템의 자원을 관리하고, 소프트웨어와 하드웨어 간의 인터페이스를 제공합니다. 이 글에서는 운영체제의 중요한 개념 중 하나인 프로세스와 스레드에 대해 자세히 알아보겠습니다.
프로세스
프로세스는 컴퓨터에서 실행 중인 프로그램을 의미합니다. 이는 단순한 코드 그 이상의 개념으로, 실행에 필요한 다양한 리소스(메모리, 파일 핸들 등)를 포함합니다. 운영체제는 여러 프로세스를 동시에 관리하고 실행하는데, 이는 다중작업을 가능하게 합니다.
스레드(Thread)
스레드는 프로세스 내에서 실행되는 독립적인 흐름의 단위입니다. 하나의 프로세스는 여러 스레드를 가질 수 있으며, 이들은 프로세스의 자원을 공유합니다. 예를 들어, 웹 브라우저는 각 탭을 스레드로 관리할 수 있습니다.
스레드의 분류
메모리상의 프로세스 영역
프로세스 영역 | 설명 |
코드 영역 | 실행할 프로그램의 코드가 저장되는 영역 |
데이터 영역 | 전역변수와 정적변수가 할당되는 부분 |
스택 영역 | 지역변수와 함수의 매개변수가 저장되는 영역으로 함수 호출이 완료되면 사라짐 |
힙 영역 | 프로그래머가 할당 / 해제하는 메모리 공간 |
프로세스 상태 전이
프로세스 상태 전이 절차
프로세스 상태 전이 용어
용어 | 설명 |
Dispatch | 준비상태에서 실행상태로 전이되는 과정 |
Wake Up | 대시상태에서 준비상태로 전이되는 과정 |
Spooling | 입출력 데이터를 직접 입출력 장치에 보내지 않고, 모아뒀다가 한꺼번에 입출력하기 위해 디스크에 저장해놓는 과정 |
PCB (Process Control Block, 프로세스 제어 블록)
PCB에 저장되는 정보
문맥 교환 (Context Switching)
프로세스 스케줄링 (Process Scheduling)
스케줄링 성능척도
스케줄링 기법 (★)
프로세스 | 도착 | 실행 시간 | 반환 시간 | 평균 반환 시간 |
P1 | 0 | 8 | 17 - 0 = 17 | 28 / 4 = 7 |
P2 | 2 | 4 | 7 - 2 = 5 | |
P3 | 4 | 1 | 5 - 4 = 1 | |
P4 | 6 | 4 | 11 - 6 = 5 |
프로세스 | 실행시간 |
P1 | 9 |
P2 | 3 |
P3 | 12 |
최대 평균 시간 (반환시간) | 최소 평균 시간 (반환시간) | |
1번 수행 | P3 (12) | P2 (3) |
2번 수행 | P1 (21) | P1 (12) |
3번 수행 | P2 (24) | P3 (24) |
평균 반환 시간 | 57 / 3 = 19 | 39 / 3 =13 |
프로세스 | 실행시간 | 수행순서 | 대기시간 | 반환시간 |
P1 | 6 | 2 | 3 | 9 |
P2 | 3 | 1 | 0 | 3 |
P3 | 8 | 4 | 16 | 24 |
P4 | 7 | 3 | 9 | 16 |
평균 | 7 | 13 |
프로세스 | 대기시간 | 실행시간 | 우선순위 |
P1 | 5 | 20 | 4 |
P2 | 40 | 20 | 1 |
P3 | 15 | 45 | 3 |
P4 | 20 | 20 | 2 |
기아현상과 에이징 기법
종류 | 설명 |
기아현상 (Starvation) | 시스템에 부하가 많아서 우선순위가 낮은 프로세스가 무한정 기다리는 현상 ex) SJF, 우선순위, SRT, MLQ |
에이징 기법 (Aging) | 오랫동안 기다린 프로세스에게 우선순위를 높여주는 기법 ex) HRN, MLFQ |
운영체제의 프로세스와 스레드는 시스템의 효율적인 자원 관리와 다중작업을 가능하게 하는 중요한 개념입니다. 이 글을 통해 이러한 개념들을 이해하고, 실제 운영체제의 동작을 더 깊이 이해하는 데 도움이 되길 바랍니다.
2024년에 정보처리기사 따기 위해 노력하는 모두에게 행운을 빕니다!
[정보처리기사 실기 공부] 병행 프로세스 (0) | 2024.07.18 |
---|---|
[정보처리기사 실기 공부] 가상기억장치 (0) | 2024.06.12 |
[정보처리기사 실기 공부] 메모리 관리 (0) | 2024.06.04 |
[정보처리기사 실기 공부] 데이터 전환 (0) | 2024.05.25 |
[정보처리기사 실기 공부] 병행 제어와 회복 (0) | 2024.05.20 |