Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

브래의 슬기로운 코딩 생활

운영체제 3주차 정리 - 1 본문

2-1/운영체제

운영체제 3주차 정리 - 1

김브래 2023. 3. 13. 21:55

프로세스 관리 - 프로세스의 개요

프로세스의 개념


운영체제의 기능

프로그램(program)

저장장치에 기록되어 있는 정적인 소프트웨어


실행 가능한 소프트웨어
- 컴파일 언어 기반의 소프트웨어일 경우 main() 함수가 반드시 존재하는 소프트웨어
- main() 함수가 없다면, 이는 라이브러리(library) 등으로 분류


프로세스(process)

- 메모리에 로드(load)되어 주기적으로 CPU에 의해 처리되는 소프트웨어
- 주기적으로 CPU를 점유

- 프로세스 제어 블록(PCB: Process Control Block 또는 Process Status Block 자료구조) 할당
- 동음어: 태스크(task), 잡(job)


프로세서(processor)

- 명령을 실행(처리)하는 하드웨어
- 예: CPU(Central Process Unit), MPU(Micro Process Unit), MCU(Micro Control Unit), AP(App 
Processor) 등


프로세스 관리


관리 기능

- 프로세스 등록(create)
- 프로세스 소멸(destroy)
- 프로세스의 상태(status) 정의와 천이(transaction)
- 문맥 교환(Context Switching) 및 스케줄링(Job Scheduling)
- 인터럽트(interrupt) 처리


프로세스로 전환


프로세스와 프로그램의 관계

프로그램이 프로세스로 변환
• 프로세스 생성 및 시작을 의미
• 운영체제로부터 프로세스 제어 블록(PCB)을 얻는다는 뜻
• PCB : Process Control Block


프로세스 종료
• 해당 프로세스 제어 블록이 폐기된다는 뜻


프로세스 제어 블록


PCB 정의 및 역할

운영체제가 각 프로세스 관리하기 위해 정의한 자료 구조
• 프로세스 구분자(PID) : 각 프로세스를 구분하는 구분자(ID)
• 메모리 관련 정보 : 프로세스의 메모리 위치 정보
• 각종 중간값 : 프로세스가 사용했던 중간값(문맥 교환 때 백업한 자료들)


각 프로세스는 고유의 PCB를 가짐


프로세스 생성 시 운영체제에 의해 만들어지고 프로세스 종료 시 폐기

구성

포인터 :
• 대기 상태에 있을 경우 입출력 요구 대상 프로세스끼리 열결리스트로 관리

프로세스 상태 :
• 생성, 준비, 실행, 대기,보류 상태 등을 저장

 

프로세스 구분자(식별자) :
• 프로세스를 구분하기 위한 ID

 

프로그램 카운터 :
• 다음에 실행될 명령어의 위치값

 

프로세스 우선순위 :
• 실행 순서를 결정을 위한 우선순위

 

각종 레지스터 정보 :
• 실행되는 중에 사용하던 레지스터 값

 

메모리 관리 정보 :
• 프로세스의 메모리 위치 정보
• 메모리 보호를 위해 사용하는 경계 레지스터 값과 한계 레지스터 값 등

 

할당된 자원 정보 :
• 입출력 자원이나 오픈 파일 등에 대한 정보

 

계정 정보 :
• 계정 번호, CPU 할당 시간, CPU 사용 시간 등

 

PPID와 CPID :
• PPID: 부모 프로세스 식별자
• CPID: 자식 프로세스 식별자


프로세스의 상태


네 가지 상태

- 생성 상태(new) : 메모리에 적재되어 프로세스로 변환될 준비가 된 상태
- 준비 상태(ready) : CPU 점유를 위해 기다리는 상태
- 실행 상태(running) : CPU를 점유한 상태
- 완료 상태(end/terminate) : 프로세스 제어 블록이 사라진 상태

 

천이를 위한 대표 행위(두 가지)

- 디스패치(dispatch) : 대기 상태에서 실행 상태로 변화는 과정
- 타임아웃(timeout) 또는 인터럽트(interrupt) :
실행상태에서 준비 상태로 진입을 위한 이벤트

다섯 가지 상태

- 네 가지 상태 + 1의 구조
- 대기 상태(waiting / blocking) 추가

보류 상태를 포함한 프로세스 상태

프로세스 상태 세부

생성 상태


• 메모리에 적재되어 프로세스로 변환될 준비가 된 상태
• 새로운 프로세스 제어 블록(PCB)이 운영체제에 등록됨
• 생성된 프로세스는 준비 상태에서 자기 순서를 기다림


준비 상태


• CPU를 점유하기 위해 대기 중인 상태
- 대부분의 프로세스가 이 상태에 있음
• PCB는 준비 큐에서 기다리며 CPU 스케줄러에 의해 관리

실행 상태


• 프로세스가 CPU를 점유하고 있는 상태
• 자신에게 주어진 시간(타임 슬라이스) 동안만 CPU를 점유
• 타임아웃되면 준비 상태로 전환
• 작업이 완료되면 프로세스 종료(소멸, PCB 삭제)
• 입출력을 요청이 있으면 대기상태로 진입
- 입출력이 완료되면 준비 상태로 진입

대기 상태


• 입출력이 완료될 때까지 기다리는 상태
• 입출력 완료 인터럽트가 발생하면 입출력장치별 큐에서 빠져나와 준비 상태로 진입


완료 상태


• 프로세스가 종료되는 상태
• 메모리내 코드와 데이터를 메모리에서 삭제
• PCB 폐기

보류 상태


• 프로세스가 준비 또는 대기 상태에서 한동안 변화가 없을 때 보류 상태로 전환됨
• 다음과 같은 경우에 보류 상태가 됨
- 실행 메모리 공간이 부족할 때
- 프로그램에 오류가 있어서 실행을 계속 미루는 상황
- 바이러스와 같이 악의적인 공격(잘못된 자원 접근을 시도)을 하는 프로세스라고 판단될 때
- 간헐적으로 실행되는 프로세스로 우선 순위에서 뒤에 있을 때
- 입출력을 기다리는 프로세스의 입출력이 계속 지연될 때
- 예: 웹브라우저에서 응답없음 대기상황

 

프로세스 기타 상태

좀비(zombie) 상태


• 운영체제가 프로세스의 소멸(폐기)를 못한 프로세스
• 실행 상태 진입을 하지 않으며 메모리에 잔존

정지(휴식) 상태


• 프로세스가 작업을 일시적으로 쉬고 있는 상태
• 유닉스 쉘 프롬프트(prompt)에서 프로세스 동작 중에 [Ctrl + Z]를 누르면 볼 수 있는 상태
• 단, [Ctrl + C]를 누르면 프로세스는 강제 종료가 됨

'2-1 > 운영체제' 카테고리의 다른 글

운영체제 4주차 정리  (0) 2023.03.23
운영체제 3주차 정리 - 2  (0) 2023.03.13
운영체제 2주차 정리 - 3  (0) 2023.03.09
운영체제 2주차 정리 - 2  (0) 2023.03.09
운영체제 2주차 정리 - 1  (2) 2023.03.09