본문 바로가기
IT

프로세스 상태 메인메모리 관리 가상메모리 스왑영역

by 심슨아빠똥 2022. 7. 13.
728x90

1. 프로세스 상태

- 컴퓨터 작업은 크게 일괄 처리 작업과 시분할 작업으로 나뉜다.
- 일괄 처리 작업은 한 번에 1개만 처리, 과거 컴퓨터 초창기의 운영체제나 MS-DOS가 사용하던 방식이다.
- 시분할 작업은 프로세스 여러 개가 아주 짧은 시간 동안 CPU 를 사용하는 방식, 프로세스 여러개가 동시에 실행되는 것처럼 보인다.

#프로세스 제어 블록
- 사용자가 저장 장치에 있는 프로그램을 실행시키면 프로세스는 메모리에 올라오고 해당 프로세스의 제어 블록이 생성된다.
- 프로세스가 종료되면 메모리에서 삭제되고 프로세스 제어 블록도 삭제된다.

 

#프로세스와 프로그램의 관계
- 프로세스 = 프로그램 + 프로세스 제어블록
- 프로그램 = 프로세스 - 프로세스 제어블록

#프로세스의 주요 상태
1. 생성 상태
- 프로세스가 메모리에 올라와 실행 준비를 완료한 상태
- 프로세스 제어블록(PCB) 생성

2. 준비 상태
- 생성된 프로세스가 CPU를 얻을 때까지 기다리는 상태

3. 실행 상태
- 준비 상태에 있는 프로세스 중 하나가 CPU를 얻어 실제 작업을 수행하는 상태
- CPU를 얻는 상태
- 프로세스는 자신의 작업이 끝날 때까지 준비 상태와 실행 상태를 왔다갔다 반복한다.

4. 완료 상태
- 실행 상태의 프로세스가 주어진 시간 동안 작업을 마치면 완료 상태로 진입한다.
- PCD 반납한다.

Q. 프로세스 주요 상태 중 CPU를 얻는 상태는? 실행 상태

 

 

 

 

2. 메인메모리 관리

1. 프로세스와 메모리 관리
- 오늘날 시분할 시스템에서는 운영체제를 포함한 여러 프로세스가 한번에 메모리가 올라오기 때문에 메모리 관리가 복잡하다.
- 운영체제도 프로세스기 때문에 메모리 위로 올라와야 실행 가능하다.

#메모리 관리 시스템(MMS)
- 운영체제 영역으로 침범을 막는다.
- 다른 작업 영역으로 침범을 막는다.

#메모리 관리자
1. 가져오기 작업
- 메모리 관리자는 사용자가 요청하면 프로세스와 데이터를 모두 메모리로 가져온다.

2. 배치 작업
- 가져온 프로세스와 데이터를 메모리의 어떤 부분에 올려놓을지 결정하는 것이다.
- 배치 작업 전 메모리를 어떤 크기로 자를지 중요하다.

3. 재배치 작업
- 새로운 프로세스를 가져와야 하는데 메모리가 꽉 찬 경우 메모리에 있는 프로세스를 하드디스크로 옮겨 놓아야 새로운 프로세스를 메모리에 가져올 수 있다.
- 꽉 차 있는 메모리에 새로운 프로세스를 가져오려고 오래된 프로세스를 내보내는 작업이다.

Q. 메모리 관리자의 주요 작업이 아닌것은? 실행

 

 

3. 가상메모리

- 사용자 메모리는 1GB부터 16GB까지 다양하다.
- 2GB 메모리에서 동작하는 프로그램이 1GB 메모리에서 동작하지 않을 수 있다.
- 사용자가 가지고 있는 실제 메모리 크기와 프로세스가 올라갈 메모리 위치를 신경 쓰지 않고 프로그래밍을 하도록 지원하는 것을 가상 메모리라고 한다.
- 실제 메모리 크기와 상관없이 프로세스에 커다른 메모리 공간 제공하는 기술이다.
- 프로세스가 바라보는 메모리 영역과 메모리 관리자가 바라보는 메모리 영역으로 나뉜다.
- 이론적으로 가상 메모리 크기는 무한대
- 실제 메모리와 스왑 영역을 활용하여 메모리 크기에 상관없이 모든 프로그램을 실행할 수 있는 시스템

#스왑영역
- 메모리가 모자라서 쫒겨난 프로세스는 저장 장치의 특별한 공간에 모아둔다.
- 메모리가 관리하는 특별한 영역이다.
- 원래 하드디스크 같은 저장장치는 저장 장치 관리자가 담담
- [최대 절전 모드]를 사용하면 CPU와 메모리의 전력 공급을 끊기 때문에 메모리에 있는 내용이 모두 사라진다.
- 그러므로 원래 작업으로 복귀시키려면 현재 메모리에 있는 데이터를 어딘가 옮겨야 하는데 그게 스왑 영역이다.
- 스왑영역 크기는 사용자가 조절 가능하다.


#가상 메모리 크기
가상 메모리 크기 = 실제 메모리 크기 + 스왑 영역 크기

728x90

댓글